Release 302-e LTS#

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

General changes#

  • Add Generic JDBC connector.

  • Disable Airlift’s “admin” servlet port, which was not used for anything in Presto.

  • Enable Cost-Based Optimizer (CBO) by default.

  • Add JDBC-based Google BigQuery connector.

  • Fix /v1/info to report started status after all plugins have been registered and initialized.

  • Support prepared statements that are longer than 4K bytes.

  • Add CloudWatch Agent compatible logger.

  • Correctly report internal network/physical position count for operators.

  • Sum internal network/physical data size and position count from all stages in query statistics.

  • Report internal network/physical data size and position count in detailed query UI view.

  • Fix broken timeline UI view.

  • Add experimental support for Spill to Disk for OrderBy.

  • Add experimental support for Spill to Disk for WindowOperator.

  • Add Oracle compatibility functions

  • Display join enumeration stats in explain analyze.

Hive connector changes#

  • Add support for user impersonation when communicating with Hive Metastore.

  • Support tables located in HDFS encryption zones managed with Hadoop KMS.

  • Support Avro tables with avro.schema.url in kerberized HDFS.

  • Fix query failure when querying partitioned Avro table with very long column type definition.

  • Support CSV table storage format.

  • Allow partitions without files for bucketed tables (via hive.empty-bucketed-partitions.enabled).

  • Allow multiple files per bucket for bucketed tables (via hive.multi-file-bucketing.enabled). There must be one or more files per bucket. File names must match the Hive naming convention.

  • Allow reading incompletely bucketed tables with missing files (via hive.empty-bucketed-partitions.enabled).

  • Add support for Azure Blob Storage

  • Add support for Azure Data Lake Storage (ADLS)

  • Add support for Azure Data Lake Storage gen 2 (ABFS)

  • Add textfile_field_separator and textfile_field_separator_escape table properties to control field separator and field separator characters for tables with TEXTFILE format.

  • Support Apache Ranger authorization (requires licence).

  • Support Apache Sentry authorization (requires licence).

  • Add Glue support for private subnets.

  • Add support for column statistics in Glue.

  • Fix S3 eventual consistency errors for non ORC file formats.

MySQL, PostgreSQL, Redshift, and SQL Server changes#

  • Support schemas, tables and columns with names that are upper-case or mixed-case.

  • Add predicate pushdown for DECIMAL values.

MongoDB connector changes#

  • Fix queries involving joins or aggregations on ObjectId type.

Base-JDBC connector library changes#

  • Allow customizing how query predicates are pushed down to the underlying database.

  • Allow customizing how values are written to the underlying database.

Security changes#

  • Add ldap.bind-dn and ldap.bind-password LDAP properties to allow LDAP authentication access LDAP server using service account.

  • Retry Kerberos communication in case of transient network issues.

Update 2#

Security changes#

  • Make query result and cancellation URIs secure. Previously, an authenticated user could potentially steal the result data of any running query.

Update 4#

General changes#

  • Fix resource group selection when selector uses regular expression variables.

  • Fix thread-safety bug in resource groups manager.

  • Set default maximum estimated size of a table that can be broadcast when using automatic join type selection to 100MB.

  • Unhide join_max_broadcast_table_size session property.

  • Improve performance of queries when spill is enabled, but spill is not triggered.

  • Include revocable memory in total memory stats.

  • Add peak revocable memory to operator stats.

  • Support session property with comma or equality sign.

  • Support resource group selection based on client tags for enterprise ODBC and JDBC drivers.

  • Fix updating peak revocable memory reservation

  • Fix blocking on memory when revocable memory is used

  • Fix double memory accounting for spilling aggregations

  • Fix possible CPU active waiting when window operator spill is triggered

  • Fix access control for functions in view.

UI changes#

  • Display peak revocable memory in detailed query view

  • Display current and peak total memory in query list view

Update 5#

General changes#

  • Fix failure when a view column is referenced using its fully qualified form.

  • Fix spill files leaks in window and order by operator.

  • Add support for query modification plugin.

Hive connector changes#

  • Add procedure system.sync_partition_metadata() to synchronize the partitions in the metastore with the partitions that are physically on the file system.

Oracle 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.

  • Support user impersonation.

SQL Server connector changes#

  • Fix reading and writing of timestamp values. Previously, incorrect value would be read unless Presto JVM is a certain time zone.

  • Support retrieving table and column statistics. The statistics can be inspected with SHOW STATS and are taken into account in Cost-based optimizations.

  • Support user impersonation.

PostgreSQL connector changes#

  • Fix predicate pushdown for PostgreSQL enum type.

  • Fix reading and writing of timestamp values. Previously, incorrect value would be read unless Presto JVM is a certain time zone.

  • Support retrieving table and column statistics. The statistics can be inspected with SHOW STATS and are taken into account in Cost-based optimizations.

  • Map PostgreSQL json and jsonb types to Presto json type.

  • Support user impersonation.

MySQL connector changes#

  • Fix reading and writing of timestamp values. Previously, incorrect value would be read unless Presto JVM is a certain time zone.

MongoDB connector changes#

  • Fix queries involving joins or aggregations on row types containing ObjectId.

Teradata connector changes#

  • Support user impersonation.

Update 7#

  • Fix Web UI crash when opened as http://coordinator:port/ui.

Update 8#

Hive connector changes#

  • Fix calling procedures immediately after startup, before any other queries are run. Previously, the procedure call would fail and also cause all subsequent Hive queries to fail.

  • Optimize sql-standard table access control.

MySQL connector changes#

Update 9#

General changes#

  • Update recommended JVM configuration. If you are installing Presto from RPM, you do not need to do anything. Otherwise make sure that your jvm.config contains the following. If you already set -XX:ReservedCodeCacheSize and -Djdk.nio.maxCachedBufferSize, but to a different value, you do not need to change anything.

-XX:-UseBiasedLocking
-XX:ReservedCodeCacheSize=512M
-Djdk.nio.maxCachedBufferSize=2000000

Hive connector changes#

  • Fix query failure when selecting no columns from a table with parquet storage format.

  • Optimize sql-standard table access control.

Update 10#

General changes#

  • Fix failures for queries involving spatial joins.

Security changes#

  • Hide HTTP Client’s key/trust store passwords from logs.

Update 11#

PostgreSQL connector changes#

  • Add support for PostgreSQL’s timestamptz type.

Hive connector changes#

  • Add support for assuming AWS role when accessing S3 or Glue.

  • Enable Hive views execution using a config toggle

Oracle connector changes#

  • Fix Oracle connector initialization.

Update 12#

Security changes#

  • Add http-server.authentication.krb5.name-type property to allow using Kerberos authentication with service principal without hostname component.

Update 13#

Hive connector changes#

  • Add table properties textfile_skip_header_line_count and textfile_skip_footer_line_count for table with format=TEXTFILE that configures Hive skip.footer.line.count and skip.header.line.count serde properties.

Oracle connector changes#

  • Add support for SYNONYM tables. To turn it on set oracle.synonyms.enabled=true in oracle connector properties file.

Update 14#

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).

Update 15#

Security changes#

  • Support configuring trust store for internal communication.

Hive connector changes#

  • Fix reading from information_schema.table_privileges table.

  • Fix SHOW GRANTS.

  • Add hive.s3.positioned-reads.enabled configuration property allowing disabling positioned reads optimization. Consider disabling the optimization when working with small Parquet files.

  • Add support for static AWS credentials for the Glue metastore.

Update 16#

General changes#

  • Add MapR Hive support.

Security changes#

  • Add optional additional security configuration options for authorizing resource access on HTTP level. Find more information about resource rules in System access control.

Hive connector changes#

  • Fix listing tables and views from Hive 2.3+ Metastore on certain databases. This fixes SHOW TABLES, SHOW VIEWS and reading from information_schema.tables table.

Update 17#

Security changes#

  • Fix incorrect view name displayed by SHOW CREATE VIEW.

  • Add support for selective disabling of KRB authentication for Presto clients.

Hive connector changes#

  • Fix handling of Avro tables with avro.schema.url defined in Hive SERDEPROPERTIES.

  • Add support for coercions between DECIMAL, DOUBLE, and REAL for partition and table schema mismatch.

Update 18#

RPM changes#

  • Limit the size of http-request.log to 100MB by default.

JDBC based connectors changes#

  • Fail query when accessing unsupported column. This is backward incompatible change, user may restore previous behaviour by using unsupported-type.handling-strategy=IGNORE connector configuration property or by setting unsupported_type_handling_strategy catalog session property to IGNORE.

  • Add option to convert unsupported column values to unbounded VARCHAR. This could be achieved by using unsupported-type.handling-strategy=CONVERT_TO_VARCHAR connector configuration property or by setting unsupported_type_handling_strategy catalog session property to CONVERT_TO_VARCHAR.

Oracle connector changes#

  • Introduce oracle.number.default-scale configuration property (and matching number_default_scale session property). This value will be used when mapping Oracle NUMBER data type (without precision and scale) to Presto DECIMAL.

  • Introduce oracle.number.rounding-mode configuration property (and matching number_rounding_mode sessio property). This value will be used for rounding fractional part of Oracle NUMBER data type (without precision and scale) value to Presto DECIMAL where needed scale exceeds configured (with oracle.number.default-scale) Presto DECIMAL scale.

Security changes#

  • Improve authenticated user authorization.

Update 20#

General changes#

  • Fix failure when querying /v1/resourceGroupState endpoint for non-existing resource group.

  • Improve configuration file parsing. Trailing whitespace in configuration values will is now ignored just as the leading whitespace used to be. Parsing of boolean values is now strict, anything other than true or false (case-insensitively) is now considered an error. Previously anything other than true was considered a false value.

  • Limit total size of http-request.log.*.gz files. This is controlled by http-server.log.max-history * http-server.log.max-size, which is 1500MB by default.

  • Limit total size of server.log.*.gz files. This is controlled by log.max-history * log.max-size, which is 1500MB by default.

Hive connector changes#

  • Add support for custom S3 filesystems.

  • Allow to to specify only hive.metastore-cache-ttl when enabling Hive Metastore caching (without setting hive.metastore-refresh-interval, which is disabled by default).

  • Allow using several Hive catalogs with different configuration (with different Kerberos authentication setup).

JDBC based connectors changes#

  • Restoring default behaviour for column with unsupported types. Such columns will be ignored. User may configure to fail such queries by using unsupported-type.handling-strategy=FAIL connector configuration property or by setting unsupported_type_handling_strategy catalog session property to FAIL.