Release 0.153#
General#
Fix incorrect results for grouping sets when
task.concurrencyis greater than one.Fix silent numeric overflow when casting
INTEGERto largeDECIMALtypes.Fix issue where
GROUP BY ()would produce no results if the input had no rows.Fix null handling in
array_distinct()when applied to thearray(bigint)type.Fix handling of
-2^63as the element index forjson_array_get().Fix correctness issue when the input to
TRY_CASTevaluates to null. For types such as booleans, numbers, dates, timestamps, etc., rather than returning null, a default value specific to the type such asfalse,0or1970-01-01was returned.Fix potential thread deadlock in coordinator.
Fix rare correctness issue with an aggregation on a single threaded right join when
task.concurrencyis1.Fix query failure when casting a map with null values.
Fix failure when view column names contain upper-case letters.
Fix potential performance regression due to skew issue when grouping or joining on columns of the following types:
TINYINT,SMALLINT,INTEGER,BIGINT,REAL,DOUBLE,COLOR,DATE,INTERVAL,TIME,TIMESTAMP.Fix potential memory leak for delete queries.
Fix query stats to not include queued time in planning time.
Fix query completion event to log final stats for the query.
Fix spurious log messages when queries are torn down.
Remove broken
%wspecifier fordate_format()anddate_parse().Improve performance of ARRAY when underlying data is dictionary encoded.
Improve performance of outer joins with non-equality criteria.
Require task concurrency and task writer count to be a power of two.
Use nulls-last ordering for
array_sort().Validate that
TRYis used with exactly one argument.Allow running Presto with early-access Java versions.
Add Accumulo connector.
Functions and language features#
Allow subqueries in non-equality outer join criteria.
Add support for CREATE SCHEMA, DROP SCHEMA and ALTER SCHEMA.
Add initial support for correlated subqueries.
Add execution support for prepared statements.
Add
DOUBLE PRECISIONas an alias for theDOUBLEtype.Add
typeof()for discovering expression types.Add decimal support to
avg(),ceil(),floor(),round(),truncate(),abs(),mod()andsign().Add
shuffle()function for arrays.
Pluggable resource groups#
Resource group management is now pluggable. A Plugin can
provide management factories via getResourceGroupConfigurationManagerFactories()
and the factory can be enabled via the etc/resource-groups.properties
configuration file by setting the resource-groups.configuration-manager
property. See the presto-resource-group-managers plugin for an example
and Resource groups for more details.
Web UI#
Fix rendering failures due to null nested data structures.
Do not include coordinator in active worker count on cluster overview page.
Replace buffer skew indicators on query details page with scheduled time skew.
Add stage total buffer, pending tasks and wall time to stage statistics on query details page.
Add option to filter task lists by status on query details page.
Add copy button for query text, query ID, and user to query details page.
JDBC driver#
Add support for
realdata type, which corresponds to the Javafloattype.
CLI#
Add support for configuring the HTTPS Truststore.
Hive#
Fix permissions for new tables when using SQL-standard authorization.
Improve performance of ORC reader when decoding dictionary encoded MAP.
Allow certain combinations of queries to be executed in a transaction-ish manner, for example, when dropping a partition and then recreating it. Atomicity is not guaranteed due to fundamental limitations in the design of Hive.
Support per-transaction cache for Hive metastore.
Fail queries that attempt to rename partition columns.
Add support for ORC bloom filters in predicate push down. This is can be enabled using the
hive.orc.bloom-filters.enabledconfiguration property or theorc_bloom_filters_enabledsession property.Add new optimized RCFile reader. This can be enabled using the
hive.rcfile-optimized-reader.enabledconfiguration property or thercfile_optimized_reader_enabledsession property.Add support for the Presto
realtype, which corresponds to the Hivefloattype.Add support for
char(x)type.Add support for creating, dropping and renaming schemas (databases). The filesystem location can be specified when creating a schema, which allows, for example, easily creating tables on S3.
Record Presto query ID for tables or partitions written by Presto using the
presto_query_idtable or partition property.Include path name in error message when listing a directory fails.
Rename
allow-allauthorization method tolegacy. This method is deprecated and will be removed in a future release.Do not retry S3 requests that are aborted intentionally.
Set the user agent suffix for S3 requests to
presto.Allow configuring the user agent prefix for S3 requests using the
hive.s3.user-agent-prefixconfiguration property.Add support for S3-compatible storage using the
hive.s3.endpointandhive.s3.signer-typeconfiguration properties.Add support for using AWS KMS with S3 as an encryption materials provider using the
hive.s3.kms-key-idconfiguration property.Allow configuring a custom S3 encryption materials provider using the
hive.s3.encryption-materials-providerconfiguration property.
JMX#
Make name configuration for history tables case-insensitive.
MySQL#
Optimize fetching column names when describing a single table.
Add support for
char(x)andrealdata types.
PostgreSQL#
Optimize fetching column names when describing a single table.
Add support for
char(x)andrealdata types.Add support for querying materialized views.
Blackhole#
Add
page_processing_delaytable property.
SPI#
Add
schemaExists()method toConnectorMetadata.Add transaction to grant/revoke in
ConnectorAccessControl.Add
isCoordinator()andgetVersion()methods toNode.Remove
setOptionalConfig()method fromPlugin.Remove
ServerInfoclass.Make
NodeManagerspecific to a connector instance.Replace
ConnectorFactoryContextwithConnectorContext.Use
@SqlNullablefor functions instead of@Nullable.Prevent plugins from seeing classes that are not part of the JDK (bootstrap classes) or the SPI.
Update
presto-maven-plugin, which provides a Maven packaging and lifecycle for plugins, to validate that every SPI dependency is marked asprovidedscope and that only SPI dependencies useprovidedscope. This helps find potential dependency and class loader issues at build time rather than at runtime.
Note
These are backwards incompatible changes with the previous SPI. If you have written a plugin, you will need to update your code before deploying this release.