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 and task.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 the concurrent_lifespans_per_task session property.
  • Add the query_max_total_memory session property and the query.max-total-memoryconfig 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 of approx_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-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 SELECT privileges for DELETE queries.Previously, DELETE queries could fail if the user only has DELETEprivileges but not SELECT privileges.This only affected connectors that implement checkCanSelectFromColumns().
  • Add a check that the view owner has permission to create the view whenrunning SELECT queries against a view. This only affected connectors thatimplement checkCanCreateViewWithSelectFromColumns().
  • Change DELETE FROM <table> WHERE <condition> to check that the user has SELECTprivileges on the objects referenced by the WHERE 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() on PrestoStatement.
  • Use VARCHAR rather than LONGNVARCHAR for the Presto varchar type.
  • Use VARBINARY 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.

CLI Changes

  • 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 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 in ConnectorAccessControland SystemAccessControl. checkCanSelectFromColumns and checkCanCreateViewWithSelectFromColumnsshould 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.