Release 0.198#

General Changes#

  • Perform semantic analysis before enqueuing queries.

  • Add support for selective aggregates (FILTER) with DISTINCT argument qualifiers.

  • Support ESCAPE for LIKE predicate in SHOW SCHEMAS and SHOW TABLES queries.

  • Parse decimal literals (e.g. 42.0) as DECIMAL by default. Previously, they were parsed as DOUBLE. This behavior can be turned off via the parse-decimal-literals-as-double config option or the parse_decimal_literals_as_double session property.

  • Fix current_date failure when the session time zone has a “gap” at 1970-01-01 00:00:00. The time zone America/Bahia_Banderas is one such example.

  • Add variant of sequence() function for DATE with an implicit one-day step increment.

  • Increase the maximum number of arguments for the zip() function from 4 to 5.

  • Add ST_IsValid(), geometry_invalid_reason(), simplify_geometry(), and great_circle_distance() functions.

  • Support min() and max() aggregation functions when the input type is unknown at query analysis time. In particular, this allows using the functions with NULL literals.

  • Add configuration property task.max-local-exchange-buffer-size for setting local exchange buffer size.

  • Add trace token support to the scheduler and exchange HTTP clients. Each HTTP request sent by the scheduler and exchange HTTP clients will have a “trace token” (a unique ID) in their headers, which will be logged in the HTTP request logs. This information can be used to correlate the requests and responses during debugging.

  • Improve query performance when dynamic writer scaling is enabled.

  • Improve performance of ST_Intersects().

  • Improve query latency when tables are known to be empty during query planning.

  • Optimize array_agg() to avoid excessive object overhead and native memory usage with G1 GC.

  • Improve performance for high-cardinality aggregations with DISTINCT argument qualifiers. This is an experimental optimization that can be activated by disabling the use_mark_distinct session property or the optimizer.use-mark-distinct config option.

  • Improve parallelism of queries that have an empty grouping set.

  • Improve performance of join queries involving the ST_Distance() function.

Resource Groups Changes#

  • Query Queues have been removed. Resource Groups are always enabled. The config property experimental.resource-groups-enabled has been removed.

  • Change WEIGHTED_FAIR scheduling policy to select oldest eligible sub group of groups where utilization and share are identical.

CLI Changes#

  • The --enable-authentication option has been removed. Kerberos authentication is automatically enabled when --krb5-remote-service-name is specified.

  • Kerberos authentication now requires HTTPS.

Hive Changes#

  • Add support for using AWS Glue as the metastore. Enable it by setting the hive.metastore config property to glue.

  • Fix a bug in the ORC writer that will write incorrect data of type VARCHAR or VARBINARY into files.

JMX Changes#

  • Add wildcard character * which allows querying several MBeans with a single query.

SPI Changes#

  • Add performance statistics to query plan in QueryCompletedEvent.

  • Remove Page.getBlocks(). This call was rarely used and performed an expensive copy. Instead, use Page.getBlock(channel) or the new helper Page.appendColumn().

  • Improve validation of ArrayBlock, MapBlock, and RowBlock during construction.