12.1. Release 330 (18 Feb 2020)
General Changes
- Fix incorrect behavior of
format()
forchar
values. Previously, the function did not preserve trailing whitespace of the value being formatted. (#2629) - Fix query failure in some cases when aggregation uses inputs from both sides of a join. (#2560)
- Fix query failure when dynamic filtering is enabled and the query contains complex multi-level joins. (#2659)
- Fix query failure for certain co-located joins when dynamic filtering is enabled. (#2685)
- Fix failure of
SHOW
statements or queries that accessinformation_schema
schema tables with an empty value used in a predicate. (#2575) - Fix query failure when EXECUTE is used with an expression containing a function call. (#2675)
- Fix failure in
SHOW CATALOGS
when the user does not have permissions to see any catalogs. (#2593) - Improve query performance for some join queries when Cost based optimizations are enabled. (#2722)
- Prevent uneven distribution of data that can occur when writing data with redistribution or writer scaling enabled. (#2788)
- Add support for
CREATE VIEW
with comment (#2557) - Add support for all major geometry types to
ST_Points()
. (#2535) - Add
required_workers_count
andrequired_workers_max_wait_time
session properties to control the number of workers that must be present in the cluster before query processing starts. (#2484) - Add
physical_input_bytes
column tosystem.runtime.tasks
table. (#2803) - Verify that the target schema exists for the USE statement. (#2764)
- Verify that the session catalog exists when executing SET ROLE. (#2768)
Server Changes
- Require running on Java 11. This requirement may be temporarily relaxed by adding
-Dpresto-temporarily-allow-java8=true
to the Presto JVM Config. This fallback will be removed in future versions of Presto after March 2020. (#2751) - Add experimental support for running on Linux aarch64 (ARM64). (#2809)
Security Changes
- Principal Rules are deprecated and will be removed in a future release. These rules have been replaced with User Mapping, which specifies how a complex authentication user name is mapped to a simple user name for Presto, and Impersonation Rules which control the ability of a user to impersonate another user. (#2215)
- A shared secret is now required when using Secure Internal Communication. (#2202)
- Kerberos for Secure Internal Communication has been replaced with the new shared secret mechanism.
The
internal-communication.kerberos.enabled
andinternal-communication.kerberos.use-canonical-hostname
configuration properties must be removed. (#2202) - When authentication is disabled, the Presto user may now be set using standard HTTP basic authentication with an empty password. (#2653)
Web UI Changes
- Display physical read time in detailed query view. (#2805)
JDBC Driver Changes
- Fix a performance issue on JDK 11+ when connecting using HTTP/2. (#2633)
- Implement
PreparedStatement.setTimestamp()
variant that takes aCalendar
. (#2732) - Add
roles
property for catalog authorization roles. (#2780) - Add
sessionProperties
property for setting system and catalog session properties. (#2780) - Add
clientTags
property to set client tags for selecting resource groups. (#2468) - Allow using the
:
character within an extra credential value specified via theextraCredentials
property. (#2780)
CLI Changes
- Fix a performance issue on JDK 11+ when connecting using HTTP/2. (#2633)
Cassandra Connector Changes
- Fix query failure when identifiers should be quoted. (#2455)
Hive Connector Changes
- Fix reading symlinks from HDFS when using Kerberos. (#2720)
- Reduce Hive metastore load when updating partition statistics. (#2734)
- Allow redistributing writes for un-bucketed partitioned tables on the
partition keys, which results in a single writer per partition. This reduces
memory usage, results in a single file per partition, and allows writing a
large number of partitions (without hitting the open writer limit). However,
writing large partitions with a single writer can take substantially longer, so
this feature should only be enabled when required. To enable this feature, set the
use-preferred-write-partitioning
system configuration property or theuse_preferred_write_partitioning
system session property totrue
. (#2358) - Remove extra file status call after writing text-based, SequenceFile, or Avro file types. (#1748)
- Allow using writer scaling with all file formats. Previously, it was not supported for text-based, SequenceFile, or Avro formats. (#2657)
- Add support for symlink-based tables with Avro files. (#2720)
- Add support for ignoring partitions with a non-existent data directory. This can be configured
using the
hive.ignore-absent-partitions=true
configuration property or theignore_absent_partitions
session property. (#2555) - Allow creation of external tables with data via
CREATE TABLE AS
when bothhive.non-managed-table-creates-enabled
andhive.non-managed-table-writes-enabled
are set totrue
. Previously this required executingCREATE TABLE
andINSERT
as separate statement (#2669) - Add support for Azure WASB, ADLS Gen1 (ADL) and ADLS Gen2 (ABFS) file systems. (#2494)
- Add experimental support for executing basic Hive views. To enable this feature, the
hive.views-execution.enabled
configuration property must be set totrue
. (#2715) - Add register_partition and unregister_partition procedures for adding partitions to and removing partitions from a partitioned table. (#2692)
- Allow running ANALYZE collecting only basic table statistics. (#2762)
Elasticsearch Connector Changes
PostgreSQL Connector Changes
- Add read support for PostgreSQL
money
data type. The type is mapped tovarchar
in Presto. (#2601)
Other Connector Changes
These changes apply to the MySQL, PostgreSQL, Redshift, Phoenix and SQL Server connectors.
- Respect
DEFAULT
column clause when writing to a table. (#1185)
SPI Changes
- Allow procedures to have optional arguments with default values. (#2706)
SystemAccessControl.checkCanSetUser()
is is deprecated and has been replaced with User Mapping andSystemAccessControl.checkCanImpersonateUser()
. (#2215)