Release 357 (21 May 2021)#

General#

  • Add support for subquery expressions that return multiple columns. Example: SELECT x = (VALUES (1, 'a')) (#7773, #7863)

  • Allow aggregation pushdown when COUNT(1) is used with GROUP BY. (#7251)

  • Add support for CURRENT_CATALOG and CURRENT_SCHEMA. (#7824)

  • Add format_number() function. (#1878)

  • Change row to json cast to produce JSON objects instead of JSON arrays. This behavior can be restored with the deprecated.legacy-row-to-json-cast configuration option. (#3536)

  • Print dynamic filters summary in EXPLAIN ANALYZE. (#7874)

  • Improve performance for queries using IN predicate with a short list of constants. (#7840)

  • Release memory immediately when queries involving window functions fail. (#7947)

  • Fix incorrect handling of row expressions for IN predicates, quantified comparisons and scalar subqueries. Previously, the queries would succeed where they should have failed with a type mismatch error. (#7797)

  • Fix failure when using PREPARE with a GRANT statement that contains quoted SQL keywords. (#7941)

  • Fix cluster instability after executing certain large EXPLAIN queries. (#8017)

Security#

  • Enforce materialized view creator security policies when view is fresh. (#7618)

  • Use system truststore for OAuth2 and JWK for JWT authentication. Previously, the truststore configured for internal communication was used. This means that globally trusted certificates will work by default. (#7936)

  • Fix handling of SNI for multiple TLS certificates. (#8007)

Web UI#

  • Make the UI aware of principal-field (configured with http-server.authentication.oauth2.principal-field) when web-ui.authentication.type is set to oauth2. (#7526)

JDBC driver#

  • Cancel Trino query execution when JDBC statement is closed. (#7819)

  • Close statement when connection is closed. (#7819)

CLI#

  • Add clear command to clear the screen. (#7632)

BigQuery connector#

  • Fix failures for queries accessing information_schema.columns when case-insensitive-name-matching is disabled. (#7830)

  • Fix query failure when a predicate on a BigQuery string column contains a value with a single quote ('). (#7784)

ClickHouse connector#

  • Improve performance of aggregation queries by computing aggregations within ClickHouse. Currently, the following aggregate functions are eligible for pushdown: count, min, max, sum and avg. (#7434)

  • Map ClickHouse UUID columns as UUID type in Trino instead of VARCHAR. (#7097)

Elasticsearch connector#

  • Support decoding timestamp columns encoded as strings containing milliseconds since epoch values. (#7838)

  • Retry requests with backoff when Elasticsearch is overloaded. (#7423)

Kinesis connector#

  • Add kinesis.table-description-refresh-interval configuration property to set the refresh interval for fetching table descriptions from S3. (#1609)

Kudu connector#

  • Fix query failures for grouped execution on range partitioned tables. (#7738)

MongoDB connector#

  • Redact the value of mongodb.credentials in the server log. (#7862)

  • Add support for dropping columns. (#7853)

Pinot connector#

  • Add support for complex filter expressions in passthrough queries. (#7161)

Other connectors#

This change applies to the Druid, MemSQL, MySQL, Oracle, Phoenix, PosgreSQL, Redshift, and SQL Server connectors.

  • Add rule support for identifier mapping. The rules can be configured via the case-insensitive-name-matching.config-file configuration property. (#7841)

SPI#

  • Make ConnectorMaterializedViewDefinition non-serializable. It is the responsibility of the connector to serialize and store the materialized view definitions in an appropriate format. (#7762)

  • Deprecate TupleDomain.transform. (#7980)