21.31. Release 314

General Changes

  • Fix incorrect results for BETWEEN involving NULL values. (#877)
  • Fix query history leak in coordinator. (#939, #944)
  • Fix idle client timeout handling. (#947)
  • Improve performance of json_parse() function. (#904)
  • Visualize plan structure in EXPLAIN output. (#888)
  • Add support for positional access to ROW fields via the subscript operator. (#860)

CLI Changes

  • Add JSON output format. (#878)

Web UI Changes

  • Fix queued queries counter in UI. (#894)

Server RPM Changes

  • Change default location of the http-request.log to /var/log/presto. Previously, the log would be located in /var/lib/presto/data/var/log by default. (#919)

Hive Connector Changes

  • Fix listing tables and views from Hive 2.3+ Metastore on certain databases, including Derby and Oracle. This fixes SHOW TABLES, SHOW VIEWS and reading from information_schema.tables table. (#833)
  • Fix handling of Avro tables with avro.schema.url defined in Hive SERDEPROPERTIES. (#898)
  • Fix regression that caused ORC bloom filters to be ignored. (#921)
  • Add support for reading LZ4 and ZSTD compressed Parquet data. (#910)
  • Add support for writing ZSTD compressed ORC data. (#910)
  • Add support for configuring ZSTD and LZ4 as default compression methods via the hive.compression-codec configuration option. (#910)
  • Do not allow inserting into text format tables that have a header or footer. (#891)
  • Add textfile_skip_header_line_count and textfile_skip_footer_line_count table properties for text format tables that specify the number of header and footer lines. (#845)
  • Add hive.max-splits-per-second configuration property to allow throttling the split discovery rate, which can reduce load on the file system. (#534)
  • Support overwriting unpartitioned tables for insert queries. (#924)

PostgreSQL Connector Changes

  • Support PostgreSQL arrays declared using internal type name, for example _int4 (rather than int[]). (#659)

Elasticsearch Connector Changes

  • Add support for mixed-case field names. (#887)

Base-JDBC Connector Library Changes

  • Allow connectors to customize how they store NULL values. (#918)

SPI Changes

  • Expose the SQL text of the executed prepared statement to EventListener. (#908)
  • Deprecate table layouts for ConnectorMetadata.makeCompatiblePartitioning(). (#689)
  • Add support for delete pushdown into connectors via the ConnectorMetadata.applyDelete() and ConnectorMetadata.executeDelete() methods. (#689)
  • Allow connectors without distributed tables. (#893)