20.40. Release 0.209

General Changes

  • Fix incorrect predicate pushdown when grouping sets contain the empty grouping set (#11296).

  • Fix X-Forwarded-Proto header handling for requests to the / path (#11168).

  • Fix a regression that results in execution failure when at least one of the arguments to min_by() or max_by() is a constant NULL.

  • Fix failure when some buckets are completely filtered out during bucket-by-bucket execution.

  • Fix execution failure of queries due to a planning deficiency involving complex nested joins where a join that is not eligible for bucket-by-bucket execution feeds into the build side of a join that is eligible.

  • Improve numerical stability for corr(), covar_samp(), regr_intercept(), and regr_slope().

  • Do not include column aliases when checking column access permissions.

  • Eliminate unnecessary data redistribution for scalar correlated subqueries.

  • Remove table scan original constraint information from EXPLAIN output.

  • Introduce distinct error codes for global and per-node memory limit errors.

  • Include statistics and cost estimates for EXPLAIN (TYPE DISTRIBUTED) and EXPLAIN ANALYZE.

  • Support equality checks for ARRAY, MAP, and ROW values containing nulls.

  • Improve statistics estimation and fix potential negative nulls fraction estimates for expressions that include NOT or OR.

  • Completely remove the SHOW PARTITIONS statement.

  • Add bing_tiles_around() variant that takes a radius.

  • Add the convex_hull_agg() and geometry_union_agg() geospatial aggregation functions.

  • Add (TYPE IO, FORMAT JSON) option for EXPLAIN that shows input tables with constraints and the output table in JSON format.

  • Add Kudu Connector.

  • Raise required Java version to 8u151. This avoids correctness issues for map to map cast when running under some earlier JVM versions, including 8u92.

Web UI Changes

  • Fix the kill query button on the live plan and stage performance pages.

CLI Changes

  • Prevent spurious “No route to host” errors on macOS when using IPv6.

JDBC Driver Changes

  • Prevent spurious “No route to host” errors on macOS when using IPv6.

Hive Connector Changes

  • Fix data loss when writing bucketed sorted tables. Partitions would be missing arbitrary rows if any of the temporary files for a bucket had the same size. The numRows partition property contained the correct number of rows and can be used to detect if this occurred.

  • Fix cleanup of temporary files when writing bucketed sorted tables.

  • Allow creating schemas when using file based security.

  • Reduce the number of cases where tiny ORC stripes will be written when some columns are highly dictionary compressed.

  • Improve memory accounting when reading ORC files. Previously, buffer memory and object overhead was not tracked for stream readers.

  • ORC struct columns are now mapped by name rather than ordinal. This correctly handles missing or extra struct fields in the ORC file.

  • Add procedure system.create_empty_partition() for creating empty partitions.

Kafka Connector Changes

  • Support Avro formatted Kafka messages.

  • Support backward compatible Avro schema evolution.

SPI Changes

  • Allow using Object as a parameter type or return type for SQL functions when the corresponding SQL type is an unbounded generic.