Release 341 (8 Sep 2020)#
General#
Add support for variable-precision
TIME
type. (#4381)Add support for variable precision
TIME WITH TIME ZONE
type. (#4905)Add Iceberg connector.
Add
human_readable_seconds()
function. (#4344)Add support for
extract()
fortimestamp(p) with time zone
with values ofp
other 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 ZONE
type. (#191)Remove deprecated
reorder_joins
session property. (#5027)Remove the
deprecated.legacy-timestamp
configuration property and thelegacy_timestamp
session property. (#4799)Change timestamp operations to match the SQL specification. The value of a
TIMESTAMP
type is not affected by the session time zone. (#37)Preserve precision when applying
AT TIME ZONE
to values of typeTIMESTAMP
. (#4866)Fix serialization of
NULL
values inROW
,MAP
andARRAY
types 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()
withTIMEZONE_HOUR
andTIMEZONE_MINUTE
forTIMESTAMP WITH TIME ZONE
type. (#4867)Fix query deadlock for connectors that wait for dynamic filters. (#4946)
Fix failure when
TIME
orTIMESTAMP
subtraction returns a negative value. (#4847)Fix failure when duplicate expressions appear in
DISTINCT
clause. (#4787)Fix failure for certain join queries during spilling or when available memory is low. (#4994)
Fix issue where the
query_max_scan_physical_bytes
session property was ignored if thequery.max-scan-physical-bytes
configuration property was not defined. (#5009)Correctly compute sample ratio when
TABLESAMPLE
is used with a fractional percentage. (#5074)Fail queries with a proper error message when
TABLESAMPLE
is used with a non-numeric sample ratio. (#5074)Fail with an explicit error rather than
OutOfMemoryError
for 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
TIMESTAMP
type to PrestoTIMESTAMP(3) WITH TIME ZONE
type. (#2269)
Hive connector#
Skip stripes and row groups based on timestamp statistics for ORC files. (#1147)
Skip S3 objects with the
DeepArchive
storage class (in addition to theGlacier
storage class) whenhive.s3.skip-glacier-objects
is 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
GRANT
andREVOKE
. (#4768)Add Parquet and RCBinary configuration properties
hive.parquet.time-zone
andhive.rcfile.time-zone
to 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-zone
to set the default time zone for legacy ORC files that did not declare a time zone. (#4799)Replace the
hive.time-zone
configuration 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
timestamp
column type in history tables toTIMESTAMP WITH TIME ZONE
. (#4753)
Kafka connector#
Preserve time zone when parsing
TIMESTAMP WITH TIME ZONE
values. (#4799)
Kinesis connector#
Preserve time zone when parsing
TIMESTAMP WITH TIME ZONE
values. (#4799)
Kudu connector#
Fix delete when applied on table having primary key of decimal type. (#4683)
Local File connector#
Change
timestamp
column type toTIMESTAMP 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
,sum
andavg
. (#4138)
Oracle connector#
Add
oracle.connection-pool.inactive-timeout
configuration 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 thejdbc-types-mapped-to-varchar
configuration 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
REAL
andINTEGER
types. (#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-queries
configuration property. (#4723)Fix incorrect results for
count(*)
queries. (#4802)Fix incorrect results for queries involving
avg()
over columns of typelong
,int
, orfloat
. (#4802)Fix incorrect results when columns in pass-through query do not match selected columns. (#4802)
Prometheus connector#
Change the type of the
timestamp
column toTIMESTAMP(3) WITH TIME ZONE
type. (#4799)
PostgreSQL connector#
Raptor connector#
Remove the
storage.shard-day-boundary-time-zone
configuration property, which was used to work around legacy timestamp semantics in Presto. (#4799)
Redis connector#
Preserve time zone when parsing
TIMESTAMP WITH TIME ZONE
values. (#4799)
SPI#
The
TIMESTAMP
type is encoded as a number of fractional seconds from1970-01-01 00:00:00
in 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()
fromConnectorSession
. (#4799)Enable connectors to wait for dynamic filters before producing data on worker nodes. (#3414)