Release 352 (9 Feb 2021)#

General#

  • Add support for WINDOW clause. (#651)

  • Add support for UPDATE. (#5861)

  • Add version() function. (#4627)

  • Allow prepared statement parameters for SHOW STATS. (#6582)

  • Update tzdata version to 2020d. As a result, queries can no longer reference the US/Pacific-New zone, as it has been removed. (#6660)

  • Add plan-with-table-node-partitioning feature config that corresponds to existing plan_with_table_node_partitioning session property. (#6811)

  • Improve performance of queries using rank() window function. (#6333)

  • Improve performance of sum() and avg() for decimal types. (#6951)

  • Improve join performance. (#5981)

  • Improve query planning time for queries using range predicates or large IN lists. (#6544)

  • Fix window and streaming aggregation semantics regarding peer rows. Now peer rows are grouped using IS NOT DISTINCT FROM instead of the = operator. (#6472)

  • Fix query failure when using an element of array(timestamp(p)) in a complex expression for p greater than 6. (#6350)

  • Fix failure when using geospatial functions in a join clause and spatial_partitioning_table_name is set. (#6587)

  • Fix CREATE TABLE AS failure when source table has hidden columns. (#6835)

Security#

  • Allow configuring HTTP client used for OAuth2 authentication. (#6600)

  • Add token polling client API for OAuth2 authentication. (#6625)

  • Support JWK with certificate chain for OAuth2 authorization. (#6428)

  • Add scopes to OAuth2 configuration. (#6580)

  • Optionally verify JWT audience (aud) field for OAuth2 authentication. (#6501)

  • Guard against replay attacks in OAuth2 by using nonce cookie when openid scope is requested. (#6580)

JDBC driver#

  • Add OAuth2 authentication. (#6576)

  • Support user impersonation when using password-based authentication using the new sessionUser parameter. (#6549)

Docker image#

  • Remove support for configuration directory /usr/lib/trino/etc. The configuration should be provided in /etc/trino. (#6497)

CLI#

  • Support user impersonation when using password-based authentication using the --session-user command line option. (#6567)

BigQuery connector#

  • Add a view_definition system table which exposes BigQuery view definitions. (#3687)

  • Fix query failure when calculating count(*) aggregation on a view more than once, without any filter. (#6706).

Hive connector#

  • Add UPDATE support for ACID tables. (#5861)

  • Match columns by index rather than by name by default for ORC ACID tables. (#6479)

  • Match columns by name rather than by index by default for Parquet files. (#6479)

  • Remove the hive.partition-use-column-names configuration property and the partition_use_column_names session property. This is now determined automatically. (#6479)

  • Support timestamps with microsecond or nanosecond precision (as configured with hive.timestamp-precision property) nested within array, map or struct data types. (#5195)

  • Support reading from table in Sequencefile format that uses LZO compression. (#6452)

  • Expose AWS HTTP Client stats via JMX. (#6503)

  • Allow specifying S3 KMS Key ID used for client side encryption via security mapping config and extra credentials. (#6802)

  • Fix writing incorrect timestamp values within row, array or map when using Parquet file format. (#6760)

  • Fix possible S3 connection leak on query failure. (#6849)

Iceberg connector#

  • Add iceberg.max-partitions-per-writer config property to allow configuring the limit on partitions per writer. (#6650)

  • Optimize cardinality-insensitive aggregations (max(), min(), distinct(), approx_distinct()) over identity partition columns with optimizer.optimize-metadata-queries config property or optimize_metadata_queries session property. (#5199)

  • Provide use_file_size_from_metadata catalog session property and iceberg.use-file-size-from-metadata config property to fix query failures on tables with wrong file sizes stored in the metadata. (#6369)

  • Fix the mapping of nested fields between table metadata and ORC file metadata. This enables evolution of row typed columns for Iceberg tables stored in ORC. (#6520)

Kinesis connector#

  • Support GZIP message compression. (#6442)

MySQL connector#

  • Improve performance for certain complex queries involving aggregation and predicates (e.g. HAVING clause) by pushing the aggregation and predicates computation into the remote database. (#6667)

  • Improve performance for certain queries using stddev_pop, stddev_samp, var_pop, var_samp aggregation functions by pushing the aggregation and predicates computation into the remote database. (#6673)

PostgreSQL connector#

  • Improve performance for certain complex queries involving aggregation and predicates (e.g. HAVING clause) by pushing the aggregation and predicates computation into the remote database. (#6667)

  • Improve performance for certain queries using stddev_pop, stddev_samp, var_pop, var_samp, covar_pop, covar_samp, corr, regr_intercept, regr_slope aggregation functions by pushing the aggregation and predicates computation into the remote database. (#6731)

Redshift connector#

  • Use the Redshift JDBC driver to access Redshift. As a result, connection-url in catalog configuration files needs to be updated from jdbc:postgresql:... to jdbc:redshift:.... (#6465)

SQL Server connector#

  • Avoid query failures due to transaction deadlocks in SQL Server by using transaction snapshot isolation. (#6274)

  • Honor precision of SQL Server’s datetime2 type . (#6654)

  • Add support for Trino timestamp type in CREATE TABLE statement, by mapping it to SQL Server’s datetime2 type. Previously, it was incorrectly mapped to SQL Server’s timestamp type. (#6654)

  • Add support for the time type. (#6654)

  • Improve performance for certain complex queries involving aggregation and predicates (e.g. HAVING clause) by pushing the aggregation and predicates computation into the remote database. (#6667)

  • Fix failure when querying tables having indexes and constraints. (#6464)

SPI#

  • Add support for join pushdown via the ConnectorMetadata.applyJoin() method. (#6752)