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
andldap.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
andjsonb
types to Prestojson
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 containingObjectId
.
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#
Support retrieving table and column statistics. The statistics can be inspected with SHOW STATS and are taken into account in Cost-based optimizations.
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
andtextfile_skip_footer_line_count
for table withformat=TEXTFILE
that configures Hiveskip.footer.line.count
andskip.header.line.count
serde properties.
Oracle connector changes#
Add support for
SYNONYM
tables. To turn it on setoracle.synonyms.enabled=true
in oracle connector properties file.
Update 14#
JDBC based connectors changes#
Add metadata cache that is configured with
metadata.cache-ttl
andmetadata.cache-missing
. By default caching is disabled (equivalent tometadata.cache-ttl=0s
andmetadata.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 frominformation_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 HiveSERDEPROPERTIES
.Add support for coercions between
DECIMAL
,DOUBLE
, andREAL
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 settingunsupported_type_handling_strategy
catalog session property toIGNORE
.Add option to convert unsupported column values to unbounded
VARCHAR
. This could be achieved by usingunsupported-type.handling-strategy=CONVERT_TO_VARCHAR
connector configuration property or by settingunsupported_type_handling_strategy
catalog session property toCONVERT_TO_VARCHAR
.
Oracle connector changes#
Introduce
oracle.number.default-scale
configuration property (and matchingnumber_default_scale
session property). This value will be used when mapping OracleNUMBER
data type (without precision and scale) to PrestoDECIMAL
.Introduce
oracle.number.rounding-mode
configuration property (and matchingnumber_rounding_mode
sessio property). This value will be used for rounding fractional part of OracleNUMBER
data type (without precision and scale) value to PrestoDECIMAL
where needed scale exceeds configured (withoracle.number.default-scale
) PrestoDECIMAL
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
orfalse
(case-insensitively) is now considered an error. Previously anything other thantrue
was considered a false value.Limit total size of
http-request.log.*.gz
files. This is controlled byhttp-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 bylog.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 settinghive.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 settingunsupported_type_handling_strategy
catalog session property toFAIL
.