Release 362 (20 Sep 2021)#
General#
- Improve join performance. (#8974) 
- Improve performance of queries that contain a - DISTINCTclause. (#8967, #9194)
- Improve query performance by reducing CPU overhead of repartitioning data across worker nodes. (#9102) 
- Split metrics that are reported in operator stats into - connectorMetricsand- metrics. (#9156)
- Prevent failure when querying - system.materialized_viewsand a materialized view is dropped concurrently. (#9050)
- Fix incorrect results for aggregations that contain - DISTINCTand- FILTERclauses. (#9265)
- Fix incorrect query results when row pattern contains back references. (#9109) 
- Fix - ALTER SCHEMA ... SET AUTHORIZATIONto resolve roles using the catalog of the schema instead of the session catalog. (#9066)
- Fix query failure when query contains a cast from - varcharto a shorter- char. (#9036)
- Fix planning failure of - INSERTstatement when source table has hidden columns. (#9150)
- Fix planning of recursive queries when the recursion, the base plan, or the recursion step plan produce duplicate outputs. (#9153) 
- Fix failure when querying the optimizer_rule_stats system table. (#8700) 
- Fix failure for queries that push projections into connectors. (#6200) 
- Fix planning timeout for queries containing - IS NULL,- AND, and- ORpredicates in the- WHEREclause. (#9250)
- Fix failure for queries containing - ORDER BY ... LIMITwhen columns in the subquery are known to be constant. (#9171)
Security#
- Add - IN catalogclause to- CREATE ROLE,- DROP ROLE,- GRANT ROLE,- REVOKE ROLE, and- SET ROLEto specify the target catalog of the statement instead of using the current session catalog. This change is necessary to support system roles in the future. The old behavior of these statements can be restored by setting the- deprecated.legacy-catalog-rolesconfig property. (#9087)
Web UI#
- Add query error info to cluster overview page. (#8762) 
JDBC driver#
- Improve performance of listing table columns via - java.sql.DatabaseMetaDataAPI when filtering on schema name. (#9214)
Server RPM#
- Change RPM architecture to - noarchto allow installing on any machine type. (#9187)
BigQuery connector#
- Support case insensitive name matching for BigQuery views. (#9164) 
- Change type mapping of BigQuery - datetimefrom- timestamp(3)to- timestamp(6)in Trino. (#9052)
- Change type mapping of BigQuery - timefrom- time with time zoneto- time(6)in Trino. (#9052)
- Change type mapping of BigQuery - timestampfrom- timestamp(3) with time zoneto- timestamp(6) with time zonein Trino. (#9052)
- Fix failure for queries where predicate on - datetimecolumn is pushed down to BigQuery. (#9005)
- Fix incorrect results when using parameterized - numerictype with non-default precision and scale. (#9060)
- Fix query failure when accessing tables with unsupported data type columns. (#9086) 
- Fix failure for queries where predicate on - float64column involving- +infinityor- -infinityvalues is pushed down to BigQuery. (#9122)
Cassandra connector#
- Change minimum number of speculative executions from 2 to 1. (#9096) 
Hive connector#
- Support reading Parquet timestamp stored with millisecond or microsecond precision as - INT64with logical type annotations when Hive timestamp precision is- NANOSECONDS. (#9139)
- Support reading Parquet timestamp stored as - INT64with nanosecond precision. (#9188)
- Support writing Parquet timestamp stored as - INT64with nanosecond precision when experimental Parquet writer is enabled. To use this, the Hive timestamp precision should be set to- NANOSECONDS. (#9188)
- Support loading of S3 mappings via HTTP(S) url. The - hive.s3.security-mapping.config-file propertycan now either point to a local file or a URL. (#6210)
- Allow reading from tables bucketed on a column that uses type for which bucketing is not natively supported by Trino. Writing to such tables is still not allowed. (#8986) 
- Extend set of statistics reported by JMX to include metrics for calls made to the Glue statistics API. (#9100) 
- Limit maximum file size generated by write operations to 1 GB by default. The limit is not exact and is applied on a best-effort basis. The limit can be set with the - hive.target-max-file-sizeconfiguration property or the- target_max_file_sizesession property. (#7991)
- Allow specifying the list of schemas for which Trino will enforce that queries use a filter on partition keys for source tables. The list can be specified using the - hive.query-partition-filter-required-schemas, or the- query_partition_filter_required_schemassession property. The list is taken into consideration only if the- hive.query-partition-filter-requiredconfiguration property or the- query_partition_filter_requiredsession property is set to- true. (#9106)
- Fix failure when writing Parquet files with Snappy compression on ARM64. (#9148) 
- Fix performance regression when reading Parquet files that contain dictionaries. (#9161) 
- Fix incorrect table locking in Hive metastore when querying unpartitioned non-transactional tables. (#9070) 
- Fix - ArrayIndexOutOfBoundsExceptionwhen using the experimental Parquet writer. (#5518)
- Fix reading Avro tables written with older Avro versions that had certain semi-invalid schemas. (#9114) 
- Fix possible - INSERT/- UPDATE/- ANALYZEquery failure when Glue metastore is in use and table statistics collection is enabled. (#9297)
Iceberg connector#
- Add support for Iceberg - uuidtype. (#6663)
- Fix the mapping of nested fields between table metadata and Parquet file metadata. This enables evolution of - rowtyped columns for Iceberg tables stored in Parquet. (#9124)
- Fix failure for queries filtering on columns with array, map, or row type. (#8822) 
- Fix - ArrayIndexOutOfBoundsExceptionwhen using the experimental Parquet writer. (#5518)
- Fix query failures caused by errors reading certain Avro metadata files. (#9114) 
Pinot connector#
TPC-H connector#
- Add support for switching the mapping of floating point values between SQL - doubleand- decimaltypes. The mapping can be set via the- tpch.double-type-mappingconfiguration property. (#7990)
SPI#
- Change - Connector.isSingleStatementWritesOnly()to return- trueby default. (#8872)