Release 346 (10 Nov 2020)#

General#

  • Add support for RANGE BETWEEN <value> PRECEDING AND <value> FOLLOWING window frames. (#609)

  • Add support for window frames based on GROUPS. (#5713)

  • Add support for extract() with TIMEZONE_HOUR and TIMEZONE_MINUTE for time with time zone values. (#5668)

  • Add SQL syntax for GRANT and REVOKE on schema. This is not yet used by any connector. (#4396)

  • Add ALTER TABLE ... SET AUTHORIZATION syntax to allow changing the table owner. (#5717)

  • Make EXPLAIN more readable for queries containing timestamp or timestamp with time zone constants. (#5683)

  • Improve performance for queries with inequality conditions. (#2674)

  • Improve performance of queries with uncorrelated IN clauses. (#5582)

  • Use consistent NaN behavior for least(), greatest(), array_min(), array_max(), min(), max(), min_by(), and max_by(). NaN is only returned when it is the only value (except for null which are ignored for aggregation functions). (#5851)

  • Restore previous null handling for least() and greatest(). (#5787)

  • Restore previous null handling for array_min() and array_max(). (#5787)

  • Remove configuration properties arrayagg.implementation, multimapagg.implementation, and histogram.implementation. (#4581)

  • Fix incorrect handling of negative offsets for the time with time zone type. (#5696)

  • Fix incorrect result when casting time(p) to timestamp(p) for precisions higher than 6. (#5736)

  • Fix incorrect query results when comparing a timestamp column with a timestamp with time zone constant. (#5685)

  • Fix improper table alias visibility for queries that select all fields. (#5660)

  • Fix failure when query parameter appears in a lambda expression. (#5640)

  • Fix failure for queries containing DISTINCT * and fully-qualified column names in the ORDER BY clause. (#5647)

  • Fix planning failure for certain queries involving INNER JOIN, GROUP BY and correlated subqueries. (#5846)

  • Fix recording of query completion event when query is aborted early. (#5815)

  • Fix exported JMX name for QueryManager. (#5702)

  • Fix failure when approx_distinct() is used with high precision timestamp(p)/timestamp(p) with time zone/time(p) with time zone data types. (#5392)

Web UI#

  • Fix “Capture Snapshot” button on the Worker page. (#5759)

JDBC driver#

  • Support number accessor methods like ResultSet.getLong() or ResultSet.getDouble() on decimal values, as well as char or varchar values that can be unambiguously interpreted as numbers. (#5509)

  • Add SSLVerification JDBC connection parameter that allows configuring SSL verification. (#5610)

  • Remove legacy useSessionTimeZone JDBC connection parameter. (#4521)

  • Implement ResultSet.getRow(). (#5769)

Server RPM#

  • Remove leftover empty directories after RPM uninstall. (#5782)

BigQuery connector#

  • Fix issue when query could return invalid results if some column references were pruned out during query optimization. (#5618)

Cassandra connector#

  • Improve performance of INSERT queries with batch statement. The batch size can be configured via the cassandra.batch-size configuration property. (#5047)

Elasticsearch connector#

  • Fix failure when index mappings do not contain a properties section. (#5807)

Hive connector#

  • Add support for ALTER TABLE ... SET AUTHORIZATION SQL syntax to change the table owner. (#5717)

  • Add support for writing timestamps with microsecond or nanosecond precision, in addition to milliseconds. (#5283)

  • Export JMX statistics for Glue metastore client request metrics. (#5693)

  • Collect column statistics during ANALYZE and when data is inserted to table for columns of timestamp(p) when precision is greater than 3. (#5392)

  • Improve query performance by adding support for dynamic bucket pruning. (#5634)

  • Remove deprecated parquet.fail-on-corrupted-statistics (previously known as hive.parquet.fail-on-corrupted-statistics). A new configuration property, parquet.ignore-statistics, can be used to deal with Parquet files with incorrect metadata. (#3077)

  • Do not write min/max statistics for timestamp columns. (#5858)

  • If multiple metastore URIs are defined via hive.metastore.uri, prefer connecting to one which was seen operational most recently. This prevents query failures when one or more metastores are misbehaving. (#5795)

  • Fix Hive view access when catalog name is other than hive. (#5785)

  • Fix failure when the declared length of a varchar(n) column in the partition schema differs from the table schema. (#5484)

  • Fix Glue metastore pushdown for complex expressions. (#5698)

Iceberg connector#

  • Add support for materialized views. (#4832)

  • Remove deprecated parquet.fail-on-corrupted-statistics (previously known as hive.parquet.fail-on-corrupted-statistics). A new configuration property, parquet.ignore-statistics, can be used to deal with Parquet files with incorrect metadata. (#3077)

Kafka connector#

  • Fix incorrect column comment. (#5751)

Kudu connector#

  • Improve performance of queries having only LIMIT clause. (#3691)

MySQL connector#

  • Improve performance for queries containing a predicate on a varbinary column. (#5672)

Oracle connector#

  • Add support for setting column comments. (#5399)

  • Allow enabling remarks reporting via oracle.remarks-reporting.enabled configuration property. (#5720)

PostgreSQL connector#

  • Improve performance of queries comparing a timestamp column with a timestamp with time zone constants for timestamp with time zone precision higher than 3. (#5543)

Other connectors#

  • Improve performance of queries with DISTINCT or LIMIT, or with GROUP BY and no aggregate functions and LIMIT, when the computation can be pushed down to the underlying database for the PostgreSQL, MySQL, Oracle, Redshift and SQL Server connectors. (#5522)

SPI#

  • Fix propagation of connector session properties to ConnectorNodePartitioningProvider. (#5690)

  • Add user groups to query events. (#5643)

  • Add planning time to query completed event. (#5643)