DRILL-450: Exchange_rule. Move from BasicOptimizer to Optiq for planning purposes. Add exchange nodes to plans to parallelize.

Exchange_rule: Change default of distribution to any.

Populate the hash partitioning keys for streaming agg physical rule and add subsumes logic for hash partitioning.

Rebase on latest changes in optiq-opt2 branch, added round robin and broadcast distribution, updated subsumes.

Exchange_rule: Change Distribution trait. Use distribution in MergeJoin. Add testcase for OB/GB with same/different keys.

Exchange_rule : Modify ProjectPrule by checking RelNode associated with RelSubset to exclude "ANY" for input. Modify Distribution trait convert so that if source is "ANY" is not allowed.

Exchange_rule: change to project/agg rel because of optiq's recent change of copy() method in the two Rel classes.

Populate the hash partitioning keys for streaming agg physical rule and add subsumes logic for hash partitioning.

Conflicts:
	exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java

Rebase on latest changes in optiq-opt2 branch, added round robin and broadcast distribution, updated subsumes.

Conflicts:
	exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java

Added initial plan generation capability to PhysicalPlanCreator.  Modified a few selected Prels to create physical operators.  Refactored all classes in planner.common to be abstract based classes for classes in planner.logical and planner.physical.

Conflicts:
	exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillProjectRelBase.java
	exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java

Create physical operator for union exchange.

Exchange_rule: run simple query 's generated physical plan through QS. Reverse change to Foreman.

Exchange_rule : SortPrel, SingleMergeExchangePrel, HashToRandomPrel - get physical operators.

More WIP for HashToRandomExchange, SingleMergeExchange, StreamAgg.

Use optiq 0.6-SNAPSHOT.  Planner is provided with a list of RelTraitDefs to register.

Minor code change due to Optiq 0.6-SNAPSHOT change.

Rename ConnectionConfig to DrillConnectionConfig due to optiq-0.6-SNAPSHOT add an interface with same name.

Exchange_rule : generate physical plan with more cases.

Check SelectionVectorMode and insert SelectionVectorRemover when required in the physical plan after optiq optimizer call.

CherryPick from Aman's optiq-opt2 branch for MergeJoin op code.

Exchange_rule: Modify merge join prel class. Generate distributed physical plan for merge join query.

Temp fix to resolve complier error, due to rebase.  Need re-work on this.

Resolve compiler error related to DrillTable and InfoSchemaDrillTable due to rebase on master branch.

Use Foreman to run the physical plan generated from PhysicalPlanCreator.

Exchange_rule : Put getSVMode() to PhysicalOperator. Use Foreman to run distributed physical plan.

modify junit test case for distributed query.

Fix a memory leak issue in streaming-agg.

Modify SortPrule and ScreenPrule. Only screen requires singleton trait.

Exchange_rule : merge trait work in progress. Debug join issue.

Temp fix for join by removing star column.

Change traitDef order.  Modify sort and project rule. Add physical filter and it's rule.

Add more unit test query to test order by, group by, where, and join.

Add hash function over varchar type, to support GROUP BY KEY is a VARCHAR field.

Minor change to unit test cases. Some cases are ignored, due to bug in physical ops.

Add physical limit Rel and Rule. Add unit test case to test select with limit.

Drill-450: insert distributed exchange operators.

Modify unit test case. Add sample parquet  data.

rework code due to change in the master branch, in particular, for the function registry change.

Work to resolve issues due to rebase.

Modify InfoSchema to support query from InfoSchema table.

Put back the test case related InfoSchema.

Drill-450 : minor change to unit test case. Remove some rule or Prel classes.

Fix a JsonRecordReaderTest test case failure.

DRILL-450 : code clear up.

DRILL-450: Minor change to unit testcase due to rebase on master.

DRILL-450 : fix memory leak in Limit operator.

DRILL-450 : Minor change due to optiq-0.6-SNAPSHOT change.

Fix merge join issue when either of its input is empty.

DRILL-450: resolve merge issue for hbase.

exchange experiment

Conflicts:
	exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java

DRILL-450 : ignore tpch query test.

DRILL-450 : code clean up. Modify code based on comments.

DRILL-450 : code clean up.

DRILL-450: reverse change to sqlline.