# Presto 316 Documentation

## 12.102. Release 0.142

## General Changes

- Fix planning bug for `JOIN` criteria that optimizes to a `FALSE` expression.
- Fix planning bug when the output of `UNION` doesn’t match the table column order in `INSERT` queries.
- Fix error when `ORDER BY` clause in window specification refers to the same column multiple times.
- Add support for complex grouping operations - `CUBE`, `ROLLUP` and `GROUPING SETS`.
- Add support for `IF NOT EXISTS` in `CREATE TABLE AS` queries.
- Add `substring()` function.
- Add `http.server.authentication.krb5.keytab` config option to set the location of the Kerberos keytab file explicitly.
- Add `optimize_metadata_queries` session property to enable the metadata-only query optimization.
- Improve support for non-equality predicates in `JOIN` criteria.
- Add support for non-correlated subqueries in aggregation queries.
- Improve performance of `json_extract()`.

## Hive Changes

- Change ORC input format to report actual bytes read as opposed to estimated bytes.
- Fix cache invalidation when renaming tables.
- Fix Parquet reader to handle uppercase column names.
- Fix issue where the `hive.respect-table-format` config option was being ignored.
- Add hive.compression-codec config option to control compression used when writing. The default is now `GZIP` for all formats.
- Collect and expose end-to-end execution time JMX metric for requests to AWS services.