Release 0.148
General Changes
Fix issue where auto-commit transaction can be rolled back for a successfully completed query.
Fix detection of colocated joins.
Fix planning bug involving partitioning with constants.
Fix window functions to correctly handle empty frames between unbounded and bounded in the same direction. For example, a frame such as
ROWS BETWEEN UNBOUNDED PRECEDING AND 2 PRECEDING
would incorrectly use the first row as the window frame for the first two rows 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 always honored 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 for connectors that expose node-partitioned data.Add support for colocated unions.
Reduce initial memory usage of array_agg() function.
Improve planning of co-partitioned
JOIN
andUNION
.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
to100
.Change default value of
query.max-memory-per-node
to10%
of the Java heap.Change default
task.max-worker-threads
to2
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 treated independently instead of applying to the entire interval value. For example, the literal
INTERVAL '-2-3' YEAR TO MONTH
was interpreted as a negative interval of21
months rather than27
months (positive3
months was added to negative24
months).Fix handling of
INTERVAL DAY TO SECOND
type in REST API. Previously, intervals greater than2,147,483,647
milliseconds (about24
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 API and parsed incorrectly when specified as a literal.Fix formatting of negative intervals in REST API. Previously, negative intervals had 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 negative intervals from new servers. Make sure to update the JDBC driver along 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
andTINYINT
types.Add support for non-equi outer joins.
Verifier Changes
Add
skip-cpu-check-regex
config property which can be used to skip the CPU time 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
forKMSClientProvider
in HDFS client.Fix creating tables on S3 in an empty database.
Implement
REVOKE
permission syntax.Add support for
SMALLINT
andTINYINT
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
andTIMESTAMP
types.
Other Connector Changes
- Add support for
varchar(n)
to the Redis, TPCH, MongoDB, Local File and Example HTTP connectors.