Release 0.190

    • Fix planning failure for queries involving GROUPING that require implicit coercions in expressions containing aggregate functions.

    • Fix potential workload imbalance when using topology-aware scheduling.

    • Fix a memory leak that occurs on workers.

    • Improve error handling when a HAVING clause contains window functions.

    • Avoid unnecessary data redistribution when writing when the target table has the same partition property as the data being written.

    • Ignore case when sorting the output of SHOW FUNCTIONS.

    • The approx_distinct() function now supports a standard error in the range of [0.0040625, 0.26000].

    • Add support for in aggregation functions.

    • Add dictionary processing for joins which can improve join performance up to 50%. This optimization can be disabled using the dictionary-processing-joins-enabled config property or the dictionary_processing_join session property.

    • Add support for casting to INTERVAL types.

    • Add geospatial function.

    • Allow treating decimal literals as values of the DECIMAL type rather than DOUBLE. This behavior can be enabled by setting the parse-decimal-literals-as-double config property or the session property to false.

    Resource Groups Changes

    • Add exact match source selector to the DB resource group selectors.

    • Add support for setting client tags.

    JDBC Driver Changes

    • Add getPeakMemoryBytes() to QueryStats.
    • Improve table scan parallelism.

    Hive Changes

    • Fix query failures for the file-based metastore implementation when partition column values contain a colon.

    • Improve performance for writing to bucketed tables when the data being written is already partitioned appropriately (e.g., the output is from a bucketed join).

    • Add config property hive.max-outstanding-splits-size for the maximum amount of memory used to buffer splits for a single table scan. Additionally, the default value is substantially higher than the previous hard-coded limit, which can prevent certain queries from failing.

    • Make Thrift retry configurable.

    • Add JMX counters for Thrift requests.

    SPI Changes

    • Remove the RecordSink interface, which was difficult to use correctly and had no advantages over the PageSink interface.

    Note