Release 0.101

General Changes

  • Add support for CREATE TABLE (in addition to CREATE TABLE AS).

  • Add IF EXISTS support to DROP TABLE and DROP VIEW.

  • Add array_agg() function.

  • Add array_intersect() function.

  • Add array_position() function.

  • Add regexp_split() function.

  • Add support for millisecond to date_diff() and date_add().

  • Fix excessive memory usage in map_agg().

  • Fix excessive memory usage in queries that perform partitioned top-N operations with row_number().

  • Optimize ARRAY comparison operators.

  • Fix analysis of UNION queries for tables with hidden columns.

  • Fix JOIN associativity to be left-associative instead of right-associative.

  • Add source column to runtime.queries table in System Connector.

  • Add coordinator column to runtime.nodes table in System Connector.

  • Add errorCode, errorName and errorType to error object in REST API (errorCode previously existed but was always zero).

  • Fix DatabaseMetaData.getIdentifierQuoteString() in JDBC driver.

  • Handle thread interruption in JDBC driver ResultSet.

  • Add history command and support for running previous commands via !n to the CLI.

  • Change Driver to make as much progress as possible before blocking. This improves responsiveness of some limit queries.

  • Add predicate push down support to JMX connector.

  • Add support for unary PLUS operator.

  • Improve scheduling speed by reducing lock contention.

  • Extend optimizer to understand physical properties such as local grouping and sorting.

  • Add support for streaming execution of window functions.

  • Make UNION run partitioned, if underlying plan is partitioned.

  • Add hash_partition_count session property to control hash partitions.

Web UI Changes

The main page of the web UI has been completely rewritten to use ReactJS. It also has a number of new features, such as the ability to pause auto-refresh via the “Z” key and also with a toggle in the UI.

Hive Changes

  • Add support for connecting to S3 using EC2 instance credentials. This feature is enabled by default. To disable it, set hive.s3.use-instance-credentials=false in your Hive catalog properties file.

  • Treat ORC files as splittable.

  • Change PrestoS3FileSystem to use lazy seeks, which improves ORC performance.

  • Fix ORC DOUBLE statistic for columns containing NaN.

  • Lower the Hive metadata refresh interval from two minutes to one second.

  • Invalidate Hive metadata cache for failed operations.

  • Support s3a file system scheme.

  • Fix discovery of splits to correctly backoff when the queue is full.

  • Add support for non-canonical Parquet structs.

  • Add support for accessing Parquet columns by name. By default, columns in Parquet files are accessed by their ordinal position in the Hive table definition. To access columns based on the names recorded in the Parquet file, set hive.parquet.use-column-names=true in your Hive catalog properties file.

  • Add JMX stats to PrestoS3FileSystem.

  • Add hive.recursive-directories config option to recursively scan partition directories for data.

SPI Changes

  • Add connector callback for rollback of INSERT and CREATE TABLE AS.

  • Introduce an abstraction for representing physical organizations of a table and describing properties such as partitioning, grouping, predicate and columns. ConnectorPartition and related interfaces are deprecated and will be removed in a future version.

  • Rename ConnectorColumnHandle to ColumnHandle.

Note

This is a backwards incompatible change with the previous connector SPI. If you have written a connector, you will need to update your code before deploying this release.