DRILL-519: Fix regression with decorrelation in tpch21 (based on updated fix for correlation bug in Optiq, allow PushFilterThroughJoin to be applied to JoinRelBase.)
DRILL-1077: OperationStats enhancements —

Add setLongStat and setDoubleStat to set metrics directly.
Remove shared HashTableMetrics class
Add ResizeTime for hash aggregate and hash join.
Not all RootExec should report the metrics in SenderStats. Break up into RootExec specific MetricDefs.
Add BYTES_SENT metric for all RootExec
Rename N_SENDERS to N_RECEIVERS
DRILL-1078: Added metrics to unordered receiver (+ renaming) and merging receiver.
DRILL-561: Implement btrim/trim

Make use of existing UTF8 function

Added test for btrim
DRILL-841: Using BigDecimal to round and truncate.
DRILL-1103: Cleanup java-exec POM to make it more eclipse friendly

* Replaced maven-antrun-plugin with maven-resource-plugin
* Altered the execution life-cycle of some of the plugin execution.
DRILL-1104: Increase MaxDirectMemorySize to 3G for unit tests
DRILL-794: Fix IOB while performing decimal subtraction
DRILL-923: Bit-wise and logical Aggregate functions
DRILL-967: Age and shift functions.
DRILL-1074: Fix computation of scale for divide function.
DRILL-1105: Fix bug in streaming aggregate when first batch is empty
DRILL-1099: Inject space (' ') as the default second argument to [lbr]trim

* Optiq already handles this for "trim".
DRILL-1085: Round up while casting to int/bigint from float/double/decimal
DRILL-1106: Fix race condition in incoming buffers
DRILL-1107: Handle case in Hash join where first batch has zero records

Handle case in merging receiver when first batch has zero records
DRILL-1102: Use same set of keys to distribute left and right side of join operator. Add option of hashing on single join key.
Drill-1091: Make filter propagate best rel's collation trait. Fix StreamingAggPrule and HashAggPrule's pattern matching to look for child RelNodes.

Added variation of TPCH 19 and enabled the modified version in test suite.
DRILL-1111: 1. Create new batch holder for hash table if an insertion fails due to space constraints in existing batch holder. 2. Use allocateNew() for hash aggr and hash table allocations. 3. Create new output batch if output values fails the first time due to space constraints. 4. Use splitAndTransfer to transfer the keys from hash table's container to the output batch.
DRILL-1098: Add test for trim(), substring() function.
Actual fix is in OPTIQ-331