Release 323-e LTS#

This release is a long term support (LTS) release.

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 the collect-plan-statistics-for-all-queries property.

  • 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 Starburst Generic JDBC connector.

  • Add Starburst IBM Db2 connector (requires license).

  • Add Starburst Snowflake connector (requires license).

  • Add Starburst BigQuery Connector (requires license).

  • Add Starburst Teradata connectors (requires license).

  • Add MapR Hive support (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 Direct 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.

Security changes#

  • Verify authenticated user credentials when checking permission to kill query in Ranger from Presto Web UI.

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.

  • Fix occasional CREATE TABLE ... AS SELECT or INSERT INTO ... SELECT query failure when reading from Hive table (“IllegalStateException: Invalid query id … while current query is [Optional.empty]”).

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

  • Add validation of Parquet decimal column type scale.

  • Improve information_schema query latency when Hive views execution is enabled.

  • Improve performance for queries containing IN predicates over bucketing columns.

Teradata connector changes#

Update 5#

Snowflake connector changes#

  • Add Okta integration. You can now use LDAP credentials to authenticate with Snowflake using Okta. See Starburst Snowflake connector for details.

  • Add support for Snowflake JDBC connection pooling. When enabled, query latency should be reduced.

Hive connector changes#

  • Improve information_schema query latency when Hive views execution is enabled. For Hive versions lower than 2.3.0 Hive views will be listed as tables in information_schema.

Update 6#

General changes#

  • Fix query failure when EXECUTE is used with an expression containing a function call.

Update 7#

Security changes#

  • Allow ignoring LDAP referrals. This can be enabled with ldap.ignore-referrals=false LDAP password authenticator configuration property.

JDBC changes#

  • Add roles property that allows to configure authorization roles to be used for catalogs.

  • Add sessionProperties property that allows to configure system and catalog session properties.

  • Allow to pass : character within a value of extra credential passed with extraCredentials property.

Hive connector changes#

  • Add register_partition, unregister_partition procedures for adding partitions to and removing partitions from a partitioned table. See the Hive connector documentation to find out more about procedures.

  • Improve performance of SHOW SCHEMAS and SHOW TABLES when hive. security=sentry is used.

  • Allow data conversion when reading decimal data from Parquet files and precision or scale in the file schema is different from the precision or scale in partition (table) schema.

  • Add hive.fs.new-directory-permissions configuration property for setting the permissions of new directories created by Presto. Default value is 0777.

MongoDB connector changes#

  • Fix incorrect results when query contains filters on certain types, such as real and decimal.

Update 9#

Security changes#

  • Do not start JmxAgent by default.

Hive connector changes#

  • Fix incorrect query results when reading Parquet data with a varchar column predicate which is a comparison with a value containing non-ASCII characters.

Oracle connector changes#

  • Fix a bug which, in rare cases, could cause INSERT queries not to write data to the destination table.

Versions 10 and 11 were not released to the public.

Update 12#

General changes#

  • Backport cluster-internal communication

    • Support only shared secret usage

    • Remove support for Kerberos for internal communication

    • Cluster accessed via HTTPS must have internal-communication. shared-secret configured