Release 0.205

    • 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 and task.max-drivers-per-task config 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 query_max_total_memory session property and the query.max-total-memory config 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 Block contains all null or all non-null values.

    • Change the internal hash function used in approx_distinct. The result of approx_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.

    • Remove the legacy local scheduler and associated configuration properties, task.legacy-scheduling-behavior and task.level-absolute-priority.

    • Do not allow using the FILTER clause for the COALESCE, IF, or NULLIF functions. The syntax was previously allowed but was otherwise ignored.

    Security Changes

    • Remove unnecessary check for privileges for DELETE queries. Previously, DELETE queries could fail if the user only has DELETE privileges but not SELECT privileges. This only affected connectors that implement checkCanSelectFromColumns().

    • Add a check that the view owner has permission to create the view when running SELECT queries against a view. This only affected connectors that implement checkCanCreateViewWithSelectFromColumns().

    • Change DELETE FROM <table> WHERE <condition> to check that the user has SELECT privileges on the objects referenced by the WHERE condition as is required by the SQL standard.

    • Add support for prepared statements.

    • Add partial query cancellation via partialCancel() on PrestoStatement.

    • Use rather than LONGVARBINARY for the Presto varbinary 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.

    • Prevent the CLI from crashing when running on certain 256 color terminals.

    SPI Changes

    • Add a context parameter to the create() method in SessionPropertyConfigurationManagerFactory.

    • Disallow non-static methods to be annotated with @ScalarFunction. Non-static SQL function implementations must now be declared in a class annotated with @ScalarFunction.

    • Deprecate checkCanSelectFromTable/checkCanSelectFromView and checkCanCreateViewWithSelectFromTable/checkCanCreateViewWithSelectFromView in ConnectorAccessControl and SystemAccessControl. checkCanSelectFromColumns and checkCanCreateViewWithSelectFromColumns should be used instead.

    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.