Release 0.153#
General#
- Fix incorrect results for grouping sets when - task.concurrencyis greater than one.
- Fix silent numeric overflow when casting - INTEGERto large- DECIMALtypes.
- Fix issue where - GROUP BY ()would produce no results if the input had no rows.
- Fix null handling in - array_distinct()when applied to the- array(bigint)type.
- Fix handling of - -2^63as the element index for- json_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 as- false,- 0or- 1970-01-01was returned.
- Fix potential thread deadlock in coordinator. 
- Fix rare correctness issue with an aggregation on a single threaded right join when - task.concurrencyis- 1.
- 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 for- date_format()and- date_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 the- DOUBLEtype.
- Add - typeof()for discovering expression types.
- Add decimal support to - avg(),- ceil(),- floor(),- round(),- truncate(),- abs(),- mod()and- sign().
- 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 Java- floattype.
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 the- orc_bloom_filters_enabledsession property.
- Add new optimized RCFile reader. This can be enabled using the - hive.rcfile-optimized-reader.enabledconfiguration property or the- rcfile_optimized_reader_enabledsession property.
- Add support for the Presto - realtype, which corresponds to the Hive- floattype.
- 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 - trino_query_idtable or partition property.
- Include path name in error message when listing a directory fails. 
- Rename - allow-allauthorization method to- legacy. 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.endpointand- hive.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)and- realdata types.
PostgreSQL#
- Optimize fetching column names when describing a single table. 
- Add support for - char(x)and- realdata types.
- Add support for querying materialized views. 
Blackhole#
- Add - page_processing_delaytable property.
SPI#
- Add - schemaExists()method to- ConnectorMetadata.
- Add transaction to grant/revoke in - ConnectorAccessControl.
- Add - isCoordinator()and- getVersion()methods to- Node.
- Remove - setOptionalConfig()method from- Plugin.
- Remove - ServerInfoclass.
- Make - NodeManagerspecific to a connector instance.
- Replace - ConnectorFactoryContextwith- ConnectorContext.
- 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 as- providedscope and that only SPI dependencies use- providedscope. 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.