Release 0.195-e#
General changes#
Introduce cost-based plan optimizations.
Replace
distributed_join
session property withjoin_distribution_type
.Replace
reorder_joins
session property withjoin_reordering_strategy
.Introduce distributed sort. It is now possible to turn on distributed sort via experimental
distributed_sort
session property (off by default). Distributed sort will help in cases when sorted data doesn’t fit on single node. Performance improvement can be expected, but partially distributed data streams are still merged on a single node.Fix sort memory leak.
Add support for ROLE management including CREATE ROLE, DROP ROLE, GRANT ROLE, REVOKE ROLE, SET ROLE, SHOW CURRENT ROLES, SHOW ROLES and SHOW ROLE GRANTS commands.
Support prepared statements that are longer than 4K bytes.
Support predicate pushdown for the
<column> IN <values list>
predicate where values in the values list require casting to match the type of column.Improve predicate inferring/pushdown between source and filtering subquery for queries like
SELECT ... WHERE <symbol> IN <subquery>
.
Hive connector changes#
Allow partitions without files for bucketed tables (via
hive.empty-bucketed-partitions.enabled
).Allow multiple files per bucket for bucketed tables (via
hive.multi-file-bucketing.enabled
). There must be one or more files per bucket. File names must match the Hive naming convention.Allow reading incompletely bucketed tables with missing files (via
hive.empty-bucketed-partitions.enabled
).Allow disabling ability to create external tables from Presto (via
hive.non-managed-table-creates-enabled
).Implement ROLE management support.
JMX connector changes#
Add wildcard character
*
which allows to query several MBeans data with single query.
Security changes#
Secured internal cluster communication over HTTPS using Kerberos or LDAP authentication
Add a Kerberos principal rule for exact match to File Based System Access Control
Data type changes#
TIMESTAMP semantic changes
The
current_time
andlocaltime
functions were fixed to return the correct value for non-UTC timezones.Make
DECIMAL
the default literal for non-integral numbers.Fix decimal precision of
round(x, d)
whenx
is aDECIMAL
.Fix returned value from
round(x, d)
whenx
is aDECIMAL
with scale0
andd
is a negative integer. Previously, no rounding was done in this case.