DRILL-281 Add broadcast sender
Add a unit test case using TPCH related queries.
DRILL-316: Implement explicit casting
Includes following changes:

Parse syntax to support explicit cast function in physical or logical plan.

prototype of explicit casting : parsing from plan's expr, and call generated cast code.

Prototype of explicit cast with unit test.

explicit cast: create different cast for type with fixed size vs with var size.

explicit cast : minor change in comments, varname, etc.

Drill-316 : explicit cast. change func def for cast with var size.

Drill-316: minor change in unit test case for explicit cast.

Drill-316 : modify the function def for cast functions.

DRILL-316: prototype impl of cast from/to var-length type.

Dirll-316 : add test case for explicit cast.

Drill-316: explicit cast into varchar type from int, bigint, float4, float8. unit test physical plan added.

Drill-316: change parser syntax for explicit cast. Add more test case physical plans.

DRILL-316: explict cast. Use functiom template to generate all cast functions. Currently, excplict
cast supports cast between int, bigint, float4, float8, varchar, varbinary. (total 30 combinations).

Drill-316: explict cast - add test case for nested cast functions.

Drill-316: minor change to function template for explicit cast.

DRILL-316: add junit test case for explict cast, using 7 json physical plans.

DRILL-316: explict cast. remove a test json file.

DRILL-316: explicit cast. add a json testcase.

DRILL-316: check return type for function resolution. delete two un-needed test json files.

Drill-316: code change for review comment 1 and 2.

Drill-316: address review comment 3.

Drill-316: address testcase comments.

Drill-316: Decode byte array directly into int/long, when cast varchar/varbinary into int/bigint.

Drill-316: minor change to grammer rule for cast.
DRILL-259: Implicit cast precedence work

Includes following changes:
Created resolvers and mini precedence map

changed operator resolution by adding getCost method

Updated precedence map for operator resolution - typecast

Modified DrillFuncHolder:getCost() to allow null arguments type in cast

Cast Null arg precedence

Added type cast rules : isCastable()

Added type cast rules : isCastable()
DRILL-259: Implicit cast functionality

Includes following changes:

Implicit cast : WIP.

Implicit cast: work in progress 2.

implicit_cast: workin in progress 3.

implicit cast : work in progress. Prototype works.

Implicit cast: add unit testcase. Handle null vs non-null type.

Implicit cast: add unit test. change comparision operator's allsame from true to false.

Drill-259: implicit cast. Rebase on Drill-316 explicit cast branch.

DRILL-259: implicit cast . reverse change to codegenerator.

DRILL-259: implicit cast. code clean.

DRILL-259: code clean.

Drill-259: add apache license to 7 new java files. reverse the change to pom.xml

Drill-259: minor change to test case.

Drill-259: implicit cast - process NullExpression. Convert NullExpression into TypedNullConstant.

Drill-259: implicit cast. Revise according to review comments.
DRILL-334: Subdivide Drillbit control and data messages. Add support for socket backpressure.  Add TopLevel and Child memory allocator with debug mode to capture memory leaks.  Various memory leak fixes to get build to complete.

Also includes fixes from reviews by Tim.
DRILL-352: Extract ClassGenerator from CodeGenerator.  Use hierarchal set of ClassGenerators to support implementation of an arbitrarily complex inner class hierarchy.  Introduce @RuntimeOveridden annotation to allow overrides of inner classes without requiring abstract inner classes.  Update operators to use methods.  Add test for inner class generation.  Remove support for JDK based compilation, focusing entirely on Janino based compilation.
Remove unused logical def classes
Add travis configuration
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>