Release 0.205#
General#
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-taskandtask.max-drivers-per-taskconfig options. The former specifies the guaranteed minimum number of drivers a task will run concurrently given that it has enough work to do. The latter specifies the maximum number of drivers a task can run concurrently.Add the
concurrent-lifespans-per-taskconfig property to control the default value of theconcurrent_lifespans_per_tasksession property.Add the
query_max_total_memorysession property and thequery.max-total-memoryconfig property. Queries will be aborted after their total (user + system) memory reservation exceeds this threshold.Improve stats calculation for outer joins and correlated subqueries.
Reduce memory usage when a
Blockcontains all null or all non-null values.Change the internal hash function used in
approx_distinct. The result ofapprox_distinctmay 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-behaviorandtask.level-absolute-priority.Do not allow using the
FILTERclause for theCOALESCE,IF, orNULLIFfunctions. The syntax was previously allowed but was otherwise ignored.
Security#
Remove unnecessary check for
SELECTprivileges forDELETEqueries. Previously,DELETEqueries could fail if the user only hasDELETEprivileges but notSELECTprivileges. This only affected connectors that implementcheckCanSelectFromColumns().Add a check that the view owner has permission to create the view when running
SELECTqueries against a view. This only affected connectors that implementcheckCanCreateViewWithSelectFromColumns().Change
DELETE FROM <table> WHERE <condition>to check that the user hasSELECTprivileges on the objects referenced by theWHEREcondition as is required by the SQL standard.Improve the error message when access is denied when selecting from a view due to the view owner having insufficient permissions to create the view.
JDBC driver#
Add support for prepared statements.
Add partial query cancellation via
partialCancel()onPrestoStatement.Use
VARCHARrather thanLONGNVARCHARfor the Prestovarchartype.Use
VARBINARYrather thanLONGVARBINARYfor the Prestovarbinarytype.
Hive connector#
Improve the performance of
INSERTqueries 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.countHive table property.
CLI#
Prevent the CLI from crashing when running on certain 256 color terminals.
SPI#
Add a context parameter to the
create()method inSessionPropertyConfigurationManagerFactory.Disallow non-static methods to be annotated with
@ScalarFunction. Non-static SQL function implementations must now be declared in a class annotated with@ScalarFunction.Disallow having multiple public constructors in
@ScalarFunctionclasses. All non-static implementations of SQL functions will now be associated with a single constructor. This improves support for providing specialized implementations of SQL functions with generic arguments.Deprecate
checkCanSelectFromTable/checkCanSelectFromViewandcheckCanCreateViewWithSelectFromTable/checkCanCreateViewWithSelectFromViewinConnectorAccessControlandSystemAccessControl.checkCanSelectFromColumnsandcheckCanCreateViewWithSelectFromColumnsshould be used instead.
Note
These are backwards incompatible changes with the previous SPI. If you have written a plugin using these features, you will need to update your code before deploying this release.