Release 330 (18 Feb 2020)#
General#
- Fix incorrect behavior of - format()for- charvalues. 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 - SHOWstatements or queries that access- information_schemaschema 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 CATALOGSwhen 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 VIEWwith comment (#2557)
- Add support for all major geometry types to - ST_Points(). (#2535)
- Add - required_workers_countand- required_workers_max_wait_timesession properties to control the number of workers that must be present in the cluster before query processing starts. (#2484)
- Add - physical_input_bytescolumn to- system.runtime.taskstable. (#2803)
- Verify that the target schema exists for the USE statement. (#2764) 
- Verify that the session catalog exists when executing SET ROLE. (#2768) 
Server#
- Require running on Java 11 or above. This requirement may be temporarily relaxed by adding - -Dpresto-temporarily-allow-java8=trueto 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#
- 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.enabledand- internal-communication.kerberos.use-canonical-hostnameconfiguration 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#
- Display physical read time in detailed query view. (#2805) 
JDBC driver#
- Fix a performance issue on JDK 11+ when connecting using HTTP/2. (#2633) 
- Implement - PreparedStatement.setTimestamp()variant that takes a- Calendar. (#2732)
- Add - rolesproperty for catalog authorization roles. (#2780)
- Add - sessionPropertiesproperty for setting system and catalog session properties. (#2780)
- Add - clientTagsproperty to set client tags for selecting resource groups. (#2468)
- Allow using the - :character within an extra credential value specified via the- extraCredentialsproperty. (#2780)
CLI#
- Fix a performance issue on JDK 11+ when connecting using HTTP/2. (#2633) 
Cassandra connector#
- Fix query failure when identifiers should be quoted. (#2455) 
Hive connector#
- 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-partitioningsystem configuration property or the- use_preferred_write_partitioningsystem session property to- true. (#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=trueconfiguration property or the- ignore_absent_partitionssession property. (#2555)
- Allow creation of external tables with data via - CREATE TABLE ASwhen both- hive.non-managed-table-creates-enabledand- hive.non-managed-table-writes-enabledare set to- true. Previously this required executing- CREATE TABLEand- INSERTas 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.enabledconfiguration property must be set to- true. (#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#
PostgreSQL connector#
- Add read support for PostgreSQL - moneydata type. The type is mapped to- varcharin Presto. (#2601)
Other connectors#
These changes apply to the MySQL, PostgreSQL, Redshift, Phoenix and SQL Server connectors.
- Respect - DEFAULTcolumn clause when writing to a table. (#1185)
SPI#
- Allow procedures to have optional arguments with default values. (#2706) 
- SystemAccessControl.checkCanSetUser()is deprecated and has been replaced with User mapping and- SystemAccessControl.checkCanImpersonateUser(). (#2215)