DRILL 354: Hive storage engine - Phase 1
DRILL-357: Hive Storage Engine phase 2 - hive record reader
DRILL-257: Move SQL parsing to server side.
Switch to Avatica based JDBC driver.
Update QuerySubmitter to support SQL queries.
Update SqlAccesors to support getObject()
Remove ref, clean up SQL packages some.
Various performance fixes.  Updating result set so first set of results must be returned before control is return to client to allow metadata to populate for aggressive tools like sqlline
Move timeout functionality to TestTools.
Update Expression materializer so that it will return a nullable int if a field is not found.
Update Project record batch to support simple wildcard queries.
Updates to move JSON record reader test to expecting VarCharVector.getObject to return a String rather than a byte[].
DRILL-315: Parquet/JSON selective column read, parquet performance evaluation code from Jacques. Requested columns are specified in physical plans, logical scan operations will be modified by the optimizer as it analyzes the rest of the query graph to decide which columns are needed. This still needs to be added to the optimizer.
Integrate new SQL changes with Hive storage engine, moving to automatic file detection.  Rename storage engine to storage plugin. Separate storage plugins from format plugins, updating Parquet and JSON to format engines. Refactor distribution logic and enable use within JSON format and all EasyFormatPlugins.
DRILL-320: Rework math functions to use code generated using free marker.

Contains implementation for basic functions: +, -, *, /

Signed-off-by: Jacques Nadeau <jacques@apache.org>
DRILL-366: While casting VarChar to BigInt make sure the getByte() method is invoked with the appropriate byte offset.

CastFunctionsSrcVarLen.java:
Use in.start as starting index to invoke getBytes() instead of 0. We always end up with the same row when we use 0

TestCastVarCharToBigInt.java, *.json
Added a test case to read varchar and convert it to BigInt.

Signed-off-by: Jacques Nadeau <jacques@apache.org>
DRILL-364: Fix VarChar casting
DRILL-363: Custom null handling in hash functions

Added custom null handling for hash functions, to override the privies NULL_IF_NULL handling. Added Integer and Float literals to the logical expression package and corresponding methods in the various visitor implementations. Also added new Hash functions for double and float values based on the doubleToLongBits and floatToIntBits methods in the corresponding boxed primitive classes together with the previously used murmur3_128 hash algorithm used for plain Ints and Longs.

Signed-off-by: Jacques Nadeau <jacques@apache.org>
DRILL-375: VarBinary hash function computing hash for entire buffer

Signed-off-by: Jacques Nadeau <jacques@apache.org>
DRILL-376: Create separate DataTunnel for receiving fragment

Signed-off-by: Jacques Nadeau <jacques@apache.org>
DRILL-377: Use BufferedInputStream in SpoolingRawBatchBuffer to improve performance

Signed-off-by: Jacques Nadeau <jacques@apache.org>
DRILL-378: Initialize overLimit field in UnlimitedRawBatchBuffer

Signed-off-by: Jacques Nadeau <jacques@apache.org>
DRILL-366, DRILL-364: Small fixes due to merge issues
Add support for generating optiq planner independent schema plus root for information schema purposes.
Implement storage plugin for INFORMATION_SCHEMA
Update hive to use generated data instead of packaged data. Remove unused test.
Change FileSelection variable name to selection (instead of file, which is not an accurate description)

fix bug when selecting a parquet directory with _metadata file.

handle case where parquet directory does not have _metadata file.
INSTALL.md and packaging fixes given recent merges.
Merge upstream/master into aggr_branch.