11.86. Release 0.148

General Changes

  • Fix issue where auto-commit transaction can be rolled back for a successfullycompleted query.
  • Fix detection of colocated joins.
  • Fix planning bug involving partitioning with constants.
  • Fix window functions to correctly handle empty frames between unbounded andbounded in the same direction. For example, a frame such asROWS BETWEEN UNBOUNDED PRECEDING AND 2 PRECEDINGwould incorrectly use the first row as the window frame for the first tworows rather than using an empty frame.
  • Fix correctness issue when grouping on columns that are also arguments to aggregation functions.
  • Fix failure when chaining AT TIME ZONE, e.g.SELECT TIMESTAMP '2016-01-02 12:34:56' AT TIME ZONE 'America/Los_Angeles' AT TIME ZONE 'UTC'.
  • Fix data duplication when task.writer-count configuration mismatches between coordinator and worker.
  • Fix bug where node-scheduler.max-pending-splits-per-node-per-task config is not alwayshonored by node scheduler. This bug could stop the cluster from making further progress.
  • Fix incorrect results for grouping sets with partitioned source.
  • Add colocated-joins-enabled to enable colocated joins by default forconnectors that expose node-partitioned data.
  • Add support for colocated unions.
  • Reduce initial memory usage of array_agg() function.
  • Improve planning of co-partitioned JOIN and UNION.
  • Improve planning of aggregations over partitioned data.
  • Improve the performance of the array_sort() function.
  • Improve outer join predicate push down.
  • Increase default value for query.initial-hash-partitions to 100.
  • Change default value of query.max-memory-per-node to 10% of the Java heap.
  • Change default task.max-worker-threads to 2 times the number of cores.
  • Use HTTPS in JDBC driver when using port 443.
  • Warn if Presto server is not using G1 garbage collector.
  • Move interval types out of SPI.

Interval Fixes

This release fixes several problems with large and negative intervals.

  • Fix parsing of negative interval literals. Previously, the sign of each field was treatedindependently instead of applying to the entire interval value. For example, the literalINTERVAL '-2-3' YEAR TO MONTH was interpreted as a negative interval of 21 monthsrather than 27 months (positive 3 months was added to negative 24 months).
  • Fix handling of INTERVAL DAY TO SECOND type in REST API. Previously, intervals greater than2,147,483,647 milliseconds (about 24 days) were returned as the wrong value.
  • Fix handling of INTERVAL YEAR TO MONTH type. Previously, intervals greater than2,147,483,647 months were returned as the wrong value from the REST APIand parsed incorrectly when specified as a literal.
  • Fix formatting of negative intervals in REST API. Previously, negative intervalshad a negative sign before each component and could not be parsed.
  • Fix formatting of negative intervals in JDBC PrestoInterval classes.

Note

Older versions of the JDBC driver will misinterpret most negativeintervals from new servers. Make sure to update the JDBC driveralong with the server.

Functions and Language Features

  • Add element_at() function for map type.
  • Add split_to_map() function.
  • Add zip() function.
  • Add map_union() aggregation function.
  • Add ROW syntax for constructing row types.
  • Add support for REVOKE permission syntax.
  • Add support for SMALLINT and TINYINT types.
  • Add support for non-equi outer joins.

Verifier Changes

  • Add skip-cpu-check-regex config property which can be used to skip the CPUtime comparison for queries that match the given regex.
  • Add check-cpu config property which can be used to disable CPU time comparison.

Hive Changes

  • Fix NoClassDefFoundError for KMSClientProvider in HDFS client.
  • Fix creating tables on S3 in an empty database.
  • Implement REVOKE permission syntax.
  • Add support for SMALLINT and TINYINT
  • Support DELETE from unpartitioned tables.
  • Add support for Kerberos authentication when talking to Hive/HDFS.
  • Push down filters for columns of type DECIMAL.
  • Improve CPU efficiency when reading ORC files.

Cassandra Changes

  • Allow configuring load balancing policy and no host available retry.
  • Add support for varchar(n).

Kafka Changes

  • Update to Kafka client 0.8.2.2. This enables support for LZ4 data.

JMX Changes

  • Add jmx.history schema with in-memory periodic samples of values from JMX MBeans.

MySQL and PostgreSQL Changes

  • Push down predicates for VARCHAR, DATE, TIME and TIMESTAMP types.

Other Connector Changes

  • Add support for varchar(n) to the Redis, TPCH, MongoDB, Local Fileand Example HTTP connectors.