DRILL-7292: Remove V1 and V2 text readers

Drill 1.16 introduced the "V2" text reader based on the row set
and provided schema mechanisms. V3 was available by system/session
option as the functionality was considered experimental.

The functionality has now undergone thorough testing. This commit makes
the V3 text reader available by default, and removes the code for the
original "V1" and the "new" (compliant, "V2") text reader.

The system/session options that controlled reader selection are retained
for backward compatibility, but they no longer do anything.

Specific changes:

* Removed the V2 "compliant" text reader.
* Moved the "V3" to replace the "compliant" version.
* Renamed the "complaint" package to "reader."
* Removed the V1 text reader.
* Moved the V1 text writer (still used with the V2 and V3 readers)
  into a new "writer" package adjacent to the reader.
* Removed the CSV tests for the V2 reader, including those that
  demonstrated bugs in V2.
* V2 did not properly handle the quote escape character. One or two unit
  tests depended on the broken behavior. Fixed them for the correct
  behavior.
* Behavior of "messy quotes" (those that appear in a non-quoted field)
  was undefined for the text reader. Added a test to clearly demonstrate
  the (somewhat odd) behavior. The behavior itself was not changed.

Reran all unit tests to ensure that they work with the now-default V3
text reader.

closes #1806
43 files changed
tree: 41d6bd877faf15c8c28c7fd06ca4a7dcd9f686d1
  1. .circleci/
  2. .mvn/
  3. common/
  4. contrib/
  5. distribution/
  6. docs/
  7. drill-shaded/
  8. drill-yarn/
  9. exec/
  10. logical/
  11. metastore/
  12. protocol/
  13. sample-data/
  14. src/
  15. tools/
  16. .gitignore
  17. .travis.yml
  18. header
  19. KEYS
  20. LICENSE
  21. NOTICE
  22. pom.xml
  23. README.md
README.md

Apache Drill

Build Status Artifact License

Apache Drill is a distributed MPP query layer that supports SQL and alternative query languages against NoSQL and Hadoop data storage systems. It was inspired in part by Google's Dremel.

Developers

Please read Environment.md for setting up and running Apache Drill. For complete developer documentation see DevDocs.md

More Information

Please see the Apache Drill Website or the Apache Drill Documentation for more information including:

  • Remote Execution Installation Instructions
  • Information about how to submit logical and distributed physical plans
  • More example queries and sample data
  • Find out ways to be involved or discuss Drill

Join the community!

Apache Drill is an Apache Foundation project and is seeking all types of users and contributions. Please say hello on the Apache Drill mailing list.You can also join our Google Hangouts or join our Slack Channel if you need help with using or developing Apache Drill. (More information can be found on Apache Drill website).

Export Control

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.
The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code. The following provides more details on the included cryptographic software: Java SE Security packages are used to provide support for authentication, authorization and secure sockets communication. The Jetty Web Server is used to provide communication via HTTPS. The Cyrus SASL libraries, Kerberos Libraries and OpenSSL Libraries are used to provide SASL based authentication and SSL communication.