Release 341 (8 Sep 2020)#
General#
- Add support for variable-precision - TIMEtype. (#4381)
- Add support for variable precision - TIME WITH TIME ZONEtype. (#4905)
- Add Iceberg connector. 
- Add - human_readable_seconds()function. (#4344)
- Add support for - extract()for- timestamp(p) with time zonewith values of- pother than 3. (#4867)
- Add support for correlated subqueries in recursive queries. (#4877) 
- Add runtime.optimizer_rule_stats system table. (#4659) 
- Report dynamic filters statistics. (#4440) 
- Improve query scalability when new nodes are added to cluster. (#4294) 
- Improve error message when JSON parsing fails. (#4616) 
- Reduce latency when dynamic filtering is in use. (#4924) 
- Remove support for political time zones in - TIME WITH TIME ZONEtype. (#191)
- Remove deprecated - reorder_joinssession property. (#5027)
- Remove the - deprecated.legacy-timestampconfiguration property and the- legacy_timestampsession property. (#4799)
- Change timestamp operations to match the SQL specification. The value of a - TIMESTAMPtype is not affected by the session time zone. (#37)
- Preserve precision when applying - AT TIME ZONEto values of type- TIMESTAMP. (#4866)
- Fix serialization of - NULLvalues in- ROW,- MAPand- ARRAYtypes for old Presto clients. (#4778)
- Fix failure when aggregation query contains duplicate expressions. (#4872) 
- Fix compiler failure when querying timestamps with a precision greater than 6. (#4824) 
- Fix parsing failure of timestamps due to daylight saving changes. (#37) 
- Fix failure when calling - extract()with- TIMEZONE_HOURand- TIMEZONE_MINUTEfor- TIMESTAMP WITH TIME ZONEtype. (#4867)
- Fix query deadlock for connectors that wait for dynamic filters. (#4946) 
- Fix failure when - TIMEor- TIMESTAMPsubtraction returns a negative value. (#4847)
- Fix failure when duplicate expressions appear in - DISTINCTclause. (#4787)
- Fix failure for certain join queries during spilling or when available memory is low. (#4994) 
- Fix issue where the - query_max_scan_physical_bytessession property was ignored if the- query.max-scan-physical-bytesconfiguration property was not defined. (#5009)
- Correctly compute sample ratio when - TABLESAMPLEis used with a fractional percentage. (#5074)
- Fail queries with a proper error message when - TABLESAMPLEis used with a non-numeric sample ratio. (#5074)
- Fail with an explicit error rather than - OutOfMemoryErrorfor certain operations. (#4890)
Security#
- Add support for interpolating secrets into - access-control.properties. (#4854)
- Only request HTTPS client certificate when certificate authentication is enabled. (#4804) 
- Add User mapping support for uppercasing or lowercasing usernames. (#4736) 
Web UI#
- Fix display of physical input read time in detailed query view. (#4962) 
JDBC driver#
- Implement - ResultSet.getStatement(). (#4957)
BigQuery connector#
Cassandra connector#
- Map Cassandra - TIMESTAMPtype to Presto- TIMESTAMP(3) WITH TIME ZONEtype. (#2269)
Hive connector#
- Skip stripes and row groups based on timestamp statistics for ORC files. (#1147) 
- Skip S3 objects with the - DeepArchivestorage class (in addition to the- Glacierstorage class) when- hive.s3.skip-glacier-objectsis enabled. (#5002)
- Use a temporary staging directory for temporary files when writing to sorted bucketed tables. This allows using a more efficient file system for temporary files. (#3434) 
- Fix metastore cache invalidation for - GRANTand- REVOKE. (#4768)
- Add Parquet and RCBinary configuration properties - hive.parquet.time-zoneand- hive.rcfile.time-zoneto adjust binary timestamp values to a specific time zone. For Hive 3.1+, this should be set to UTC. The default value is the JVM default time zone, for backwards compatibility with earlier versions of Hive. (#4799)
- Add ORC configuration property - hive.orc.time-zoneto set the default time zone for legacy ORC files that did not declare a time zone. (#4799)
- Replace the - hive.time-zoneconfiguration property with format specific properties:- hive.orc.time-zone,- hive.parquet.time-zone,- hive.rcfile.time-zone. (#4799)
- Allow using the cluster default role with S3 security mapping. (#4931) 
- Remove support for bucketing on timestamp. The definition of the hash function for timestamp incorrectly depends on the storage time zone and can result in incorrect results. (#4759) 
- Decrease the number of requests to the Glue metastore when fetching partitions. This helps avoid hitting rate limits and decreases service costs. (#4938) 
- Match the existing user and group of the table or partition when creating new files on HDFS. (#4414) 
- Fix invalid timestamp values for nested data in Text, Avro, SequenceFile, JSON and CSV formats. (#4799) 
- Fix query failure when reading an ORC ACID table with a filter after the table underwent a minor table compaction. (#4622) 
- Fix incorrect query results when reading an ORC ACID table that has deleted rows and underwent a minor compaction. (#4623) 
- Fix query failure when storage caching is enabled and cached data is evicted during query execution. (#3580) 
JMX connector#
- Change - timestampcolumn type in history tables to- TIMESTAMP WITH TIME ZONE. (#4753)
Kafka connector#
- Preserve time zone when parsing - TIMESTAMP WITH TIME ZONEvalues. (#4799)
Kinesis connector#
- Preserve time zone when parsing - TIMESTAMP WITH TIME ZONEvalues. (#4799)
Kudu connector#
- Fix delete when applied on table having primary key of decimal type. (#4683) 
Local File connector#
- Change - timestampcolumn type to- TIMESTAMP WITH TIME ZONE. (#4752)
MySQL connector#
- Improve performance of aggregation queries by pushing the aggregation computation into the MySQL database. Currently, the following aggregate functions are eligible for pushdown: - count,- min,- max,- sumand- avg. (#4138)
Oracle connector#
- Add - oracle.connection-pool.inactive-timeoutconfiguration property to specify how long pooled connection can be inactive before it is closed. It defaults to 20 minutes. (#4779)
- Add support for database internationalization. (#4775) 
- Add resilience to momentary connection authentication issues. (#4947) 
- Allowing forcing the mapping of certain types to - VARCHAR. This can be enabled by setting the- jdbc-types-mapped-to-varcharconfiguration property to a comma-separated list of type names. (#4955)
- Prevent query failure for pushdown of predicates involving a large number of conjuncts. (#4918) 
Phoenix connector#
- Fix overwriting of former value when insert is applied without specifying that column. (#4670) 
Pinot connector#
- Add support for - REALand- INTEGERtypes. (#4725)
- Add support for functions in pass-through queries. (#4801) 
- Enforce a limit on the number of rows fetched from Pinot. This can be configured via the - pinot.max-rows-per-split-for-segment-queriesconfiguration property. (#4723)
- Fix incorrect results for - count(*)queries. (#4802)
- Fix incorrect results for queries involving - avg()over columns of type- long,- int, or- float. (#4802)
- Fix incorrect results when columns in pass-through query do not match selected columns. (#4802) 
Prometheus connector#
- Change the type of the - timestampcolumn to- TIMESTAMP(3) WITH TIME ZONEtype. (#4799)
PostgreSQL connector#
Raptor connector#
- Remove the - storage.shard-day-boundary-time-zoneconfiguration property, which was used to work around legacy timestamp semantics in Presto. (#4799)
Redis connector#
- Preserve time zone when parsing - TIMESTAMP WITH TIME ZONEvalues. (#4799)
SPI#
- The - TIMESTAMPtype is encoded as a number of fractional seconds from- 1970-01-01 00:00:00in the proleptic Gregorian calendar. This value is no longer adjusted to the session time zone. Timestamps with precision less than or equal to 3 are now represented in microseconds. (#4799)
- Remove - isLegacyTimestamp()from- ConnectorSession. (#4799)
- Enable connectors to wait for dynamic filters before producing data on worker nodes. (#3414)