Release 484 (15 Oct 2026)#
General#
Add support for the JSON value constructor. (#30341)
Add support for the JSON_SERIALIZE function. (#30341)
Add the
json_scalar()function. (#30341)Add support for
jsoninput to JSON_EXISTS, JSON_VALUE, JSON_QUERY, and JSON_TABLE. (#30341)Add support for datetime values in the JSON type and casts from
jsontodateandtime. (#30341)Add support for numeric values in JSON_VALUE with
RETURNING, JSON path arithmetic, and JSON path array subscripts. (#30341)Allow
FORMAT JSONarguments in JSON_OBJECT withWITH UNIQUE KEYS, enforcing key uniqueness in nested objects. (#30341)Add support for interval types with explicit leading-field precision and up to 12 fractional-second digits. (#6754)
Add support for specifying the interval field range and precision when subtracting datetime values. (#6754)
Add support for the
EXCLUDEclause in window frame specifications. (#30226)Add support for a single file system cache shared by all catalogs on a node. Cache managers are configured with the
cache-manager.config-filesconfiguration property. (#29184)Add support for
IF NOT EXISTSin CREATE VIEW. (#28076)Add support for adding comments to materialized views with COMMENT. (#31279)
Add support for limiting the size of the output data produced by a query with the
query.max-output-data-sizeconfiguration property. (#30615)Add support for returning metrics from procedures invoked with CALL. (#30749)
Allow resource groups and selectors with a
NULLenvironment in the database resource group manager to match every environment. (#30873)Include the user who killed, preempted, or canceled a query in the failure message when another user stops the query. (#31603)
Allow restoring the legacy implicit coercion from
varchartocharfor a session with thelegacy_varchar_to_char_coercionsession property. (#30708)Allow restoring the legacy repair of topologically invalid input geometries in
ST_Intersection(),ST_Difference(),ST_SymDifference(),ST_Union(),geometry_union(), andgeometry_union_agg()with thetrino.geospatial.legacy-lenient-overlayJVM system property. (#30584)⚠️ Breaking change: Preserve the case of user names in
GRANT,REVOKE,SET AUTHORIZATION, andCREATE SCHEMAstatements instead of converting them to lowercase. User names are compared case-sensitively with the authenticated user, so privileges granted toAliceonly apply to the userAlice. Role names are still converted to lowercase. (#30567)Fail queries after a single task retry instead of retrying until the task retry limit is reached when spooled exchange data is lost with
retry-policyset toTASK. (#31336)⚠️ Breaking change: Retain numeric arguments as JSON numbers in
JSON_ARRAY,JSON_OBJECT, andPASSINGclauses instead of converting them to JSON strings. (#30341)⚠️ Breaking change: Retain numeric types and decimal scale when casting
array,map, androwvalues tojson. (#30341)⚠️ Breaking change: Retain decimal notation when casting decimal-form JSON numbers to
varchar. (#30341)⚠️ Breaking change: Retain object member order and duplicate keys in
json_parse()and JSON literals. (#30341)⚠️ Breaking change: Disallow construction of JSON values with more than 1,024 nested arrays and objects. (#30341)
⚠️ Breaking change: Disallow JSON input containing overflowing exponent-form numbers or unpaired Unicode surrogate escapes. (#30341)
⚠️ Breaking change: Remove conversion of
jsonarguments to JSON strings inJSON_ARRAY,JSON_OBJECT, andPASSINGclauses. The JSON values are used directly without requiringFORMAT JSON. (#30341)⚠️ Breaking change: Require quoting identifiers named
JSON_SERIALIZE, which is a reserved keyword. (#30341)⚠️ Breaking change: Require qualifying calls written as
json(x)to invoke a function instead of the JSON constructor. (#30341)⚠️ Breaking change: Limit the number of elements returned by
ngrams()to 1,000,000. (#30806)⚠️ Breaking change: Reduce the maximum duration of day-time intervals to approximately 292,000 years. Subtracting timestamps that are further apart fails with an overflow error. (#6754)
⚠️ Breaking change: Disallow extracting fields that are absent from an interval’s qualifier. (#6754)
⚠️ Breaking change: Return the full leading field when extracting a value from an interval, such as
36forhour(INTERVAL '36' HOUR). (#6754)⚠️ Breaking change: Truncate interval multiplication and division results to the interval’s field range. (#6754)
Set the process name to
trino-serverwhen running thetrino-server-coredistribution. (#30403)Improve performance of queries involving
booleanvalues, especially when reading or writing ORC and Parquet files. (#30299)Improve performance of queries that compare the result of
at_timezone()with a constant time zone against atimestamp with time zonevalue. (#30597)Reduce memory usage for queries that compute both
avg()andsum()over the samedecimalcolumn. (#30595)Improve performance of queries with predicates on
date_trunc()with theweekorquarterunit. (#30192)Improve performance of window functions that compute
sum()overdecimalvalues with a moving window frame. (#30630)Improve scheduling of tasks that require no memory, such as tasks reading only metadata, when cluster memory is exhausted with fault-tolerant execution. (#30678)
Improve performance of queries with uncorrelated
EXISTSsubqueries. (#30224)Improve performance of queries that filter or project dictionary-encoded data. (#30877)
Reduce the amount of data read for queries with filters that combine multiple conditions with
AND. (#30909)Improve performance of queries with joins and filters that can fail when
optimizer.allow-unsafe-pushdownis enabled. (#30917)Reduce memory usage of queries that redistribute dictionary-encoded data across workers. (#31056)
Improve performance of cross joins where one side is a subquery with
LIMITorORDER BY ... LIMIT. (#31128)Improve performance of queries with range comparisons between
charcolumns andvarcharvalues. (#31089)Improve performance of queries with an
INpredicate that compares a cast expression against a list of literals, such asCAST(ts AS date) IN (DATE '2020-01-01', DATE '2020-01-02'). (#31182)Improve performance of filters on dictionary-encoded columns when each page uses only a few entries of a large dictionary. (#31200)
Improve performance of queries with
ORDER BYwhenretry-policyis set toQUERY. (#30966)Improve performance of queries that differ only in literal values from previously run queries. (#30465)
Reduce worker memory usage for queries with many operators. (#31301)
Reduce memory usage of dynamic filtering on
varcharcolumns. (#31303)Improve performance of queries with filters on
at_timezone()overtimestamp with time zonecolumns, including filters on views that convert such columns to a per-row time zone. (#30551)Improve query planning performance for queries with many joins. The
optimizer.max-reordered-joinsconfiguration property and themax_reordered_joinssession property are limited to a maximum of 62. (#31261)Improve performance of
BETWEENand comparison predicates on numeric values that are implicitly cast to a wider type. (#31400)Improve performance of casting between
decimalvalues anddoubleorrealvalues. (#31475, #31481, #31502)Improve performance of queries with conditional expressions, such as
CASEorIF, that reference columns only needed when the condition is met. (#31473)Improve performance of nested string concatenations. (#31465)
Fix failure when a JSON simplified accessor applies an item method, such as
integer(), after two or more nested member accesses, for examplej.a.b.integer(). (#30379)Fix query failure when using
try()with an argument containingnullif()orBETWEEN. (#30399)Fix potential worker memory accounting leak when tasks finish, which can cause queries to block or fail with out-of-memory errors. (#30472)
Fix incorrect results for
IFandCASEexpressions that repeat a non-deterministic condition within a branch. (#30509)Fix incorrect results when
sum()overbigintvalues overflows in a window function. The query fails instead. (#30600)Fix incorrect results when using
AT TIME ZONEwith anintervaloffset outside the range of-14:00to+14:00ontimevalues. The query fails instead. (#9288)Fix potential worker unavailability under highly concurrent workloads. (#30627)
Fix incorrect results for joins on
charcolumns cast tovarcharwhen dynamic filtering is enabled. (#30686)Fix worker out-of-memory errors due to untracked memory usage for queries with large right or full outer joins. (#30790)
Fix incorrect results when casting some
decimalvalues with precision of 18 or less toreal. (#30130)Fix failure when executing a
USEstatement as a prepared statement. (#30859)Fix query failure when planning queries with a very large number of
ORpredicates. (#30709)Fix missing query completion events and a potential coordinator memory leak when a worker restarts while running a query. (#30755)
Fix query failure for queries with a
BETWEENpredicate on an expression and multiple aggregations withDISTINCT. (#30608)Fix intermittent query failure with a
No committed attempts found under sink output patherror when using fault-tolerant execution. (#30411)Fix failure of
convex_hull_agg()when an input geometry is topologically invalid. (#30584)Fix incorrect results or query failure for
avg()overdecimalvalues when the sum of the values exceeds the range of the type. (#30991)Fix potential worker out-of-memory errors for queries with
ORDER BY ... LIMITor filters onrow_number()orrank()that process wide rows. (#31014)Fix incorrect results when
date_add()or adding an interval to atimestampvalue produces a value outside the supported range. The query fails instead. (#31002)Fix incorrect results when subtracting
timestampvalues with a very large difference. (#31002)Fix incorrect results for aggregations over outer joins without equality conditions, such as
LEFT JOIN ... ON true, when the joined side produces no rows. (#30989)Fix query failure instead of returning
NULLwhen callingmod()with a zero divisor insidetry(). (#31054)Fix failure when using
WITH SESSIONto set a catalog session property for a catalog that already has session properties set. (#31045)Fix failure when a SQL user-defined function ends with an
IForCASEstatement that returns a value from every branch. (#30582)Fix incorrect results when filtering with
IF,CASE, orNULLIFexpressions that contain non-deterministic conditions. (#30993)Fix incorrect results for
INpredicates withrealNaNvalues, or withtime with time zoneandtimestamp with time zonevalues in different time zones. (#31069, #31080)Fix incorrect memory accounting for aggregations with both
DISTINCTandORDER BYclauses, which could cause workers to run out of memory. (#31039)Fix workers becoming unresponsive and dropping out of the cluster when running queries with a large number of stages and tasks. (#21512)
Fix
MERGEfailing withMERGE_TARGET_ROW_MULTIPLE_MATCHESwhen the target table is bucketed and the query uses a partitioned join distribution. (#30639)Fix incorrect results for aggregations over
CASEexpressions that contain non-deterministic functions. (#31121)Fix incorrect results for comparisons involving
year()ordate_trunc()with a non-deterministic argument. (#31086)Fix incorrect results for
IS NOT DISTINCT FROMcomparisons between a cast expression and a constant. (#31084)Fix incorrect results for simple
CASEexpressions when the operand isNULLorNaN, or when comparing values with time zones. (#31065, #31081)Fix incorrect
data_typefornumbercolumns insystem.jdbc.columnsand in JDBCDatabaseMetaData.getColumns. (#31184)Fix incorrect results for
ORandINpredicates over non-deterministic expressions. (#31149)Fix failure of recursive
WITHqueries that use a table function. (#31053)Fix incorrect results for queries with multiple aggregations containing a
DISTINCTclause over non-deterministic expressions. (#31151)Fix
try()not suppressing errors when accessing a field of a row produced by a failing expression, such asTRY(array[index].field)with an out-of-bounds index. (#31008)Fix incorrect results for
charvalues ending with a space produced byreverse()or by casting to a shorterchartype. (#31190)Fix query failure when comparing a
varcharvalue cast tocharwith acharvalue. (#31187)Fix incorrect results for
INandNOT INpredicates with a list of consecutive values that containsNULL. (#31068)Fix incorrect results for full outer joins with a join condition when an input produces a single row. (#30988)
Fix incorrect results for
trim(),ltrim(), andrtrim()oncharvalues when trimming a set of characters that does not include a space. (#31004)Fix potential worker memory leak when a task fails while writing its output, such as when a fault-tolerant task is aborted. (#31334, #31353)
Fix incorrect results and failures when casting a
timestampvalue before 1970 with fractional seconds totime. (#31344)Fix query hang or failure when calling
hamming_distance()on strings containing a NUL character. (#31247)Fix incorrect results and query failures when
max_by()ormin_by()with a count argument returnsrowvalues with null fields. (#31193)Fix incorrect results for queries with a
GROUP BYclause and multiple aggregations containing aDISTINCTclause when a grouping key isNULL. (#29095)Fix incorrect
NULLresults frommax_by()andmin_by()with a count argument when the input containsNULLvalues. (#31383)Fix incorrect results when filtering on a simple
CASEexpression with aNULLoperand and a predicate in aWHENclause. (#30992)Fix incorrect results for window functions with a
ROWSframe whose offsets vary between rows. (#31420)⚠️ Breaking change: Fix missing padding in SQL/JSON output for
charvalues. (#30341)⚠️ Breaking change: Prevent precision loss when casting decimal-form JSON numbers to numeric types. (#30341)
⚠️ Breaking change: Fix invalid JSON returned by
json_array_get()when extracting string elements. (#28861)Fix excessive CPU usage in clients that poll for query results right after a query finishes. (#31431)
Fix query failure when using
BETWEEN SYMMETRICwith nested fields ofrowcolumns. (#31487)Fix incorrect formatting of
intervalvalues when the JVM default locale uses non-ASCII digits. (#31433)Fix duplicate rows in
information_schema.tableswhen thetable_namefilter includes a table that does not exist. (#31488)Fix query failure when
variantvalues from arrays orUNNESTare used inGROUP BY,DISTINCT,INsubqueries,array_histogram(), or aggregation functions such asarray_agg(),histogram(), andmap_agg(). (#31387)Prevent catalog properties, such as credentials, from appearing in error messages when a catalog is not available. (#31538)
Fix incorrect results for comparisons involving a cast from
timestamptotimestamp with time zonewith a lower precision. (#30496)Fix incorrect results from
date_diff()fortimestamp(p) with time zonevalues with precision greater than 3 when the difference spans a daylight saving time transition or uses themonth,quarter, oryearunit. (#31543)Fix incorrect rounding in
to_unixtime()for timestamps with sub-millisecond precision, and infrom_unixtime()for values halfway between milliseconds. (#31386)Fix failures and incorrect results for timestamps near the maximum and minimum supported values. (#31564)
Fix potential memory leak when a connector fails while cleaning up after a query. (#31532)
Fix incorrect query results when using the spooling protocol with inline segments. (#31527)
Fix worker out-of-memory errors when many tasks buffer data in local exchanges. (#31533)
Fix server startup failure when memory properties specified as percentages of the heap add up to 100%. (#31552)
Security#
Add support for clients using the OAuth 2.0 client credentials flow by including the token endpoint and scope in the
WWW-Authenticateauthentication challenge. (#15836)Add support for the
{user}placeholder in thecatalog,schema, andtablepatterns of file-based access control rules. (#31205)Add support for forwarding selected extra credentials to Open Policy Agent with the
opa.identity.extra-credentials-keysconfiguration property. (#29302)Fix authorization failures with Ranger access control when the Kerberos principal differs from the mapped user name. (#29342)
Fix query failure when a session property manager sets a default for a session property that the user is not allowed to set. (#31281)
Fix failure when a Ranger column mask applies to a column whose name requires quoting, such as a name containing a space. (#31119)
Web UI#
Add support for capturing worker thread snapshots on the worker status page. (#30388)
Add line numbers to the query text on the query details page. (#31424)
Use the full width of the browser window for the query list. (#30352)
Fix sorting of finished and failed queries when sorting the query list by progress. (#30528)
Fix overlapping text in the navigation menu when it is collapsed. (#31232)
Fix failure to load the query details page when worker addresses are IPv6 addresses with a zone ID. (#30905)
Fix missing query progress in the query list for queries with
retry-policyset toTASKuntil all stages are scheduled. (#31336)
JDBC driver#
Add support for the OAuth 2.0 client credentials flow with the
oauth2ClientId,oauth2ClientSecret,oauth2TokenEndpoint, andoauth2Scopeconnection parameters. (#15836)Add support for reading
intervalvalues with up to 12 fractional-second digits and reporting their field ranges and precision. (#6754)Throw
SQLExceptioninstead ofIllegalArgumentExceptionwhen callinggetTimeorgetTimestampon a column of an incompatible type. (#5315)Improve performance of reading query results that use the JSON encoding. (#30375)
Fix failure when reading
intervalvalues when the JVM default locale uses non-ASCII digits, such as Arabic or Persian. (#31433)
Docker image#
⚠️ Breaking change: Remove the ppc64le Docker image. (#30422)
⚠️ Breaking change: Use the Red Hat Hardened core runtime image as the base of the Docker image. The image does not include utilities such as
grep,dnf, oruseradd. (#30397)⚠️ Breaking change: Remove the
run-trinoscript from the Docker image. Customnode.propertiesfiles must setnode.id=${ENV:HOSTNAME}to keep using the container hostname as the node identifier. (#30397)
CLI#
Add support for OAuth 2.0 client credentials authentication with the
--oauth2-client-id,--oauth2-client-secret,--oauth2-token-endpoint, and--oauth2-scopeoptions. (#15836)Improve performance of reading query results that use the JSON encoding. (#30375)
Fix the pager requiring
qto be pressed twice to exit after a query shows progress updates. (#30965)
BigQuery connector#
Add support for setting the location of a dataset with the
locationschema property in CREATE SCHEMA. (#30366)Add support for retrying writes that fail due to exceeded BigQuery quotas, configurable with the
bigquery.write-retry-max-attempts,bigquery.write-retry-initial-delay, andbigquery.write-retry-max-delayconfiguration properties. (#30927)Fix query failures due to read timeouts when BigQuery takes longer than 20 seconds to respond. (#30840)
Fix potential connection leak when reading from BigQuery fails. (#30834)
Fix failure due to ambiguous names when querying a table or dataset after another table or dataset with the same name in different case is dropped or renamed, when
bigquery.case-insensitive-name-matchingis enabled. (#31332)
Cassandra connector#
⚠️ Breaking change: Require Cassandra 4.0 or later. (#28687)
ClickHouse connector#
Add support for creating, altering, and dropping tables and schemas on all nodes of a ClickHouse cluster with the
clickhouse.cluster-nameconfiguration property. (#17307)Fix duplicate rows when inserting into
Distributedtables, and failure when inserting into replicated tables. (#7600, #7601)Fix leak of temporary tables in the remote database when a query writing to a table fails or is canceled. (#31333)
Delta Lake connector#
Add support for Databricks 18 LTS. (#30935)
Add support for the vacuum procedure on tables with deletion vectors. (#22809)
Add support for writing data files under hash-based directory prefixes with the
delta.object-store-layout.enabledconfiguration property and theobject_store_layout_enabledtable property. (#24199)Add support for reporting execution metrics in the output of the optimize table procedure. (#28999)
Add support for using
CRC32,CRC32C,SHA1, orSHA256checksums when writing to S3 with thes3.checksum-algorithmconfiguration property. (#31523)Add support for writing to S3-compatible storage that rejects the HTTP expect-continue handshake by setting the
s3.expect-continue-enabledconfiguration property tofalse. (#30534)Add support for writing to S3-compatible storage that does not support chunked encoding by setting the
s3.chunked-encoding-enabledconfiguration property tofalse. (#31524)⚠️ Breaking change: Require setting the
fs.cache.directories,fs.cache.max-sizes,fs.cache.max-disk-usage-percentages,fs.cache.ttl, andfs.cache.page-sizeproperties in thealluxiocache manager of the cluster-wide file system cache instead of in catalog properties files. Catalogs only setfs.cache.enabled. (#29184)Improve performance of writing data files. (#30502)
Improve performance of
MERGE,UPDATE, andDELETEstatements and of reading tables with deletion vectors. (#30976)Improve performance of queries with selective filters on Parquet files. This can be deactivated by setting the
parquet.selected-positions-pushdown-enabledconfiguration property tofalse. (#30303)Reduce memory usage when reading
rowcolumns from Parquet files. (#31381)Reduce coordinator memory usage when writing checkpoints for tables with many files. (#31354)
Improve performance of writes when task retries are enabled. (#31408)
Fix incorrect memory accounting for
MERGE,UPDATE, andDELETEstatements. (#29956)Fix incorrect results for queries using
FOR TIMESTAMP AS OFthat could read an older version of the table. (#31057)Fix deleted rows remaining visible after
DELETEof whole files orCREATE OR REPLACE TABLEon tables with deletion vectors. (#30343)Fix writing Parquet files smaller than the target file size when writing low-cardinality data. (#31291)
Fix data loss when Trino writes a checkpoint for tables with deletion vectors written by other engines. (#31252)
Fix failure when writing checkpoints, including during
OPTIMIZE, for tables whose statistics containNaNor infinitedoubleorrealvalues, decimal values stored as JSON numbers, or timestamps without a zone offset. (#24029, #28532)Fix potential data loss when Trino writes a checkpoint for a table with deletion vectors that another engine restored to an earlier version. (#30985)
Fix duplicate rows returned by other Delta Lake readers after running
OPTIMIZEon tables with deletion vectors. (#31253)Fix incorrect results when filtering on
timestamp with time zonecolumns after Trino writes a checkpoint for a table with sub-millisecond statistics from other writers. (#31231)Fix
OPTIMIZEskipping a file with deletion vectors when it is the only file smaller thanfile_size_thresholdin its partition. (#29041)Fix incorrect results when reading or modifying tables with deletion vectors when the
delta.enableDeletionVectorstable property is set tofalse. (#30685, #31396)Fix failure when reading change data with the
table_changesfunction for partitions with values that require URI encoding, such as values containing a space. (#30952)Fix failure when reading nested arrays from Parquet files that use the legacy list encoding. (#27766)
Fix query failure or incorrect results when reading
variantcolumns from Parquet files that store themetadatafield before thevaluefield. (#31388)Fix incorrect file counts, sizes, and statistics in the
$partitionsmetadata table for partitions with deletion vectors. (#31397)Fix failure when writing checkpoints for tables with statistics for
rowcolumns written by other engines. (#31194)Fix incorrect results when reading
decimalvalues with precision of 18 or less stored asBINARYwithDELTA_LENGTH_BYTE_ARRAYencoding in Parquet files. (#31554)
Druid connector#
Improve performance of queries with
ORDER BYon the__timecolumn andLIMIT. (#31277)
DuckDB connector#
Fix leak of temporary tables in the remote database when a query writing to a table fails or is canceled. (#31333)
Elasticsearch connector#
Improve performance of queries with
ORDER BY ... LIMITor withcount(),sum(),avg(),min(), ormax()aggregations by pushing them down to Elasticsearch. (#27251)Fix failure when listing columns if an index contains fields with unsupported metadata. (#30852)
Fix incorrect results when reading an alias that has a filter or routing. (#27251)
Fix failure when reading an alias without access to its backing indices. (#27251)
Fix incorrect results when an Elasticsearch search times out or a shard fails. (#27251)
Fix incorrect results for predicates on fields whose indexed values differ from their source values, such as fields with
null_value,ignore_above, orignore_malformedmappings. (#27251)Fix incorrect results for
realanddoublepredicates with a zero bound when values contain negative zero. (#27251)
Faker connector#
Fix incorrect values generated for
timestamp(12)andtimestamp(12) with time zonecolumns when theminandmaxcolumn properties are set. (#31037)
Hive connector#
Add support for reading the remainder of a line into the last column of
TEXTFILE,RCTEXT, andSEQUENCEFILEtables with thelast_column_takes_resttable property. (#30938)Add support for using
CRC32,CRC32C,SHA1, orSHA256checksums when writing to S3 with thes3.checksum-algorithmconfiguration property. (#31523)Add support for writing to S3-compatible storage that rejects the HTTP expect-continue handshake by setting the
s3.expect-continue-enabledconfiguration property tofalse. (#30534)Add support for writing to S3-compatible storage that does not support chunked encoding by setting the
s3.chunked-encoding-enabledconfiguration property tofalse. (#31524)⚠️ Breaking change: Require setting the
fs.cache.directories,fs.cache.max-sizes,fs.cache.max-disk-usage-percentages,fs.cache.ttl, andfs.cache.page-sizeproperties in thealluxiocache manager of the cluster-wide file system cache instead of in catalog properties files. Catalogs only setfs.cache.enabled. (#29184)⚠️ Breaking change: Set the default value of the
hive.storage-formatconfiguration property toPARQUET. The previous behavior can be restored by settinghive.storage-formattoORC. (#30818)⚠️ Breaking change: Return values of the
$file_modified_timehidden column in UTC instead of the JVM default time zone. (#31239)Improve performance of writing Parquet files. (#30502)
Improve performance of queries with selective filters on Parquet files. This can be deactivated by setting the
parquet.selected-positions-pushdown-enabledconfiguration property tofalse. (#30303)Improve performance of writes into many existing partitions when using a Thrift metastore. (#31020)
Reduce memory usage when reading
rowcolumns from Parquet files. (#31381)Improve performance of the
flush_metadata_cacheprocedure for partitioned tables. (#31486)Reduce native memory usage when writing ORC files with ZLIB compression. (#31582)
Fix worker out-of-memory errors due to under-accounted memory usage when writing ORC files. (#30771)
Fix potential worker out-of-memory errors when writes to sorted tables fail. (#31018)
Fix failure when reading Avro tables in the AWS Glue catalog whose columns differ from the schema defined by the
avro.schema.urloravro.schema.literaltable property. (#30599)Fix loss of column statistics and slow rollback when a write into existing partitions fails. (#31020)
Fix failure when reading ORC files where a large
varcharorvarbinaryvalue is followed only by null or empty values until the end of a stripe. (#10113)Fix writing Parquet files smaller than the target file size when writing low-cardinality data. (#31291)
Fix incorrect results when filtering on
timestampcolumns in Parquet files with UTC-adjusted timestamps whenhive.parquet.time-zoneis set to a time zone other than UTC. (#31050)Fix incorrect translation of Hive views containing an
INpredicate in aJOINcondition. (#31298)Fix failure when reading nested arrays from Parquet files that use the legacy list encoding. (#27766)
Fix failure when reading JSON tables with duplicate top-level keys in a JSON object. (#29983)
Fix incorrect results when reading
decimalvalues with precision of 18 or less stored asBINARYwithDELTA_LENGTH_BYTE_ARRAYencoding in Parquet files. (#31554)
Hudi connector#
Improve performance of queries with selective filters on Parquet files. This can be deactivated by setting the
parquet.selected-positions-pushdown-enabledconfiguration property tofalse. (#30303)Reduce memory usage when reading
rowcolumns from Parquet files. (#31381)Fix query failure when reading copy-on-write tables with pending clustering operations. (#30855)
Fix incorrect results when filtering on
timestampcolumns in Parquet files with UTC-adjusted timestamps when the JVM time zone is not UTC. (#31050)Fix failure when reading nested arrays from Parquet files that use the legacy list encoding. (#27766)
Fix incorrect results when reading
decimalvalues with precision of 18 or less stored asBINARYwithDELTA_LENGTH_BYTE_ARRAYencoding in Parquet files. (#31554)
Iceberg connector#
Add support for running table procedures such as
optimizeandexpire_snapshotson materialized views with ALTER MATERIALIZED VIEWEXECUTE. (#21797)Add support for refreshing view definitions with ALTER VIEW
REFRESH. (#30954)Add support for adding comments to materialized views with COMMENT. (#31279)
Add support for reading columns of the
unknowntype. (#31525)Add support for sorting data files with a custom sort order using the
sorted_byparameter of the optimize table procedure. (#31274)Add support for sorting by nested fields with the
sorted_bytable property. (#19620)Add support for preventing snapshot expiration, orphan file removal, and
DROP TABLEfrom deleting table files with thegc_enabledtable property. (#31218)Add support for registering tables whose metadata file is outside the default metadata directory with the
metadata_locationparameter of the register_table procedure. (#31164)Add support for creating tables with the BigLake metastore through the Iceberg REST catalog with the
iceberg.rest-catalog.server-assigned-table-location-enabledconfiguration property. (#30438)Add support for configuring the AWS KMS connection used to read tables with encrypted Parquet files with the
aws.kms.region,aws.kms.endpoint,aws.kms.iam-role,aws.kms.access-key,aws.kms.secret-key, and related configuration properties. (#30371)Add support for using
CRC32,CRC32C,SHA1, orSHA256checksums when writing to S3 with thes3.checksum-algorithmconfiguration property. (#31523)Add support for writing to S3-compatible storage that rejects the HTTP expect-continue handshake by setting the
s3.expect-continue-enabledconfiguration property tofalse. (#30534)Add support for writing to S3-compatible storage that does not support chunked encoding by setting the
s3.chunked-encoding-enabledconfiguration property tofalse. (#31524)Add support for using the AWS default credentials provider chain for SigV4 request signing with the Iceberg REST catalog when no IAM role or access keys are configured. (#25257)
Add support for configuring the maximum number of retries for Iceberg REST catalog requests with the
iceberg.rest-catalog.max-retriesconfiguration property. (#31073)Add support for turning off reporting of metrics to the Iceberg REST catalog by setting the
iceberg.rest-catalog.metrics-reporting-enabledconfiguration property tofalse. (#31075)Add support for limiting the size of the case-insensitive name mapping cache of the Iceberg REST catalog with the
iceberg.rest-catalog.case-insensitive-name-matching.cache-max-sizeconfiguration property. (#30856)Add support for skipping more data when filtering on predicates with more than 1,000 discrete values, such as dynamic filters from selective joins, with the
iceberg.domain-compaction-thresholdconfiguration property. (#31175)Add support for reporting the number of added data files in the output of the
migrateprocedure. (#30749)Add support for reporting the number of removed statistics files in the output of drop_extended_stats. (#30768)
Include the commit summary in the output metadata reported to event listeners for
MERGE,UPDATE, andDELETEstatements. (#30934)⚠️ Breaking change: Require setting the
fs.cache.directories,fs.cache.max-sizes,fs.cache.max-disk-usage-percentages,fs.cache.ttl, andfs.cache.page-sizeproperties in thealluxiocache manager of the cluster-wide file system cache instead of in catalog properties files. Catalogs only setfs.cache.enabled. (#29184)⚠️ Breaking change: Require the native file system for the warehouse location, such as
fs.s3.enabled, to be enabled wheniceberg.rest-catalog.vended-credentials-enabledis set totrue. (#30634)⚠️ Breaking change: Require the
iceberg.rest-catalog.google-json-key-file-pathoriceberg.rest-catalog.google-json-keyconfiguration property instead ofgcs.json-key-file-pathto authenticate with an Iceberg REST catalog usingGOOGLEsecurity. (#31240)⚠️ Breaking change: Remove the
iceberg.equality-deletes-blocks-hash-enabledconfiguration property. (#31286)⚠️ Breaking change: Return
timestamp with time zonevalues in UTC instead of the session time zone in the$snapshots,$history, and$metadata_log_entriesmetadata tables. (#31356)Reduce coordinator memory usage when committing writes that produce a large number of files. (#30433)
Improve performance of writing Parquet files. (#30502)
Improve performance of listing views, such as querying
information_schema.views, when using an Iceberg JDBC catalog. (#29751)Reduce coordinator memory usage when planning queries on tables with many columns and data files. (#30675)
Reduce query failures when running concurrent
DELETEstatements on the same table. (#30850)Reduce the number of OAuth 2.0 token requests made to the Iceberg REST catalog when
iceberg.rest-catalog.sessionis set toNONE. (#30816)Improve performance of queries with filters on Parquet files that contain column indexes. This can be deactivated by setting the
parquet.use-column-indexconfiguration property or theparquet_use_column_indexsession property tofalse. (#11000)Improve performance of queries with selective filters on Parquet files. This can be deactivated by setting the
parquet.selected-positions-pushdown-enabledconfiguration property tofalse. (#30303)Improve performance of case-insensitive name matching with the Iceberg REST catalog. (#29382)
Improve performance of queries with range predicates when reading ORC files with Bloom filters. (#31175)
Improve performance of reading Iceberg v3 tables after
DELETE,UPDATE, orMERGEremoves all rows of a data file, by removing the file instead of writing a deletion vector. (#31165)Reduce memory usage when reading
rowcolumns from Parquet files. (#31381)Improve performance of reading metadata for tables with many snapshots from REST catalogs that support loading only referenced snapshots, by setting the
iceberg.rest-catalog.snapshot-loading-modeconfiguration property toREFS. (#30612)Reduce native memory usage when writing ORC files with ZLIB compression. (#31582)
Fix query failure when reading the
$partitionsmetadata table of tables with many columns. (#30311)Fix failure when reading the
$partitionsmetadata table of tables with columns named after SQL reserved words, such asgroupororder. (#30488)Fix query failure when reading the
$files,$partitions,$entries, or$all_entriesmetadata tables of tables with a dropped partition field. (#30247)Fix query failure when reading the
$filesor$partitionsmetadata tables of tables without snapshots. (#30501)Fix failure of
SHOW CREATE SCHEMAwhen using an Iceberg JDBC catalog and the schema has namespace properties not supported by Trino. (#29769)Fix worker out-of-memory errors due to under-accounted memory usage when writing ORC files. (#30771)
Fix failure when reading null
rowormapvalues that containvariantfields from Parquet files. (#30613)Fix incorrect resolution of tables and views in an Iceberg REST catalog when case-insensitive name matching is enabled. (#30747)
Fix incorrect memory accounting for queries reading tables with equality delete files. (#29955)
Fix incorrect memory accounting when reading tables with deletion vectors. (#30876)
Fix potential worker out-of-memory errors when writes to sorted tables fail. (#31018)
Fix incorrect results in
$historymetadata tables, which listed snapshots that never became current and reported the commit time instead of the time the snapshot became current. (#31102)Fix failure when dropping a table or otherwise accessing the table location with vended credentials from an Iceberg REST catalog, such as BigLake. (#31217)
Fix query failure when the
optimize_metadata_queriessession property is enabled and the query filters on the$path,$partition, or$file_modified_timehidden columns. (#31103)Fix duplicate rows in materialized views after a refresh when source tables are modified during the refresh, or when the view reads a source table with
FOR VERSION AS OF. (#30990)Fix excessive memory usage and out-of-memory errors during
UPDATE,DELETE, andMERGEon tables with many data files. (#31258)Fix duplicate or lost rows in materialized views when refreshes run concurrently. (#31257)
Fix failure when reading ORC files where a large
varcharorvarbinaryvalue is followed only by null or empty values until the end of a stripe. (#10113)Fix failure when running
OPTIMIZEor writing to sorted tables that contain largevarcharorvarbinaryvalues. (#20164, #28636)Fix failure when selecting a field of a
rowcolumn that is used as an equality delete key. (#25720)Fix writing Parquet files smaller than the target file size when writing low-cardinality data. (#31291)
Fix missing columns and comments in
information_schemaandsystem.metadatalistings of a schema when a table in the schema fails to load in the AWS Glue catalog. (#30926)Fix duplicate rows when the commit of a write is retried with
retry-policyset toTASK. (#31246)Fix incorrect results when reading tables with equality delete files whose key includes a field nested in a
rowcolumn. (#31376)Fix potential loss of table metadata when a
CREATE TABLEcommit to the Hive metastore or AWS Glue fails after the table was created. (#31211)Fix failure when querying the
$filesor$partitionsmetadata tables of a table withbucketortruncatepartition evolution on the same column. (#31435)Fix failure when accessing tables using Azure vended credentials from REST catalogs that key SAS tokens by storage host. (#29526)
Fix failure when reading nested arrays from Parquet files that use the legacy list encoding. (#27766)
Fix incorrect results for joins on tables partitioned with the
buckettransform on adecimalcolumn. (#31457)Fix failure of concurrent writes to tables in a Hive metastore when
iceberg.hive-catalog.locking-enabledis set tofalse. (#27942)Fix failure of writes to tables in AWS Glue when Glue returns an error for an update it already applied. (#31213)
Fix
variantcolumns in Parquet files written by Trino being read asrowvalues by other engines, such as DuckDB. (#31388)Fix incorrect results when reading
decimalvalues with precision of 18 or less stored asBINARYwithDELTA_LENGTH_BYTE_ARRAYencoding in Parquet files. (#31554)
Ignite connector#
Lakehouse connector#
Add support for procedures such as
system.sync_partition_metadataandsystem.vacuum, and table procedures such asoptimizeandexpire_snapshots. (#26753, #26754)Add support for sorting data files of Iceberg tables with a custom sort order using the
sorted_byparameter of theoptimizetable procedure. (#31274)Add support for writing Delta Lake data files under hash-based directory prefixes with the
object_store_layout_enabledtable property. (#24199)Add support for configuring the AWS KMS connection used to read tables with encrypted Parquet files with the
aws.kms.region,aws.kms.endpoint,aws.kms.iam-role,aws.kms.access-key,aws.kms.secret-key, and related configuration properties. (#30371)Add support for using
CRC32,CRC32C,SHA1, orSHA256checksums when writing to S3 with thes3.checksum-algorithmconfiguration property. (#31523)Add support for writing to S3-compatible storage that rejects the HTTP expect-continue handshake by setting the
s3.expect-continue-enabledconfiguration property tofalse. (#30534)Add support for writing to S3-compatible storage that does not support chunked encoding by setting the
s3.chunked-encoding-enabledconfiguration property tofalse. (#31524)⚠️ Breaking change: Require setting the
fs.cache.directories,fs.cache.max-sizes,fs.cache.max-disk-usage-percentages,fs.cache.ttl, andfs.cache.page-sizeproperties in thealluxiocache manager of the cluster-wide file system cache instead of in catalog properties files. Catalogs only setfs.cache.enabled. (#29184)⚠️ Breaking change: Set the default value of the
hive.storage-formatconfiguration property toPARQUET. The previous behavior can be restored by settinghive.storage-formattoORC. (#30818)⚠️ Breaking change: Require the
iceberg.rest-catalog.google-json-key-file-pathoriceberg.rest-catalog.google-json-keyconfiguration property instead ofgcs.json-key-file-pathto authenticate with an Iceberg REST catalog usingGOOGLEsecurity. (#31240)⚠️ Breaking change: Remove the
iceberg.equality-deletes-blocks-hash-enabledconfiguration property. (#31286)Improve performance of writing Parquet files. (#30502)
Improve performance of
MERGE,UPDATE, andDELETEstatements and of reading Delta Lake tables with deletion vectors. (#30976)Improve performance of queries with filters on Iceberg tables with Parquet files that contain column indexes. This can be deactivated by setting the
parquet.use-column-indexconfiguration property or theparquet_use_column_indexsession property tofalse. (#11000)Improve performance of queries with selective filters on Parquet files. This can be deactivated by setting the
parquet.selected-positions-pushdown-enabledconfiguration property tofalse. (#30303)Reduce memory usage when reading
rowcolumns from Parquet files. (#31381)Reduce native memory usage when writing ORC files with ZLIB compression. (#31582)
Fix worker out-of-memory errors due to under-accounted memory usage when writing ORC files. (#30771)
Fix failure when reading null
rowormapvalues that containvariantfields from Parquet files. (#30613)Fix incorrect memory accounting for queries reading Iceberg tables with equality delete files. (#29955)
Fix incorrect memory accounting for
MERGE,UPDATE, andDELETEstatements on Delta Lake tables. (#29956)Fix incorrect memory accounting when reading Iceberg tables with deletion vectors. (#30876)
Fix potential worker out-of-memory errors when writes to sorted tables fail. (#31018)
Fix failure when reading ORC files where a large
varcharorvarbinaryvalue is followed only by null or empty values until the end of a stripe. (#10113)Fix failure when running
OPTIMIZEor writing to sorted Iceberg tables that contain largevarcharorvarbinaryvalues. (#20164, #28636)Fix failure when creating a view with the
extra_propertiesview property. (#31265)Fix writing Parquet files smaller than the target file size when writing low-cardinality data. (#31291)
Fix incorrect results when filtering on
timestampcolumns in Parquet files with UTC-adjusted timestamps whenhive.parquet.time-zoneis set to a time zone other than UTC. (#31050)Fix failure when accessing tables using Azure vended credentials from REST catalogs that key SAS tokens by storage host. (#29526)
Fix failure when reading nested arrays from Parquet files that use the legacy list encoding. (#27766)
Fix query failure or incorrect results when reading
variantcolumns in Delta Lake tables from Parquet files that store themetadatafield before thevaluefield. (#31388)Fix
variantcolumns in Parquet files written by Trino for Iceberg tables being read asrowvalues by other engines, such as DuckDB. (#31388)Fix incorrect results when reading
decimalvalues with precision of 18 or less stored asBINARYwithDELTA_LENGTH_BYTE_ARRAYencoding in Parquet files. (#31554)
MariaDB connector#
Memory connector#
Fix incorrect results for queries with multiple aggregations containing a
DISTINCTclause over a table sampled withTABLESAMPLE. (#31203)
MySQL connector#
OpenSearch connector#
Fix failure when listing columns if an index contains fields with unsupported metadata. (#30852)
Oracle connector#
Fix failure when reading
NUMBERcolumns without a declared precision, such as results ofCOUNT(*)orSUM, with thequerytable function. (#30467)Fix incorrect results when a cast from
chartovarcharis pushed down to Oracle and thedeprecated.legacy-varchar-to-char-coercionconfiguration property or thelegacy_varchar_to_char_coercionsession property is enabled. (#30683)Fix leak of temporary tables in the remote database when a query writing to a table fails or is canceled. (#31333)
PostgreSQL connector#
Redshift connector#
SingleStore connector#
Snowflake connector#
SQL Server connector#
Improve performance of queries with
IS NOT NULLpredicates oncharandvarcharcolumns. (#31060)Fix worker threads hanging indefinitely when connecting to an unresponsive SQL Server. (#30786)
Fix leak of temporary tables in the remote database when a query writing to a table fails or is canceled. (#31333)
Fix incorrect results when comparing
charorvarcharvalues that differ only in case or trailing spaces. (#30480)
TPC-DS connector#
⚠️ Breaking change: Use
integerinstead ofbigintfor identifier columns, such as surrogate keys and ticket numbers, at scale factors up to 3000. (#31589)
SPI#
Add the blob cache manager SPI for plugins that provide file caching to connectors. (#29184)
Add support for procedures that return metrics as
Map<String, Long>. (#30749)Add
ConnectorMetadata.getMaterializedViewTableHandleForExecute()to supportALTER MATERIALIZED VIEW ... EXECUTEin connectors. (#30868)Add a
ConnectorMetadata.createViewmethod that takes aSaveMode, and deprecate the method that takes areplaceflag. (#28076)⚠️ Breaking change: Change
BooleanTypeto use the bit-packedBitArrayBlockinstead ofByteArrayBlock. Plugins that construct or readbooleanblocks directly must be updated. (#30299)Disallow time zone offsets outside the range of
-14:00to+14:00inDateTimeEncoding.packTimeWithTimeZoneand theLongTimeWithTimeZoneconstructor. (#9288)⚠️ Breaking change: Change the return type of
DictionaryBlock.compact()andDictionaryBlock.compactRelatedBlocks()toBlock, as compaction can return a simpler block representation. (#30536)Deprecate
TrinoPrincipal.getName(). UseTrinoPrincipal.getPrincipalName()instead, which preserves the case of user names. (#30567)⚠️ Breaking change: Remove
ConnectorPageSourceProvider.getMemoryUsage()and add aMemoryContextparameter toConnectorPageSourceProviderFactory.createPageSourceProvider()for reporting memory shared across page sources. (#29955)⚠️ Breaking change: Add a
MemoryContextparameter toConnectorPageSinkProvider.createMergeSink()and remove the overload without it. (#29956)⚠️ Breaking change: Remove JSON serialization support from
TrinoPrincipalandRoleGrant. (#30610)⚠️ Breaking change: Change the return type of
ConnectorMetadata.finishMerge()toOptional<ConnectorOutputMetadata>. (#30934)⚠️ Breaking change: Add frame exclusion parameters to
WindowFunction.processRow. Plugins that implement window functions must be updated. (#30226)⚠️ Breaking change: Require plugins to use
io.trino.json.Jsoninstead ofSlicefor nativejsonvalues. (#30341)⚠️ Breaking change: Change the values of the
StandardTypes.INTERVAL_DAY_TO_SECONDandStandardTypes.INTERVAL_YEAR_TO_MONTHconstants and store day-time interval values in microseconds. Plugins must be recompiled. (#6754)