# Presto 316 Documentation

## 12.31. Release 0.202

## General Changes

- Fix correctness issue for queries involving aggregations over the result of an outer join (#10592).
- Fix `map()` to raise an error on duplicate keys rather than silently producing a corrupted map.
- Fix `map_from_entries()` to raise an error when input array contains a `null` entry.
- Fix out-of-memory error for bucketed execution by scheduling new splits on the same worker as the recently finished one.
- Fix query failure when performing a `GROUP BY` on `json` or `ipaddress` types.
- Fix correctness issue in `line_locate_point()`, `ST_IsValid()`, and `geometry_invalid_reason()` functions to not return values outside of the expected range.
- Fix failure in `geometry_to_bing_tiles()` and `ST_NumPoints()` functions when processing geometry collections.
- Fix query failure in aggregation spilling (#10587).
- Remove support for `SHOW PARTITIONS` statement.
- Improve support for correlated subqueries containing equality predicates.
- Improve performance of correlated `EXISTS` subqueries.
- Limit the number of grouping sets in a `GROUP BY` clause. The default limit is `2048` and can be set via the `analyzer.max-grouping-sets` configuration property or the `max_grouping_sets` session property.
- Allow coercion between row types regardless of field names. Previously, a row type is coercible to another only if the field name in the source type matches the target type, or when target type has anonymous field name.
- Increase default value for `experimental.filter-and-project-min-output-page-size` to `500kB`.
- Improve performance of equals operator on `array(bigint)` and `array(double)` types.
- Respect `X-Forwarded-Proto` header in client protocol responses.
- Add support for column-level access control. Connectors have not yet been updated to take advantage of this support.
- Add support for correlated subqueries with correlated `OR` predicates.
- Add `multimap_from_entries()` function.
- Add `bing_tiles_around()`, `ST_NumGeometries()`, `ST_GeometryN()`, and `ST_ConvexHull()` geospatial functions.
- Add `wilson_interval_lower()` and `wilson_interval_upper()` functions.
- Add `IS DISTINCT FROM` for `json` and `ipaddress` type.

## Hive Changes

- Fix optimized ORC writer encoding of `TIMESTAMP` before `1970-01-01`. Previously, the written value was off by one second.
- Fix query failure when a Hive bucket has no splits. This commonly happens when a predicate filters some buckets out entirely.
- Remove the `hive.bucket-writing` config property.
- Add support for creating and writing bucketed sorted tables. The list of sorting columns may be specified using the `sorted_by` table property. Writing to sorted tables can be disabled using the `hive.sorted-writing` config property or the `sorted_writing_enabled` session property. The maximum number of temporary files for can be controlled using the `hive.max-sort-files-per-bucket` property.
- Collect and store basic table statistics (`rowCount`, `fileCount`, `rawDataSize`, `totalSize`) when writing.
- Add `hive.orc.tiny-stripe-threshold` config property and `orc_tiny_stripe_threshold` session property to control the stripe/file size threshold when ORC reader decides to read multiple consecutive stripes or entire fires at once. Previously, this feature piggybacks on other properties.

## CLI Changes

- Add peak memory usage to `--debug` output.

## SPI Changes

- Make `PageSorter` and `PageIndexer` supported interfaces.