============= Release 0.153 ============= General Changes --------------- * Fix incorrect results for grouping sets when ``task.concurrency`` is greater than one. * Fix silent numeric overflow when casting ``INTEGER`` to large ``DECIMAL`` types. * Fix issue where ``GROUP BY ()`` would produce no results if the input had no rows. * Fix null handling in :func:`array_distinct` when applied to the ``array(bigint)`` type. * Fix handling of ``-2^63`` as the element index for :func:`json_array_get`. * Fix correctness issue when the input to ``TRY_CAST`` evaluates 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``, ``0`` or ``1970-01-01`` was returned. * Fix potential thread deadlock in coordinator. * Fix rare correctness issue with an aggregation on a single threaded right join when ``task.concurrency`` is ``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 ``%w`` specifier for :func:`date_format` and :func:`date_parse`. * Improve performance of :ref:`array_type` 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 :func:`array_sort`. * Validate that ``TRY`` is used with exactly one argument. * Allow running Presto with early-access Java versions. * Add :doc:`/connector/accumulo`. Functions and Language Features ------------------------------- * Allow subqueries in non-equality outer join criteria. * Add support for :doc:`/sql/create-schema`, :doc:`/sql/drop-schema` and :doc:`/sql/alter-schema`. * Add initial support for correlated subqueries. * Add execution support for prepared statements. * Add ``DOUBLE PRECISION`` as an alias for the ``DOUBLE`` type. * Add :func:`typeof` for discovering expression types. * Add decimal support to :func:`avg`, :func:`ceil`, :func:`floor`, :func:`round`, :func:`truncate`, :func:`abs`, :func:`mod` and :func:`sign`. * Add :func:`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 :doc:`/admin/resource-groups` for more details. Web UI Changes -------------- * 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 Changes ------------------- * Add support for ``real`` data type, which corresponds to the Java ``float`` type. CLI Changes ----------- * Add support for configuring the HTTPS Truststore. Hive Changes ------------ * Fix permissions for new tables when using SQL-standard authorization. * Improve performance of ORC reader when decoding dictionary encoded :ref:`map_type`. * 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.enabled`` configuration property or the ``orc_bloom_filters_enabled`` session property. * Add new optimized RCFile reader. This can be enabled using the ``hive.rcfile-optimized-reader.enabled`` configuration property or the ``rcfile_optimized_reader_enabled`` session property. * Add support for the Presto ``real`` type, which corresponds to the Hive ``float`` type. * 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_id`` table or partition property. * Include path name in error message when listing a directory fails. * Rename ``allow-all`` authorization 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-prefix`` configuration property. * Add support for S3-compatible storage using the ``hive.s3.endpoint`` and ``hive.s3.signer-type`` configuration properties. * Add support for using AWS KMS with S3 as an encryption materials provider using the ``hive.s3.kms-key-id`` configuration property. * Allow configuring a custom S3 encryption materials provider using the ``hive.s3.encryption-materials-provider`` configuration property. JMX Changes ----------- * Make name configuration for history tables case-insensitive. MySQL Changes ------------- * Optimize fetching column names when describing a single table. * Add support for ``char(x)`` and ``real`` data types. PostgreSQL Changes ------------------ * Optimize fetching column names when describing a single table. * Add support for ``char(x)`` and ``real`` data types. * Add support for querying materialized views. Blackhole Changes ----------------- * Add ``page_processing_delay`` table property. SPI Changes ----------- * 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 ``ServerInfo`` class. * Make ``NodeManager`` specific to a connector instance. * Replace ``ConnectorFactoryContext`` with ``ConnectorContext``. * Use ``@SqlNullable`` for functions instead of ``@Nullable``. * Use a whitelist model for plugin class loading. This prevents connectors from seeing any 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 ``provided`` scope and that only SPI dependencies use ``provided`` scope. 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.