# Presto 316 Documentation

## 12.166. Release 0.78

## ARRAY and MAP Types in Hive Connector

The Hive connector now returns arrays and maps instead of json encoded strings, for columns whose underlying type is array or map. Please note that this is a backwards incompatible change, and the JSON Functions and Operators will no longer work on these columns, unless you `cast()` them to the `json` type.

## Session Properties

The Presto session can now contain properties, which can be used by the Presto engine or connectors to customize the query execution. There is a separate namespace for the Presto engine and each catalog. A property for a catalog is simplify prefixed with the catalog name followed by `.` (dot). A connector can retrieve the properties for the catalog using `ConnectorSession.getProperties()`.

Session properties can be set using the `--session` command line argument to the Presto CLI. For example:

    presto-cli --session color=red --session size=large

For JDBC, the properties can be set by unwrapping the `Connection` as follows:

    connection.unwrap(PrestoConnection.class).setSessionProperty("name", "value");

Note

This feature is a work in progress and will change in a future release. Specifically, we are planning to require preregistration of properties so the user can list available session properties and so the engine can verify property values. Additionally, the Presto grammar will be extended to allow setting properties via a query.

## Hive Changes

- Add `storage_format` session property to override format used for creating tables.
- Add write support for `VARBINARY`, `DATE` and `TIMESTAMP`.
- Add support for partition keys of type `TIMESTAMP`.
- Add support for partition keys with null values (`__HIVE_DEFAULT_PARTITION__`).
- Fix `hive.storage-format` option (see Release 0.76).

## General Changes

- Fix expression optimizer, so that it runs in linear time instead of exponential time.
- Add `cardinality()` for maps.
- Fix race condition in SqlTask creation which can cause queries to hang.
- Fix `node-scheduler.multiple-tasks-per-node-enabled` option.
- Fix an exception when planning a query with a UNION under a JOIN.