Apache Drill 1.18.0 Release Notes

Release date: September 05, 2020

Today, we’re happy to announce the availability of Drill 1.18.0. You can download it here.

New Feature

  • [DRILL-6552] - Drill Metadata management “Drill Metastore”
  • [DRILL-7233] - Format Plugin for HDF5
  • [DRILL-7359] - Add support for DICT type in RowSet Framework
  • [DRILL-7437] - Storage Plugin for Generic HTTP REST API
  • [DRILL-7607] - Dynamic credit based flow control
  • [DRILL-7656] - Support injecting BufferManager into UDF
  • [DRILL-7706] - Drill RDBMS Metastore
  • [DRILL-5956] - Add Storage Plugin for Apache Druid

Improvement

  • [DRILL-6599] - Setup continuous integration for Drill builds on Docker Hub
  • [DRILL-6600] - Create Docker Official Repository for Drill
  • [DRILL-6604] - Upgrade Drill Hive client to Hive3.1 version
  • [DRILL-6738] - validationQuery option for JDBC storage plugin
  • [DRILL-6832] - Remove old “unmanaged” sort implementation
  • [DRILL-7361] - Add Map (Dict) support for schema provisioning using file
  • [DRILL-7466] - Configurable number of connection in JDBC storage connection pool
  • [DRILL-7467] - Jdbc plugin enhancements and fixes
  • [DRILL-7478] - Add Pull Request Template
  • [DRILL-7503] - Refactor project operator
  • [DRILL-7506] - Simplify code gen error handling
  • [DRILL-7507] - Convert fragment interrupts to exceptions
  • [DRILL-7514] - Update Apache POI to Latest Version
  • [DRILL-7547] - More secure storage for mongodb credentials
  • [DRILL-7562] - Support HTTP Basic authentication
  • [DRILL-7572] - JSON structure parser
  • [DRILL-7573] - Support text file for user authentication instead of using PAM
  • [DRILL-7574] - Generalize projection parser
  • [DRILL-7575] - FormSecurityHandler class name is spelled incorrectly
  • [DRILL-7576] - Fail fast in operators
  • [DRILL-7583] - Remove STOP status in favor of fail-fast
  • [DRILL-7590] - Refactor plugin registry
  • [DRILL-7599] - Move Function to Access Drill Temp Directory to Utility Library
  • [DRILL-7600] - Move Compress File Function to Test Utility
  • [DRILL-7601] - Shift column conversion to reader from scan framework
  • [DRILL-7603] - Allow setting default schema using REST API / Web UI
  • [DRILL-7605] - Web UI should remember last Query text & settings
  • [DRILL-7610] - Allow user to specify table schema in Metastore
  • [DRILL-7618] - Extend configuration options for embedded Jetty server
  • [DRILL-7631] - Updates to the Json Structure Parser
  • [DRILL-7632] - Improve user exception formatting
  • [DRILL-7633] - Fixes for union and repeated list accessors
  • [DRILL-7634] - Rollup of code cleanup changes
  • [DRILL-7637] - Add an option to retrieve MapR SSL truststore/keystore credentials using MapR Web Security Manager
  • [DRILL-7640] - EVF-based JSON Loader
  • [DRILL-7641] - Convert Excel Reader to Use Streaming Reader
  • [DRILL-7650] - Add option to enable Jetty’s dump for troubleshooting
  • [DRILL-7652] - Add time_bucket() Function for Time Series Analysis
  • [DRILL-7663] - Code refactor to DefaultFunctionResolver
  • [DRILL-7665] - Add UNION to schema parser
  • [DRILL-7668] - Allow Time Bucket Function to Accept Floats and Timestamps
  • [DRILL-7672] - Make metadata type required when reading from / writing into Drill Metastore
  • [DRILL-7678] - Update Yauaa dependency
  • [DRILL-7680] - Move UDF projects before plugins in contrib
  • [DRILL-7683] - Add “message parsing” to new JSON loader
  • [DRILL-7692] - Select default schema from enabled storage plugins in query page
  • [DRILL-7693] - Upgrade Protobuf to 3.11.1
  • [DRILL-7696] - EVF v2 Scan Schema Resolution
  • [DRILL-7701] - EVF V2 Scan Framework
  • [DRILL-7703] - Support for 3+D arrays in EVF JSON loader
  • [DRILL-7705] - Update jQuery and Bootstrap libraries
  • [DRILL-7711] - Add data path, parameter filter pushdown to HTTP plugin
  • [DRILL-7716] - Create Format Plugin for SPSS Files
  • [DRILL-7717] - Support Mongo extended types in V2 JSON loader
  • [DRILL-7723] - Add Excel Metadata as Implicit Fields
  • [DRILL-7724] - Refactor metadata controller batch
  • [DRILL-7725] - Updates to EVF2
  • [DRILL-7730] - Reduce overhead of web queries displayed in HTML
  • [DRILL-7734] - Revise the result set reader
  • [DRILL-7739] - Allow implicit casts from required to nullable data type
  • [DRILL-7746] - Add REST API Ability to Accept CSV Input

Sub-task

  • [DRILL-7229] - Add scripts to the release folder in Drill Repo
  • [DRILL-7230] - Add README.md with instructions for release
  • [DRILL-7274] - Introduce ANALYZE TABLE statements
  • [DRILL-7330] - Implement metadata usage for text format plugin
  • [DRILL-7386] - Fix count and typeOf functions for struct type
  • [DRILL-7454] - Convert the Avro format plugin to use EVF
  • [DRILL-7477] - Allow passing table function parameters into ANALYZE statement
  • [DRILL-7625] - Add options for SslContextFactory
  • [DRILL-7626] - Add ability to set HTTP response headers
  • [DRILL-7644] - Log SSL protocol version at Drill start up
  • [DRILL-7782] - Update the copyright year in NOTICE

Bug

  • [DRILL-4527] - Remove unnecessary code: DrillAvgVarianceConvertlet.java
  • [DRILL-5733] - Unable to SELECT from parquet file with Hadoop 2.7.4
  • [DRILL-6168] - Table functions do not “inherit” default configuration
  • [DRILL-6215] - Use prepared statement instead of Statement in JdbcRecordReader class
  • [DRILL-6905] - ClassCastException happens when combining filters with numeric and varchar literals
  • [DRILL-7203] - Back button for failed query does not return on Query page
  • [DRILL-7311] - Partial fixes for empty batch bugs
  • [DRILL-7340] - Filter is not pushed to JDBC database when several databases are used in the query
  • [DRILL-7415] - Information schema query fails for postgres foreign tables
  • [DRILL-7429] - Wrong column order when selecting complex data using Hive storage plugin.
  • [DRILL-7459] - Fetch size does not work on Postgres JDBC plugin
  • [DRILL-7461] - Do not pass ClassNotFoundException into SQLNonTransientConnectionException cause when checking that Drill is run in embedded mode
  • [DRILL-7491] - Incorrect count() returned for complex types in parquet
  • [DRILL-7495] - Excel Reader Not Parsing Dates Correctly in First Column
  • [DRILL-7497] - Fix warnings when starting Drill on Windows using Java 11
  • [DRILL-7502] - Incorrect/invalid codegen for typeof() with UNION
  • [DRILL-7505] - PCAP Plugin Fails on IPv6 Packets
  • [DRILL-7509] - Incorrect TupleSchema is created for DICT column when querying Parquet files
  • [DRILL-7518] - Parquet INT64 Nullable Type Support
  • [DRILL-7527] - DROP METADATA doesn’t work with table name starting with ‘/’ inside workspace
  • [DRILL-7529] - Building depends on poorly configured uncommon maven repositories
  • [DRILL-7549] - Fix validation error when querying absent sub folder in embedded mode
  • [DRILL-7565] - ANALYZE TABLE … REFRESH METADATA does not work for empty Parquet files
  • [DRILL-7578] - HDF5 Metadata Queries Fail with Large Files
  • [DRILL-7582] - Drill docker Web UI doesn’t show resources usage information if map the container to a non-default port
  • [DRILL-7586] - drill-hive-exec-shaded contains commons-lang3 version 3.1
  • [DRILL-7587] - Query with VALUES clause returns the wrong result when planner.slice_target is small
  • [DRILL-7589] - TestDynamicUDFSupport fails on GitHub Actions
  • [DRILL-7596] - drill-format-esri module uses 1.16.0 version of org.apache.drill.contrib:drill-udfs
  • [DRILL-7615] - UNION ALL query returns the wrong result for the decimal value
  • [DRILL-7617] - Disabled storage plugins configuration is not displayed on Web UI
  • [DRILL-7619] - Metrics is not displayed due to incorrect endpoint link on the Drill index page
  • [DRILL-7620] - Storage plugin update page shows that a plugin is disabled though it is actually enabled.
  • [DRILL-7622] - Compilation error when using HLL / TDigest with group by clause
  • [DRILL-7623] - Link error is displayed at the log content page on Web UI
  • [DRILL-7624] - When Hive plugin is enabled with default config, cannot execute any SQL query
  • [DRILL-7628] - Fix Mongo tests broken after the fix for DRILL-7547
  • [DRILL-7629] - Parquet MAP field support missing in recent stable release (?)
  • [DRILL-7630] - Add additional types into SchemaParser
  • [DRILL-7635] - Mongo tests fail for profiles with non-file default file system
  • [DRILL-7643] - Fix issues with using columns with the same name as reserved keyword
  • [DRILL-7648] - Scrypt j_security_check works without security headers
  • [DRILL-7649] - Replace maprfs.version property usage by mapr.release.version
  • [DRILL-7673] - View set query fails with NPE for non-existing option
  • [DRILL-7675] - Very slow performance and Memory exhaustion while querying on very small dataset of parquet files
  • [DRILL-7694] - Register drill.queries.* counter metrics on Drillbit startup
  • [DRILL-7699] - Update javax.validation Dependency
  • [DRILL-7707] - Unable to analyze table metadata is it resides in non-writable workspace
  • [DRILL-7708] - Downgrade maven from 3.6.3 to 3.6.0
  • [DRILL-7710] - Fix TestMetastoreCommands#testDefaultSegment test
  • [DRILL-7726] - Boost requirement is incorrect
  • [DRILL-7738] - Fix TestDynamicUDFSupport failure for GitHub Actions
  • [DRILL-7741] - Columns are missing when using convert_from function
  • [DRILL-7749] - Drill-on-Yarn Application Master UI is broken due to bootstrap update
  • [DRILL-7750] - Drill fails to read KeyStore password from Credential provider
  • [DRILL-7759] - Code compilation exception for queries containing (untyped) NULL
  • [DRILL-7761] - Drill fails with OOM for the case of large filter conditions
  • [DRILL-7773] - Incorrect conversion result to TIME_EPOCH_BE
  • [DRILL-7774] - IS NOT NULL predicate fails with NPE for the case of non-existing columns with non-deterministic expression
  • [DRILL-7786] - Apache drill fails to execute when excel file has datetime column

Task

  • [DRILL-6580] - Upgrade Curator libraries
  • [DRILL-7220] - Create a release package in Drill repo with automated scripts and instructions
  • [DRILL-7406] - Update Calcite to 1.21.0
  • [DRILL-7496] - Update Dockerfile to publish release images under Apache Docker Hub
  • [DRILL-7504] - Upgrade Parquet library to 1.11.0
  • [DRILL-7528] - Update Avro format plugin documentation
  • [DRILL-7530] - Fix class names in loggers
  • [DRILL-7540] - Update Calcite.md doc
  • [DRILL-7543] - Use GitHub Actions for CI
  • [DRILL-7544] - Upgrade Iceberg version to support Parquet 1.11.0
  • [DRILL-7548] - Updating Environment.md to Skip Tests
  • [DRILL-7561] - Document authentication for REST API
  • [DRILL-7570] - Fix unstable statistics tests
  • [DRILL-7580] - Broken links in apache drill documentation to https://drill.apache.org/docs/starting-the-web-console/
  • [DRILL-7584] - Misspelled method name in MongoStoragePluginConfig (getMongoCrendials)
  • [DRILL-7592] - Add missing licenses and update plugins exclusion list
  • [DRILL-7594] - Remove unused DrillStoreRel
  • [DRILL-7614] - Add helpful tips to Testing.md
  • [DRILL-7627] - Update MySql version for JdbcStoragePlugin tests and cache ~/.embedmysql
  • [DRILL-7639] - Replace DBCP2 with HikariCP in RDBMS (JDBC) plugin
  • [DRILL-7651] - Increase timeout for TestLargeFileCompilation to avoid GitHub Action failures
  • [DRILL-7654] - Add support for JDK 14
  • [DRILL-7702] - Update zookeeper, curator, guava, jetty-server, libthrift, httpclient, commons-compress and httpdlog-parser
  • [DRILL-7704] - Update Maven dependency to 3.6.3
  • [DRILL-7713] - Upgrade misc libraries which outdated versions have reported vulnerabilities
  • [DRILL-7744] - Move Filters from HTTP Storage Plugin to Drill Core