Fix compilation errors after merge
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/1327c726 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/1327c726 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/1327c726 Branch: refs/heads/calcite Commit: 1327c726aebf5940ef13d334193d56e0e562f2cc Parents: b586007 b2fb04b Author: maryannxue <wei....@intel.com> Authored: Thu Jul 2 17:00:44 2015 -0400 Committer: maryannxue <wei....@intel.com> Committed: Thu Jul 2 17:00:44 2015 -0400 ---------------------------------------------------------------------- .gitignore | 2 + bin/phoenix_utils.py | 10 +- phoenix-assembly/pom.xml | 4 + phoenix-assembly/src/build/server.xml | 1 + .../phoenix/end2end/AbsFunctionEnd2EndIT.java | 108 +++ .../apache/phoenix/end2end/AlterTableIT.java | 553 ++++++++++++- .../phoenix/end2end/ArrayAppendFunctionIT.java | 17 - .../phoenix/end2end/ArrayConcatFunctionIT.java | 578 +++++++++++++ .../phoenix/end2end/ArrayFillFunctionIT.java | 531 ++++++++++++ .../phoenix/end2end/ArraysWithNullsIT.java | 2 +- .../org/apache/phoenix/end2end/BaseViewIT.java | 2 + .../phoenix/end2end/CSVCommonsLoaderIT.java | 18 +- .../phoenix/end2end/CbrtFunctionEnd2EndIT.java | 143 ++++ .../phoenix/end2end/End2EndTestDriver.java | 19 +- .../phoenix/end2end/ExpFunctionEnd2EndIT.java | 128 +++ .../phoenix/end2end/LnLogFunctionEnd2EndIT.java | 143 ++++ .../phoenix/end2end/PhoenixMetricsIT.java | 147 ---- .../phoenix/end2end/PowerFunctionEnd2EndIT.java | 144 ++++ .../end2end/QueryDatabaseMetaDataIT.java | 31 + .../phoenix/end2end/RowValueConstructorIT.java | 28 + .../end2end/TenantSpecificTablesDDLIT.java | 40 +- .../org/apache/phoenix/end2end/UpgradeIT.java | 332 ++++++++ .../phoenix/end2end/UserDefinedFunctionsIT.java | 34 +- .../java/org/apache/phoenix/end2end/ViewIT.java | 99 +++ .../apache/phoenix/execute/PartialCommitIT.java | 1 + .../phoenix/mapreduce/CsvBulkLoadToolIT.java | 19 + .../apache/phoenix/mapreduce/IndexToolIT.java | 47 +- .../phoenix/monitoring/PhoenixMetricsIT.java | 815 +++++++++++++++++++ .../org/apache/phoenix/rpc/UpdateCacheIT.java | 139 ++++ phoenix-core/src/it/resources/hbase-default.xml | 36 - phoenix-core/src/it/resources/hbase-site.xml | 36 + phoenix-core/src/main/antlr3/PhoenixSQL.g | 3 +- .../apache/phoenix/cache/ServerCacheClient.java | 7 + .../rel/PhoenixToEnumerableConverter.java | 9 +- .../apache/phoenix/compile/DeleteCompiler.java | 50 +- .../MutatingParallelIteratorFactory.java | 51 +- .../apache/phoenix/compile/QueryCompiler.java | 2 +- .../org/apache/phoenix/compile/QueryPlan.java | 3 + .../phoenix/compile/StatementContext.java | 49 +- .../apache/phoenix/compile/TraceQueryPlan.java | 9 +- .../apache/phoenix/compile/UpsertCompiler.java | 80 +- .../apache/phoenix/compile/WhereOptimizer.java | 28 +- .../coprocessor/MetaDataEndpointImpl.java | 549 ++++++++++--- .../phoenix/coprocessor/MetaDataProtocol.java | 4 +- .../coprocessor/generated/PTableProtos.java | 103 ++- .../phoenix/exception/SQLExceptionCode.java | 2 - .../apache/phoenix/execute/AggregatePlan.java | 11 +- .../apache/phoenix/execute/BaseQueryPlan.java | 14 +- .../phoenix/execute/ClientAggregatePlan.java | 5 +- .../phoenix/execute/ClientProcessingPlan.java | 9 + .../apache/phoenix/execute/ClientScanPlan.java | 5 +- .../phoenix/execute/DegenerateQueryPlan.java | 3 +- .../apache/phoenix/execute/HashJoinPlan.java | 16 +- .../apache/phoenix/execute/MutationState.java | 290 ++++--- .../org/apache/phoenix/execute/ScanPlan.java | 7 +- .../phoenix/execute/SortMergeJoinPlan.java | 13 +- .../phoenix/execute/TupleProjectionPlan.java | 11 +- .../org/apache/phoenix/execute/UnionPlan.java | 14 +- .../phoenix/expression/ExpressionType.java | 18 +- .../expression/function/AbsFunction.java | 66 ++ .../function/ArrayAppendFunction.java | 53 +- .../function/ArrayConcatFunction.java | 83 ++ .../expression/function/ArrayFillFunction.java | 79 ++ .../function/ArrayModifierFunction.java | 155 +++- .../function/ArrayPrependFunction.java | 54 +- .../expression/function/CbrtFunction.java | 55 ++ .../expression/function/ExpFunction.java | 55 ++ .../function/JavaMathOneArgumentFunction.java | 43 +- .../function/JavaMathTwoArgumentFunction.java | 69 ++ .../phoenix/expression/function/LnFunction.java | 55 ++ .../expression/function/LogFunction.java | 56 ++ .../expression/function/PowerFunction.java | 51 ++ .../expression/function/ScalarFunction.java | 4 +- .../expression/function/SqrtFunction.java | 8 +- .../phoenix/iterate/BaseResultIterators.java | 39 +- .../phoenix/iterate/ChunkedResultIterator.java | 21 +- .../iterate/DefaultParallelScanGrouper.java | 62 ++ .../iterate/MapReduceParallelScanGrouper.java | 45 + .../iterate/ParallelIteratorFactory.java | 4 +- .../phoenix/iterate/ParallelIterators.java | 34 +- .../phoenix/iterate/ParallelScanGrouper.java | 41 + .../iterate/RoundRobinResultIterator.java | 4 +- .../phoenix/iterate/ScanningResultIterator.java | 38 +- .../apache/phoenix/iterate/SerialIterators.java | 27 +- .../phoenix/iterate/SpoolingResultIterator.java | 49 +- .../phoenix/iterate/TableResultIterator.java | 17 +- .../phoenix/iterate/UnionResultIterators.java | 70 +- .../apache/phoenix/jdbc/PhoenixConnection.java | 27 +- .../phoenix/jdbc/PhoenixDatabaseMetaData.java | 25 +- .../apache/phoenix/jdbc/PhoenixResultSet.java | 48 +- .../apache/phoenix/jdbc/PhoenixStatement.java | 27 +- .../java/org/apache/phoenix/job/JobManager.java | 60 +- .../phoenix/mapreduce/CsvBulkLoadTool.java | 12 +- .../phoenix/mapreduce/PhoenixInputFormat.java | 6 +- .../phoenix/mapreduce/PhoenixInputSplit.java | 1 + .../phoenix/mapreduce/PhoenixRecordReader.java | 12 +- .../phoenix/mapreduce/index/IndexTool.java | 15 +- .../phoenix/memory/GlobalMemoryManager.java | 5 - .../apache/phoenix/monitoring/AtomicMetric.java | 70 ++ .../phoenix/monitoring/CombinableMetric.java | 77 ++ .../monitoring/CombinableMetricImpl.java | 77 ++ .../org/apache/phoenix/monitoring/Counter.java | 85 -- .../phoenix/monitoring/GlobalClientMetrics.java | 117 +++ .../apache/phoenix/monitoring/GlobalMetric.java | 37 + .../phoenix/monitoring/GlobalMetricImpl.java | 74 ++ .../phoenix/monitoring/MemoryMetricsHolder.java | 43 + .../org/apache/phoenix/monitoring/Metric.java | 45 +- .../apache/phoenix/monitoring/MetricType.java | 55 ++ .../phoenix/monitoring/MetricsStopWatch.java | 59 ++ .../phoenix/monitoring/MutationMetricQueue.java | 131 +++ .../phoenix/monitoring/NonAtomicMetric.java | 71 ++ .../phoenix/monitoring/OverAllQueryMetrics.java | 121 +++ .../phoenix/monitoring/PhoenixMetrics.java | 118 --- .../phoenix/monitoring/ReadMetricQueue.java | 180 ++++ .../phoenix/monitoring/SizeStatistic.java | 78 -- .../monitoring/SpoolingMetricsHolder.java | 43 + .../monitoring/TaskExecutionMetricsHolder.java | 68 ++ .../apache/phoenix/parse/FunctionParseNode.java | 9 +- .../org/apache/phoenix/parse/PFunction.java | 12 +- .../phoenix/query/BaseQueryServicesImpl.java | 2 +- .../query/ConnectionQueryServicesImpl.java | 63 +- .../apache/phoenix/query/QueryConstants.java | 30 +- .../org/apache/phoenix/query/QueryServices.java | 3 +- .../phoenix/query/QueryServicesOptions.java | 25 +- .../apache/phoenix/schema/DelegateTable.java | 5 + .../apache/phoenix/schema/MetaDataClient.java | 99 +-- .../java/org/apache/phoenix/schema/PTable.java | 1 + .../org/apache/phoenix/schema/PTableImpl.java | 40 +- .../phoenix/schema/types/PArrayDataType.java | 163 +++- .../org/apache/phoenix/schema/types/PChar.java | 3 - .../apache/phoenix/schema/types/PDecimal.java | 11 + .../phoenix/schema/types/PNumericType.java | 8 + .../phoenix/schema/types/PRealNumber.java | 8 + .../phoenix/schema/types/PWholeNumber.java | 8 + .../phoenix/trace/PhoenixMetricsSink.java | 36 +- .../java/org/apache/phoenix/util/JDBCUtil.java | 6 +- .../org/apache/phoenix/util/PhoenixRuntime.java | 175 +++- .../java/org/apache/phoenix/util/QueryUtil.java | 2 +- .../org/apache/phoenix/util/UpgradeUtil.java | 395 ++++++++- .../phoenix/util/csv/CsvUpsertExecutor.java | 5 +- .../phoenix/compile/QueryCompilerTest.java | 68 +- .../phoenix/compile/WhereCompilerTest.java | 10 +- .../phoenix/compile/WhereOptimizerTest.java | 38 + .../phoenix/expression/AbsFunctionTest.java | 180 ++++ .../expression/ArrayConcatFunctionTest.java | 584 +++++++++++++ .../expression/ArrayFillFunctionTest.java | 221 +++++ .../phoenix/expression/CbrtFunctionTest.java | 127 +++ .../phoenix/expression/ExpFunctionTest.java | 150 ++++ .../phoenix/expression/LnLogFunctionTest.java | 182 +++++ .../phoenix/expression/PowerFunctionTest.java | 182 +++++ .../iterate/SpoolingResultIteratorTest.java | 4 +- .../java/org/apache/phoenix/query/BaseTest.java | 5 +- .../phoenix/query/ConnectionlessTest.java | 14 +- .../query/ParallelIteratorsSplitTest.java | 6 + .../src/test/resources/hbase-default.xml | 36 - phoenix-pherf/pom.xml | 10 +- .../org/apache/phoenix/pherf/DataIngestIT.java | 134 ++- .../org/apache/phoenix/pherf/PherfMainIT.java | 36 + .../apache/phoenix/pherf/ResultBaseTestIT.java | 31 +- .../apache/phoenix/pherf/SchemaReaderIT.java | 17 +- .../java/org/apache/phoenix/pherf/Pherf.java | 179 ++-- .../apache/phoenix/pherf/PherfConstants.java | 8 +- .../phoenix/pherf/configuration/DataModel.java | 10 - .../phoenix/pherf/configuration/Scenario.java | 12 +- .../pherf/configuration/WriteParams.java | 72 ++ .../pherf/configuration/XMLConfigParser.java | 25 +- .../phoenix/pherf/jmx/MonitorManager.java | 153 ++-- .../phoenix/pherf/loaddata/DataLoader.java | 332 -------- .../pherf/result/DataLoadThreadTime.java | 87 +- .../pherf/result/DataLoadTimeSummary.java | 54 +- .../phoenix/pherf/result/DataModelResult.java | 68 +- .../phoenix/pherf/result/QueryResult.java | 17 +- .../phoenix/pherf/result/QuerySetResult.java | 40 +- .../org/apache/phoenix/pherf/result/Result.java | 11 +- .../phoenix/pherf/result/ResultHandler.java | 5 + .../phoenix/pherf/result/ResultManager.java | 19 +- .../apache/phoenix/pherf/result/ResultUtil.java | 119 +-- .../phoenix/pherf/result/ResultValue.java | 4 +- .../apache/phoenix/pherf/result/RunTime.java | 179 ++-- .../phoenix/pherf/result/ScenarioResult.java | 44 +- .../apache/phoenix/pherf/result/ThreadTime.java | 34 +- .../phoenix/pherf/result/file/Extension.java | 3 +- .../phoenix/pherf/result/file/Header.java | 11 +- .../pherf/result/impl/CSVResultHandler.java | 47 +- .../pherf/result/impl/ImageResultHandler.java | 58 +- .../pherf/result/impl/XMLResultHandler.java | 36 +- .../phoenix/pherf/schema/SchemaReader.java | 2 +- .../apache/phoenix/pherf/util/PhoenixUtil.java | 64 +- .../pherf/workload/MultiThreadedRunner.java | 153 ++++ .../pherf/workload/MultithreadedDiffer.java | 134 ++- .../pherf/workload/MultithreadedRunner.java | 170 ---- .../phoenix/pherf/workload/QueryExecutor.java | 459 ++++++----- .../phoenix/pherf/workload/QueryVerifier.java | 265 +++--- .../apache/phoenix/pherf/workload/Workload.java | 10 + .../pherf/workload/WorkloadExecutor.java | 109 +-- .../phoenix/pherf/workload/WriteWorkload.java | 403 +++++++++ .../scenario/prod_test_unsalted_scenario.xml | 35 + .../phoenix/pherf/ConfigurationParserTest.java | 102 ++- .../org/apache/phoenix/pherf/ResultTest.java | 5 +- .../apache/phoenix/pherf/RuleGeneratorTest.java | 37 +- .../test/resources/scenario/test_scenario.xml | 58 +- .../org/apache/phoenix/pig/util/TypeUtil.java | 392 +++++---- .../apache/phoenix/pig/util/TypeUtilTest.java | 70 ++ phoenix-spark/pom.xml | 51 +- pom.xml | 8 +- 205 files changed, 12569 insertions(+), 3425 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/1327c726/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixToEnumerableConverter.java ---------------------------------------------------------------------- diff --cc phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixToEnumerableConverter.java index 771cad9,0000000..57e5136 mode 100644,000000..100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixToEnumerableConverter.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixToEnumerableConverter.java @@@ -1,111 -1,0 +1,118 @@@ +package org.apache.phoenix.calcite.rel; + +import java.sql.SQLException; +import java.util.List; + +import org.apache.calcite.adapter.enumerable.EnumerableConvention; +import org.apache.calcite.adapter.enumerable.EnumerableRel; +import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; +import org.apache.calcite.adapter.enumerable.JavaRowFormat; +import org.apache.calcite.adapter.enumerable.PhysType; +import org.apache.calcite.adapter.enumerable.PhysTypeImpl; +import org.apache.calcite.linq4j.tree.BlockBuilder; +import org.apache.calcite.linq4j.tree.Expression; +import org.apache.calcite.linq4j.tree.Expressions; +import org.apache.calcite.linq4j.tree.MethodCallExpression; +import org.apache.calcite.linq4j.tree.ParameterExpression; +import org.apache.calcite.plan.ConventionTraitDef; +import org.apache.calcite.plan.RelOptCluster; +import org.apache.calcite.plan.RelOptCost; +import org.apache.calcite.plan.RelOptPlanner; +import org.apache.calcite.plan.RelTraitSet; +import org.apache.calcite.rel.RelNode; +import org.apache.calcite.rel.convert.ConverterImpl; +import org.apache.calcite.rel.type.RelDataType; +import org.apache.phoenix.calcite.BuiltInMethod; +import org.apache.phoenix.compile.ExplainPlan; +import org.apache.phoenix.compile.QueryPlan; +import org.apache.phoenix.compile.RowProjector; +import org.apache.phoenix.execute.DelegateQueryPlan; ++import org.apache.phoenix.iterate.DefaultParallelScanGrouper; ++import org.apache.phoenix.iterate.ParallelScanGrouper; +import org.apache.phoenix.iterate.ResultIterator; + +/** + * Scan of a Phoenix table. + */ +public class PhoenixToEnumerableConverter extends ConverterImpl implements EnumerableRel { + + public static PhoenixToEnumerableConverter create(RelNode input) { + RelOptCluster cluster = input.getCluster(); + RelTraitSet traits = input.getTraitSet().replace(EnumerableConvention.INSTANCE); + return new PhoenixToEnumerableConverter(cluster, traits, input); + } + + private PhoenixToEnumerableConverter( + RelOptCluster cluster, + RelTraitSet traits, + RelNode input) { + super(cluster, ConventionTraitDef.INSTANCE, traits, input); + } + + @Override public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) { + return create(sole(inputs)); + } + + @Override public RelOptCost computeSelfCost(RelOptPlanner planner) { + return super.computeSelfCost(planner).multiplyBy(.1); + } + + @Override + public Result implement(EnumerableRelImplementor implementor, Prefer pref) { + // Generates code that instantiates a result iterator, then converts it + // to an enumerable. + // + // ResultIterator iterator = root.get("x"); + // return CalciteRuntime.toEnumerable(iterator); + final BlockBuilder list = new BlockBuilder(); + QueryPlan plan = makePlan((PhoenixRel)getInput()); + Expression var = stash(implementor, plan, QueryPlan.class); + final RelDataType rowType = getRowType(); + final PhysType physType = + PhysTypeImpl.of( + implementor.getTypeFactory(), rowType, + pref.prefer(JavaRowFormat.ARRAY)); + final Expression iterator_ = + list.append("iterator", var); + final Expression enumerable_ = + list.append("enumerable", + Expressions.call(BuiltInMethod.TO_ENUMERABLE.method, + iterator_)); + list.add(Expressions.return_(null, enumerable_)); + return implementor.result(physType, list.toBlock()); + } + + static QueryPlan makePlan(PhoenixRel rel) { + final PhoenixRel.Implementor phoenixImplementor = new PhoenixRelImplementorImpl(); + final QueryPlan plan = phoenixImplementor.visitInput(0, rel); + return new DelegateQueryPlan(plan) { + @Override + public ResultIterator iterator() throws SQLException { - return delegate.iterator(); ++ return iterator(DefaultParallelScanGrouper.getInstance()); + } + @Override + public ExplainPlan getExplainPlan() throws SQLException { + return delegate.getExplainPlan(); + } + @Override + public RowProjector getProjector() { + return phoenixImplementor.createRowProjector(); + } ++ @Override ++ public ResultIterator iterator(ParallelScanGrouper scanGrouper) ++ throws SQLException { ++ return delegate.iterator(scanGrouper); ++ } + }; + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + static Expression stash(EnumerableRelImplementor implementor, Object o, Class clazz) { + ParameterExpression x = (ParameterExpression) implementor.stash(o, clazz); + MethodCallExpression e = + Expressions.call(implementor.getRootExpression(), + org.apache.calcite.util.BuiltInMethod.DATA_CONTEXT_GET.method, + Expressions.constant(x.name)); + return Expressions.convert_(e, clazz); + } +} http://git-wip-us.apache.org/repos/asf/phoenix/blob/1327c726/phoenix-core/src/main/java/org/apache/phoenix/execute/AggregatePlan.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/1327c726/phoenix-core/src/main/java/org/apache/phoenix/execute/HashJoinPlan.java ---------------------------------------------------------------------- diff --cc phoenix-core/src/main/java/org/apache/phoenix/execute/HashJoinPlan.java index 64cdf10,05ef1ec..ead6ec9 --- a/phoenix-core/src/main/java/org/apache/phoenix/execute/HashJoinPlan.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/execute/HashJoinPlan.java @@@ -54,6 -57,8 +57,7 @@@ import org.apache.phoenix.jdbc.PhoenixC import org.apache.phoenix.job.JobManager.JobCallable; import org.apache.phoenix.join.HashCacheClient; import org.apache.phoenix.join.HashJoinInfo; + import org.apache.phoenix.monitoring.TaskExecutionMetricsHolder; -import org.apache.phoenix.parse.FilterableStatement; import org.apache.phoenix.parse.ParseNode; import org.apache.phoenix.parse.SQLParser; import org.apache.phoenix.parse.SelectStatement; @@@ -111,16 -116,13 +115,21 @@@ public class HashJoinPlan extends Deleg this.recompileWhereClause = recompileWhereClause; } + public HashJoinInfo getJoinInfo() { + return this.joinInfo; + } + + public SubPlan[] getSubPlans() { + return this.subPlans; + } + @Override public ResultIterator iterator() throws SQLException { + return iterator(DefaultParallelScanGrouper.getInstance()); + } + + @Override + public ResultIterator iterator(ParallelScanGrouper scanGrouper) throws SQLException { int count = subPlans.length; PhoenixConnection connection = getContext().getConnection(); ConnectionQueryServices services = connection.getQueryServices(); http://git-wip-us.apache.org/repos/asf/phoenix/blob/1327c726/phoenix-core/src/main/java/org/apache/phoenix/execute/ScanPlan.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/1327c726/phoenix-core/src/main/java/org/apache/phoenix/execute/TupleProjectionPlan.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/1327c726/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/1327c726/pom.xml ----------------------------------------------------------------------