21.1. Release 323-e

General Changes

  • Display actual statistics in EXPLAIN ANALYZE VERBOSE.
  • Reduce number of metadata queries during planning. This change disables stats collection for non-EXPLAIN queries. If you want to have access to such stats in query completed event listener, you need to re-enable stats by collection using collect-plan-statistics-for-all-queries property.
  • Add Hive MapR Connector (requires license).
  • Support prepared statements that are longer than 4K bytes.
  • Add Oracle compatibility functions
  • Add support for column statistics in Glue.
  • Add support for Glue API proxy.
  • Enable Cost-Based Optimizer (CBO) by default.
  • Add Generic JDBC Connector.
  • Add IBM DB2 Connector (requires license).
  • Add Snowflake Connector (requires license).
  • Add BigQuery Connector (requires license).
  • Add Teradata Connector (requires license).
  • Allow specifying a subset of columns in ANALYZE
  • Procedure for dropping statistics
  • Allow setting client tags via session properties
  • Fix CorrelatedJoin decorrelation
  • Various fixes related to quoting names that may conflict with SQL keywords

Security Changes

  • Add security audit log collection.
  • Add ldap.bind-dn and ldap.bind-password LDAP properties to allow LDAP authentication access LDAP server using service account.
  • Allow to pass securely pass secrets to Presto configuration using Java keystore files.

Hive Connector Changes

  • Add support for Parquet files with compatible decimal precision.
  • Fix query failure when reading Parquet files that contain character data without statistics.
  • Fix incorrect behavior of CREATE TABLE when Hive metastore is configured with metastore.create.as.acid set to true.
  • Add support for HDP 3.1, including reading transactional tables.
  • Use information derivable from Parquet statistics for varchar data type for files written by old Parquet version.
  • Add hive.s3.positioned-reads.enabled configuration property allowing disabling positioned reads optimization. Consider disabling the optimization when working with small Parquet files.
  • Allow specifying column lists to analyze in ANALYZE.
  • Add procedure drop_stats for removing statistics for a table or a specified set of partitions.
  • Support overwriting unpartitioned tables for insert queries when using AWS Glue.
  • Allow to ignore partitions that do not have matching data directory with hive.ignore-absent-partitions=true connector configuration property.
  • Add support for Azure Data Lake Storage gen 2 (ABFS).
  • Enable Hive views execution using a config toggle.
  • Fix parametric column types support for Hive views.
  • Improve hive query execution when view was created with tables without schema specified.
  • Support Apache Ranger authorization (requires licence).
  • Support Apache Sentry authorization (requires licence).
  • Rename hive.parquet.xxx config options to parquet.xxx
  • Fix Parquet Predicate Pushdown on Dictionaries
  • Stop Parquet Dictionary Reads Eagerly in Predicate Pushdown
  • Coalesce small reads for Parquet

SQLServer Connector Changes

  • Support user impersonation.
  • Support retrieving table and column statistics. The statistics can be inspected with SHOW STATS and are taken into account in Cost-Based Optimizations.
  • Fix incorrect insertion of data when the target table has an unsupported type.

PostgreSQL Connector Changes

  • Support user impersonation.
  • Support retrieving table and column statistics. The statistics can be inspected with SHOW STATS and are taken into account in Cost-Based Optimizations.
  • Fix incorrect insertion of data when the target table has an unsupported type.

MySQL Connector Changes

  • Support retrieving table and column statistics. The statistics can be inspected with SHOW STATS and are taken into account in Cost-Based Optimizations.
  • Fix incorrect insertion of data when the target table has an unsupported type.

Redshift Connector Changes

  • Fix incorrect insertion of data when the target table has an unsupported type.

JDBC based Connectors Changes

  • Add metadata cache that is configured with metadata.cache-ttl and metadata.cache-missing. By default caching is disabled (equivalent to metadata.cache-ttl=0s and metadata.cache-missing=false).
  • Collect JMX metrics about metadata information collection and connection usage.

Elasticsearch Connector Changes

  • Add support for datetimes exposed as numbers in Elasticsearch
  • Handle mixed-case columns in Elasticsearch

Update 1

General Changes

  • Fix incorrect query results when query contains LEFT JOIN over UNNEST.
  • Fix accounting of semantic analysis time when queued queries are cancelled.
  • Support user groups in file-based resource group selectors.
  • Support JSON-style lists in addition to regular expressions in file-based resource group selectors.
  • Improve performance when processing columns of map type.

Hive Connector Changes

  • Fix a CDH 5.x metastore compatibility issue resulting in the metastore discarding stats computed with ANALYZE.
  • Fix a CDH 5.x metastore compatibility issue resulting in failure when inserting data into, or analyzing a table with date columns.
  • Fix listing user’s roles and applicable privileges when roles form a diamond inheritance structure.
  • Improve concurrency when updating table or partition statistics.

Teradata Connector Changes

  • Support unbounded varchar type in CREATE TABLE statement.
  • Support UTF-8 characters.

Teradata Table Operator Connector Changes

  • Support unbounded varchar type in CREATE TABLE statement.
  • Support UTF-8 characters.

Oracle Connector Changes

  • Add connection pooling support. Pooling is enabled by default as a performance improvement and requires Oracle’s ucp.jar. See Oracle Connector for details.

Update 2

General Changes

  • Support LDAP referrals in LDAP password authenticator

Update 3

General Changes

  • Support narrowing type coercions for insert queries.
  • Add error_type and error_code columns to system.runtime.queries.

Hive Connector Changes

  • Fix incorrect data returned when using S3 Select on uncompressed files. In our testing, S3 Select was apparently returning incorrect results when reading uncompressed files, so S3 Select is disabled for uncompressed files.
  • Fix incorrect data returned when using S3 Select on a table with skip.header.line.count or skip.footer.line.count property. S3 Select API does not support skipping footers or more than one line of a header. In our testing, S3 Select was apparently sometimes returning incorrect results when reading a compressed file with header skipping, so S3 Select is disabled when any of these table properties is set to non-zero value.

Snowflake Connector Changes

  • Improve performance of distributed snowflake connector.

BigQuery Connector Changes

  • Update supported BigQuery JDBC driver.

Kafka Connector Changes

Generic JDBC Connector Changes

  • Add best-effort compatibility with older JDBC drivers. This can be enabled with generic-jdbc.experimental.jdbc-version-compatibility.enabled configuration property.

Security Changes

  • Fail LDAP authentication if username contains any special LDAP characters

Update 4

General Changes

  • Fix incorrect result of last_day_of_month function for first day of month.

Hive Connector Changes

  • Fix INSERT or CREATE TABLE ... AS query failure when hive.collect-column-statistics-on-write is enabled and one of the inserted REAL or DOUBLE values is infinite or NaN.

Teradata Connector Changes

  • Support NUMBER Teradata data type without specified precision and scale. See Teradata type mapping Configuration section for more details.

Hive

  • Add explicit support for conversion from Parquet decimal column type to Presto integer column types.
  • Add validation of Parquet decimal column type scale.