Release 300 (22 Jan 2019)#

General#

  • Fix array_intersect() and array_distinct() skipping zeros when input also contains nulls.

  • Fix count(*) aggregation returning null on empty relation when optimize_mixed_distinct_aggregation is enabled.

  • Improve table scan performance for structured types.

  • Improve performance for array_intersect().

  • Improve performance of window functions by filtering partitions early.

  • Add reduce_agg() aggregate function.

  • Add millisecond() function.

  • Remove ON keyword from SHOW STATS (use FOR instead).

  • Restrict WHERE clause in SHOW STATS to filters that can be pushed down to connectors.

  • Return final results to clients immediately for failed queries.

JMX MBean naming#

  • The base domain name for server MBeans is now presto. The old names can be used by setting the configuration property jmx.base-name to com.facebook.presto.

  • The base domain name for the Hive, Raptor, and Thrift connectors is presto.plugin. The old names can be used by setting the catalog configuration property jmx.base-name to com.facebook.presto.hive, com.facebook.presto.raptor, or com.facebook.presto.thrift, respectively.

Web UI#

  • Fix rendering of live plan view for queries involving index joins.

JDBC driver#

  • Change driver class name to io.prestosql.jdbc.PrestoDriver.

System connector#

  • Remove node_id column from system.runtime.queries table.

Hive connector#

  • Fix accounting of time spent reading Parquet data.

  • Fix corner case where the ORC writer fails with integer overflow when writing highly compressible data using dictionary encoding (#11930).

  • Fail queries reading Parquet files if statistics in those files are corrupt (e.g., min > max). To disable this behavior, set the configuration property hive.parquet.fail-on-corrupted-statistics or session property parquet_fail_with_corrupted_statistics to false.

  • Add support for S3 Select pushdown, which enables pushing down column selection and range filters into S3 for text files.

Kudu connector#

  • Add number_of_replicas table property to SHOW CREATE TABLE output.

Cassandra connector#

  • Add cassandra.splits-per-node and cassandra.protocol-version configuration properties to allow connecting to Cassandra servers older than 2.1.5.

MySQL connector#

  • Add support for predicate pushdown for columns of char(x) type.

PostgreSQL connector#

  • Add support for predicate pushdown for columns of char(x) type.

Redshift connector#

  • Add support for predicate pushdown for columns of char(x) type.

SQL Server connector#

  • Add support for predicate pushdown for columns of char(x) type.

Raptor Legacy connector#

  • Change name of connector to raptor-legacy.

Verifier#

  • Add run-teardown-on-result-mismatch configuration property to facilitate debugging. When set to false, temporary tables will not be dropped after checksum failures.

SPI#

  • Change base package to io.prestosql.spi.

  • Move connector related classes to package io.prestosql.spi.connector.

  • Make ConnectorBucketNodeMap a top level class.

  • Use list instead of map for bucket-to-node mapping.

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.