11.25. Release 0.205
General Changes
- Fix parsing of row types where the field types contain spaces.Previously, row expressions that included spaces would fail to parse.For example:
cast(row(timestamp '2018-06-01') AS row(timestamp with time zone))
. - Fix distributed planning failure for complex queries when using bucketed execution.
- Fix
ST_ExteriorRing()
to only accept polygons.Previously, it erroneously accepted other geometries. - Add the
task.min-drivers-per-task
andtask.max-drivers-per-task
config options.The former specifies the guaranteed minimum number of drivers a task will run concurrentlygiven that it has enough work to do. The latter specifies the maximum number of driversa task can run concurrently. - Add the
concurrent-lifespans-per-task
config property to control the default valueof theconcurrent_lifespans_per_task
session property. - Add the
query_max_total_memory
session property and thequery.max-total-memory
config property. Queries will be aborted after their total (user + system) memoryreservation exceeds this threshold. - Improve stats calculation for outer joins and correlated subqueries.
- Reduce memory usage when a
Block
contains all null or all non-null values. - Change the internal hash function used in
approx_distinct
. The result ofapprox_distinct
may change in this version compared to the previous version for the same set of values. However,the standard error of the results should still be within the configured bounds. - Improve efficiency and reduce memory usage for scalar correlated subqueries with aggregations.
- Remove the legacy local scheduler and associated configuration properties,
task.legacy-scheduling-behavior
andtask.level-absolute-priority
. - Do not allow using the
FILTER
clause for theCOALESCE
,IF
, orNULLIF
functions.The syntax was previously allowed but was otherwise ignored.
Security Changes
- Remove unnecessary check for
SELECT
privileges forDELETE
queries.Previously,DELETE
queries could fail if the user only hasDELETE
privileges but notSELECT
privileges.This only affected connectors that implementcheckCanSelectFromColumns()
. - Add a check that the view owner has permission to create the view whenrunning
SELECT
queries against a view. This only affected connectors thatimplementcheckCanCreateViewWithSelectFromColumns()
. - Change
DELETE FROM <table> WHERE <condition>
to check that the user hasSELECT
privileges on the objects referenced by theWHERE
condition as is required by the SQL standard. - Improve the error message when access is denied when selecting from a view due to theview owner having insufficient permissions to create the view.
JDBC Driver Changes
- Add support for prepared statements.
- Add partial query cancellation via
partialCancel()
onPrestoStatement
. - Use
VARCHAR
rather thanLONGNVARCHAR
for the Prestovarchar
type. - Use
VARBINARY
rather thanLONGVARBINARY
for the Prestovarbinary
type.
Hive Connector Changes
- Improve the performance of
INSERT
queries when all partition column values are constants. - Improve stripe size estimation for the optimized ORC writer.This reduces the number of cases where tiny ORC stripes will be written.
- Respect the
skip.footer.line.count
Hive table property.
CLI Changes
- Prevent the CLI from crashing when running on certain 256 color terminals.
SPI Changes
- Add a context parameter to the
create()
method inSessionPropertyConfigurationManagerFactory
. - Disallow non-static methods to be annotated with
@ScalarFunction
. Non-static SQL functionimplementations must now be declared in a class annotated with@ScalarFunction
. - Disallow having multiple public constructors in
@ScalarFunction
classes. All non-staticimplementations of a SQL function will now be associated with a single constructor.This improves support for providing specialized implementations of SQL functions with generic arguments. - Deprecate
checkCanSelectFromTable/checkCanSelectFromView
andcheckCanCreateViewWithSelectFromTable/checkCanCreateViewWithSelectFromView
inConnectorAccessControl
andSystemAccessControl
.checkCanSelectFromColumns
andcheckCanCreateViewWithSelectFromColumns
should be used instead.
Note
These are backwards incompatible changes with the previous SPI.If you have written a plugin using these features, you will needto update your code before deploying this release.