Release 307 (3 Apr 2019)#

General#

  • Fix cleanup of spill files for queries using window functions or ORDER BY. (#543)

  • Optimize queries containing ORDER BY together with LIMIT over an OUTER JOIN by pushing ORDER BY and LIMIT to the outer side of the join. (#419)

  • Improve performance of table scans for data sources that produce tiny pages. (#467)

  • Improve performance of IN subquery expressions that contain a DISTINCT clause. (#551)

  • Expand support of types handled in EXPLAIN (TYPE IO). (#509)

  • Add support for outer joins involving lateral derived tables (i.e., LATERAL). (#390)

  • Add support for setting table comments via the COMMENT syntax. (#200)

Web UI#

  • Allow UI to work when opened as /ui (no trailing slash). (#500)

Security#

  • Make query result and cancellation URIs secure. Previously, an authenticated user could potentially steal the result data of any running query. (#561)

Server RPM#

  • Prevent JVM from allocating large amounts of native memory. The new configuration is applied automatically when Presto is installed from RPM. When Presto is installed another way, or when you provide your own jvm.config, we recommend adding -Djdk.nio.maxCachedBufferSize=2000000 to your jvm.config. (#542)

CLI#

  • Always abort query in batch mode when CLI is killed. (#508, #580)

JDBC driver#

  • Abort query synchronously when the ResultSet is closed or when the Statement is cancelled. Previously, the abort was sent in the background, allowing the JVM to exit before the abort was received by the server. (#580)

Hive connector#

  • Add safety checks for Hive bucketing version. Hive 3.0 introduced a new bucketing version that uses an incompatible hash function. The Hive connector will treat such tables as not bucketed when reading and disallows writing. (#512)

  • Add support for setting table comments via the COMMENT syntax. (#200)

Other connectors#

These changes apply to the MySQL, PostgreSQL, Redshift, and SQL Server connectors.

  • Fix reading and writing of timestamp values. Previously, an incorrect value could be read, depending on the Presto JVM time zone. (#495)

  • Add support for using a client-provided username and password. The credential names can be configured using the user-credential-name and password-credential-name configuration properties. (#482)

SPI#

  • LongDecimalType and IpAddressType now use Int128ArrayBlock instead of FixedWithBlock. Any code that creates blocks directly, rather than using the BlockBuilder returned from the Type, will need to be updated. (#492)

  • Remove FixedWidthBlock. Use one of the *ArrayBlock classes instead. (#492)

  • Add support for simple constraint pushdown into connectors via the ConnectorMetadata.applyFilter() method. (#541)