Fix compilation errors and assertion failures
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/9309fff7 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/9309fff7 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/9309fff7 Branch: refs/heads/calcite Commit: 9309fff7ee1dadbfa4e9956662caaa4131561138 Parents: 2368ea6 3fb3bb4 Author: maryannxue <wei....@intel.com> Authored: Thu Apr 16 10:31:13 2015 -0400 Committer: maryannxue <wei....@intel.com> Committed: Thu Apr 16 10:31:13 2015 -0400 ---------------------------------------------------------------------- .gitignore | 5 + NOTICE | 5 + bin/end2endTest.py | 3 +- bin/performance.py | 13 +- bin/psql.py | 3 +- phoenix-assembly/pom.xml | 8 +- phoenix-assembly/src/build/client.xml | 4 +- .../src/build/components-major-client.xml | 2 + .../src/build/components/all-common-files.xml | 11 +- .../src/build/components/all-common-jars.xml | 11 + .../src/build/server-without-antlr.xml | 2 + phoenix-assembly/src/build/server.xml | 2 + phoenix-core/pom.xml | 11 +- .../wal/ReadWriteKeyValuesWithCodecIT.java | 14 +- ...ReplayWithIndexWritesAndCompressedWALIT.java | 34 +- .../apache/phoenix/end2end/AlterSessionIT.java | 92 +++ .../phoenix/end2end/ArithmeticQueryIT.java | 88 +++ .../phoenix/end2end/ArrayAppendFunctionIT.java | 667 +++++++++++++++++++ .../org/apache/phoenix/end2end/ArrayIT.java | 12 +- .../org/apache/phoenix/end2end/BaseViewIT.java | 1 + .../end2end/ClientTimeArithmeticQueryIT.java | 10 +- .../phoenix/end2end/CoalesceFunctionIT.java | 2 +- .../end2end/ConvertTimezoneFunctionIT.java | 42 +- .../org/apache/phoenix/end2end/DateTimeIT.java | 637 ++++++++++++++++++ .../apache/phoenix/end2end/DerivedTableIT.java | 4 +- .../phoenix/end2end/EncodeFunctionIT.java | 12 +- .../org/apache/phoenix/end2end/HashJoinIT.java | 10 - .../apache/phoenix/end2end/InstrFunctionIT.java | 126 ++++ .../org/apache/phoenix/end2end/KeyOnlyIT.java | 2 +- .../phoenix/end2end/LikeExpressionIT.java | 88 +++ .../org/apache/phoenix/end2end/NotQueryIT.java | 8 +- .../org/apache/phoenix/end2end/OrderByIT.java | 396 ++++++++++- .../phoenix/end2end/PhoenixMetricsIT.java | 151 +++++ .../end2end/QueryDatabaseMetaDataIT.java | 217 +++--- .../phoenix/end2end/QueryWithLimitIT.java | 2 +- .../end2end/RegexpReplaceFunctionIT.java | 100 +++ .../phoenix/end2end/RegexpSubstrFunctionIT.java | 43 +- .../RoundFloorCeilFunctionsEnd2EndIT.java | 114 ++++ .../phoenix/end2end/RowValueConstructorIT.java | 33 +- .../phoenix/end2end/SignFunctionEnd2EndIT.java | 141 ++++ .../phoenix/end2end/StatsCollectorIT.java | 1 + .../StatsCollectorWithSplitsAndMultiCFIT.java | 7 + .../org/apache/phoenix/end2end/SubqueryIT.java | 8 +- .../end2end/SubqueryUsingSortMergeJoinIT.java | 20 +- .../end2end/TimezoneOffsetFunctionIT.java | 39 +- .../phoenix/end2end/ToDateFunctionIT.java | 57 ++ .../org/apache/phoenix/end2end/UnionAllIT.java | 648 ++++++++++++++++++ .../phoenix/end2end/VariableLengthPKIT.java | 6 +- .../index/GlobalIndexOptimizationIT.java | 11 +- .../index/ImmutableIndexWithStatsIT.java | 89 +++ .../end2end/index/IndexExpressionIT.java | 165 +++-- .../phoenix/end2end/index/IndexHandlerIT.java | 12 +- .../phoenix/end2end/index/LocalIndexIT.java | 32 +- .../end2end/index/MutableIndexFailureIT.java | 6 +- .../index/balancer/IndexLoadBalancerIT.java | 6 +- .../EndToEndCoveredColumnsIndexBuilderIT.java | 8 +- .../apache/phoenix/mapreduce/IndexToolIT.java | 296 ++++++++ .../apache/phoenix/rpc/PhoenixClientRpcIT.java | 113 ++++ .../apache/phoenix/rpc/PhoenixServerRpcIT.java | 232 +++++++ .../TestPhoenixIndexRpcSchedulerFactory.java | 64 ++ .../phoenix/trace/PhoenixTraceReaderIT.java | 2 +- .../phoenix/trace/PhoenixTracingEndToEndIT.java | 57 +- phoenix-core/src/main/antlr3/PhoenixSQL.g | 155 ++--- .../hbase/ipc/PhoenixIndexRpcScheduler.java | 120 ---- .../hadoop/hbase/ipc/PhoenixRpcScheduler.java | 129 ++++ .../hbase/ipc/PhoenixRpcSchedulerFactory.java | 95 +++ .../controller/ClientRpcControllerFactory.java | 60 ++ .../ipc/controller/IndexRpcController.java | 51 ++ .../ipc/controller/MetadataRpcController.java | 55 ++ .../controller/ServerRpcControllerFactory.java | 62 ++ .../regionserver/IndexHalfStoreFileReader.java | 48 +- .../IndexHalfStoreFileReaderGenerator.java | 14 +- .../regionserver/IndexSplitTransaction.java | 30 +- .../hbase/regionserver/KeyValueSkipListSet.java | 183 +++++ .../hbase/regionserver/LocalIndexMerger.java | 4 +- .../hbase/regionserver/LocalIndexSplitter.java | 29 +- .../apache/phoenix/cache/JodaTimezoneCache.java | 84 +++ .../calcite/rules/PhoenixClientJoinRule.java | 33 +- .../phoenix/compile/CreateTableCompiler.java | 37 + .../apache/phoenix/compile/DeleteCompiler.java | 2 +- .../phoenix/compile/ExpressionCompiler.java | 15 +- .../apache/phoenix/compile/FromCompiler.java | 6 +- .../apache/phoenix/compile/GroupByCompiler.java | 56 +- .../apache/phoenix/compile/JoinCompiler.java | 4 +- .../apache/phoenix/compile/OrderByCompiler.java | 50 +- .../phoenix/compile/OrderPreservingTracker.java | 259 +++++++ .../phoenix/compile/PostIndexDDLCompiler.java | 38 +- .../apache/phoenix/compile/QueryCompiler.java | 69 +- .../phoenix/compile/StatementNormalizer.java | 2 +- .../phoenix/compile/SubqueryRewriter.java | 19 +- .../phoenix/compile/SubselectRewriter.java | 5 +- .../apache/phoenix/compile/TraceQueryPlan.java | 33 +- .../TrackOrderPreservingExpressionCompiler.java | 249 ------- .../apache/phoenix/compile/UnionCompiler.java | 88 +++ .../apache/phoenix/compile/WhereOptimizer.java | 34 +- .../coprocessor/BaseScannerRegionObserver.java | 6 +- .../coprocessor/MetaDataEndpointImpl.java | 2 +- .../phoenix/coprocessor/MetaDataProtocol.java | 4 +- .../coprocessor/SequenceRegionObserver.java | 2 +- .../UngroupedAggregateRegionObserver.java | 8 +- .../exception/DataExceedsCapacityException.java | 40 ++ .../phoenix/exception/SQLExceptionCode.java | 9 +- .../ValueTypeIncompatibleException.java | 36 - .../apache/phoenix/execute/AggregatePlan.java | 1 + .../apache/phoenix/execute/BaseQueryPlan.java | 8 +- .../apache/phoenix/execute/MutationState.java | 38 +- .../org/apache/phoenix/execute/UnionPlan.java | 190 ++++++ .../expression/ByteBasedLikeExpression.java | 48 ++ .../expression/DecimalAddExpression.java | 4 +- .../expression/DecimalDivideExpression.java | 4 +- .../expression/DecimalMultiplyExpression.java | 4 +- .../expression/DecimalSubtractExpression.java | 4 +- .../phoenix/expression/ExpressionType.java | 42 +- .../phoenix/expression/LikeExpression.java | 64 +- .../expression/StringBasedLikeExpression.java | 48 ++ .../function/ArrayAppendFunction.java | 127 ++++ .../ByteBasedRegexpReplaceFunction.java | 40 ++ .../function/ByteBasedRegexpSplitFunction.java | 38 ++ .../function/ByteBasedRegexpSubstrFunction.java | 38 ++ .../function/ConvertTimezoneFunction.java | 38 +- .../expression/function/DayOfMonthFunction.java | 83 +++ .../expression/function/HourFunction.java | 81 +++ .../expression/function/InstrFunction.java | 105 +++ .../expression/function/MinuteFunction.java | 81 +++ .../expression/function/MonthFunction.java | 83 +++ .../expression/function/NowFunction.java | 48 ++ .../expression/function/RandomFunction.java | 17 + .../function/RegexpReplaceFunction.java | 38 +- .../function/RegexpSplitFunction.java | 54 +- .../function/RegexpSubstrFunction.java | 48 +- .../expression/function/SecondFunction.java | 81 +++ .../expression/function/SignFunction.java | 74 ++ .../StringBasedRegexpReplaceFunction.java | 40 ++ .../StringBasedRegexpSplitFunction.java | 38 ++ .../StringBasedRegexpSubstrFunction.java | 38 ++ .../function/TimezoneOffsetFunction.java | 25 +- .../expression/function/WeekFunction.java | 83 +++ .../expression/function/YearFunction.java | 82 +++ .../util/regex/AbstractBasePattern.java | 33 + .../util/regex/AbstractBaseSplitter.java | 24 + .../expression/util/regex/GuavaSplitter.java | 54 ++ .../expression/util/regex/JONIPattern.java | 201 ++++++ .../expression/util/regex/JavaPattern.java | 93 +++ .../visitor/CloneExpressionVisitor.java | 3 +- .../filter/SingleKeyValueComparisonFilter.java | 4 +- .../phoenix/hbase/index/IndexQosCompat.java | 98 --- .../index/IndexQosRpcControllerFactory.java | 86 --- .../org/apache/phoenix/hbase/index/Indexer.java | 10 +- .../hbase/index/balancer/IndexLoadBalancer.java | 7 +- .../covered/CoveredColumnsIndexBuilder.java | 2 +- .../hbase/index/covered/data/IndexMemStore.java | 27 +- .../index/covered/data/LazyValueGetter.java | 5 +- .../index/covered/example/CoveredColumn.java | 6 +- .../example/CoveredColumnIndexCodec.java | 6 +- .../filter/ApplyAndFilterDeletesFilter.java | 8 +- .../index/covered/update/ColumnReference.java | 131 ++-- .../ipc/PhoenixIndexRpcSchedulerFactory.java | 91 --- .../index/scanner/FilteredKeyValueScanner.java | 26 +- .../phoenix/hbase/index/scanner/Scanner.java | 5 +- .../hbase/index/scanner/ScannerBuilder.java | 12 +- .../index/table/CoprocessorHTableFactory.java | 20 - .../hbase/index/util/IndexManagementUtil.java | 40 -- .../index/util/ReadOnlyImmutableBytesPtr.java | 59 ++ .../hbase/index/wal/IndexedKeyValue.java | 17 - .../apache/phoenix/index/IndexMaintainer.java | 11 +- .../phoenix/iterate/BaseResultIterators.java | 15 +- .../apache/phoenix/iterate/ExplainTable.java | 89 +-- .../iterate/MergeSortTopNResultIterator.java | 3 - .../phoenix/iterate/ParallelIterators.java | 7 +- .../phoenix/iterate/ScanningResultIterator.java | 24 +- .../phoenix/iterate/SpoolingResultIterator.java | 9 +- .../phoenix/iterate/UnionResultIterators.java | 109 +++ .../apache/phoenix/jdbc/PhoenixConnection.java | 19 +- .../phoenix/jdbc/PhoenixDatabaseMetaData.java | 3 +- .../phoenix/jdbc/PhoenixPreparedStatement.java | 3 +- .../apache/phoenix/jdbc/PhoenixResultSet.java | 10 +- .../apache/phoenix/jdbc/PhoenixStatement.java | 116 +++- .../java/org/apache/phoenix/job/JobManager.java | 146 +++- .../phoenix/mapreduce/CsvBulkImportUtil.java | 6 +- .../phoenix/mapreduce/CsvBulkLoadTool.java | 19 +- .../phoenix/mapreduce/CsvToKeyValueMapper.java | 42 +- .../phoenix/mapreduce/PhoenixInputFormat.java | 22 +- .../phoenix/mapreduce/PhoenixJobCounters.java | 29 + .../phoenix/mapreduce/PhoenixRecordWriter.java | 2 +- .../phoenix/mapreduce/index/IndexTool.java | 302 +++++++++ .../mapreduce/index/PhoenixIndexDBWritable.java | 91 +++ .../index/PhoenixIndexImportMapper.java | 133 ++++ .../phoenix/mapreduce/util/ConnectionUtil.java | 82 ++- .../util/PhoenixConfigurationUtil.java | 93 ++- .../mapreduce/util/PhoenixMapReduceUtil.java | 22 +- .../phoenix/memory/GlobalMemoryManager.java | 8 +- .../org/apache/phoenix/monitoring/Counter.java | 85 +++ .../org/apache/phoenix/monitoring/Metric.java | 64 ++ .../phoenix/monitoring/PhoenixMetrics.java | 118 ++++ .../phoenix/monitoring/SizeStatistic.java | 78 +++ .../apache/phoenix/optimize/QueryOptimizer.java | 2 +- .../phoenix/parse/AlterSessionStatement.java | 38 ++ .../phoenix/parse/CreateIndexStatement.java | 8 +- .../parse/IndexExpressionParseNodeRewriter.java | 30 +- .../apache/phoenix/parse/LiteralParseNode.java | 5 + .../apache/phoenix/parse/ParseNodeFactory.java | 149 ++++- .../apache/phoenix/parse/ParseNodeRewriter.java | 5 +- .../phoenix/parse/RegexpReplaceParseNode.java | 55 ++ .../phoenix/parse/RegexpSplitParseNode.java | 55 ++ .../phoenix/parse/RegexpSubstrParseNode.java | 55 ++ .../apache/phoenix/parse/SelectStatement.java | 49 +- .../apache/phoenix/parse/TraceStatement.java | 12 +- .../parse/UpdateStatisticsStatement.java | 11 +- .../phoenix/query/BaseQueryServicesImpl.java | 3 +- .../query/ConnectionQueryServicesImpl.java | 3 +- .../org/apache/phoenix/query/HTableFactory.java | 3 +- .../apache/phoenix/query/QueryConstants.java | 2 + .../org/apache/phoenix/query/QueryServices.java | 14 +- .../phoenix/query/QueryServicesOptions.java | 41 +- .../schema/ConstraintViolationException.java | 18 +- .../phoenix/schema/IllegalDataException.java | 18 +- .../apache/phoenix/schema/MetaDataClient.java | 31 +- .../org/apache/phoenix/schema/PTableImpl.java | 7 +- .../org/apache/phoenix/schema/RowKeySchema.java | 39 +- .../schema/stats/StatisticsCollector.java | 21 +- .../phoenix/schema/types/PArrayDataType.java | 176 +++++ .../apache/phoenix/schema/types/PBinary.java | 6 +- .../org/apache/phoenix/schema/types/PChar.java | 8 +- .../apache/phoenix/schema/types/PDataType.java | 3 +- .../apache/phoenix/schema/types/PDecimal.java | 18 +- .../apache/phoenix/schema/types/PDouble.java | 12 +- .../org/apache/phoenix/schema/types/PFloat.java | 9 +- .../apache/phoenix/schema/types/PInteger.java | 9 +- .../org/apache/phoenix/schema/types/PLong.java | 13 +- .../phoenix/schema/types/PNumericType.java | 44 ++ .../phoenix/schema/types/PRealNumber.java | 39 ++ .../apache/phoenix/schema/types/PSmallint.java | 9 +- .../apache/phoenix/schema/types/PTinyint.java | 11 +- .../phoenix/schema/types/PUnsignedDouble.java | 9 +- .../phoenix/schema/types/PUnsignedFloat.java | 5 +- .../phoenix/schema/types/PUnsignedInt.java | 5 +- .../phoenix/schema/types/PUnsignedLong.java | 16 +- .../phoenix/schema/types/PUnsignedSmallint.java | 5 +- .../schema/types/PUnsignedTimestamp.java | 2 +- .../phoenix/schema/types/PUnsignedTinyint.java | 5 +- .../phoenix/schema/types/PWholeNumber.java | 35 + .../apache/phoenix/trace/TraceMetricSource.java | 15 +- .../org/apache/phoenix/trace/TraceReader.java | 2 +- .../apache/phoenix/trace/TracingIterator.java | 2 +- .../org/apache/phoenix/trace/TracingUtils.java | 2 +- .../org/apache/phoenix/trace/util/NullSpan.java | 10 +- .../org/apache/phoenix/trace/util/Tracing.java | 51 +- .../org/apache/phoenix/util/ColumnInfo.java | 20 +- .../java/org/apache/phoenix/util/DateUtil.java | 19 +- .../phoenix/util/DefaultEnvironmentEdge.java | 34 + .../apache/phoenix/util/EnvironmentEdge.java | 34 + .../phoenix/util/EnvironmentEdgeManager.java | 74 ++ .../java/org/apache/phoenix/util/IndexUtil.java | 28 +- .../java/org/apache/phoenix/util/JDBCUtil.java | 42 +- .../org/apache/phoenix/util/MetaDataUtil.java | 22 +- .../org/apache/phoenix/util/PhoenixRuntime.java | 16 +- .../java/org/apache/phoenix/util/QueryUtil.java | 46 +- .../java/org/apache/phoenix/util/ScanUtil.java | 19 +- .../org/apache/phoenix/util/SchemaUtil.java | 16 +- .../org/apache/phoenix/util/StringUtil.java | 73 +- .../phoenix/util/csv/CsvUpsertExecutor.java | 5 + .../hbase/ipc/PhoenixIndexRpcSchedulerTest.java | 20 +- .../PhoenixIndexRpcSchedulerFactoryTest.java | 106 --- .../PhoenixRpcSchedulerFactoryTest.java | 125 ++++ .../phoenix/cache/JodaTimezoneCacheTest.java | 53 ++ .../phoenix/compile/QueryCompilerTest.java | 179 ++++- .../phoenix/compile/QueryMetaDataTest.java | 11 + .../phoenix/compile/QueryOptimizerTest.java | 13 +- .../phoenix/compile/WhereOptimizerTest.java | 72 +- .../expression/ArithmeticOperationTest.java | 16 +- .../expression/ArrayAppendFunctionTest.java | 345 ++++++++++ .../phoenix/expression/ILikeExpressionTest.java | 32 +- .../phoenix/expression/LikeExpressionTest.java | 39 +- .../expression/RegexpReplaceFunctionTest.java | 81 +++ .../expression/RegexpSplitFunctionTest.java | 94 +++ .../expression/RegexpSubstrFunctionTest.java | 83 +++ .../phoenix/expression/SignFunctionTest.java | 124 ++++ .../expression/SortOrderExpressionTest.java | 12 +- .../expression/function/InstrFunctionTest.java | 108 +++ .../util/regex/PatternPerformanceTest.java | 144 ++++ .../index/covered/TestLocalTableState.java | 8 +- .../index/covered/data/TestIndexMemStore.java | 5 +- .../index/write/TestWALRecoveryCaching.java | 14 +- .../recovery/TestPerRegionIndexWriteCache.java | 15 +- .../apache/phoenix/jdbc/PhoenixTestDriver.java | 5 +- .../mapreduce/CsvBulkImportUtilTest.java | 14 +- .../mapreduce/CsvToKeyValueMapperTest.java | 26 +- .../util/PhoenixConfigurationUtilTest.java | 60 +- .../apache/phoenix/parse/QueryParserTest.java | 31 +- .../java/org/apache/phoenix/query/BaseTest.java | 30 +- .../org/apache/phoenix/query/QueryPlanTest.java | 2 - .../phoenix/schema/types/PDataTypeTest.java | 2 + .../phoenix/trace/TraceMetricsSourceTest.java | 4 +- .../org/apache/phoenix/util/ColumnInfoTest.java | 8 +- .../org/apache/phoenix/util/JDBCUtilTest.java | 15 + .../apache/phoenix/util/MetaDataUtilTest.java | 18 +- .../org/apache/phoenix/util/QueryUtilTest.java | 2 +- .../org/apache/phoenix/util/StringUtilTest.java | 32 +- .../java/org/apache/phoenix/util/TestUtil.java | 28 +- phoenix-flume/pom.xml | 6 +- phoenix-pherf/README.md | 105 +++ phoenix-pherf/cluster/pherf.sh | 33 + .../config/datamodel/user_defined_schema.sql | 27 + phoenix-pherf/config/env.sh | 32 + phoenix-pherf/config/pherf.properties | 31 + .../config/scenario/user_defined_scenario.xml | 134 ++++ phoenix-pherf/pom.xml | 290 ++++++++ phoenix-pherf/src/main/assembly/cluster.xml | 52 ++ phoenix-pherf/src/main/assembly/standalone.xml | 52 ++ .../java/org/apache/phoenix/pherf/Pherf.java | 201 ++++++ .../apache/phoenix/pherf/PherfConstants.java | 63 ++ .../phoenix/pherf/configuration/Column.java | 210 ++++++ .../phoenix/pherf/configuration/DataModel.java | 75 +++ .../pherf/configuration/DataOverride.java | 36 + .../pherf/configuration/DataSequence.java | 23 + .../pherf/configuration/DataTypeMapping.java | 46 ++ .../pherf/configuration/ExecutionType.java | 23 + .../phoenix/pherf/configuration/Query.java | 136 ++++ .../phoenix/pherf/configuration/QuerySet.java | 130 ++++ .../phoenix/pherf/configuration/Scenario.java | 163 +++++ .../pherf/configuration/XMLConfigParser.java | 157 +++++ .../pherf/exception/FileLoaderException.java | 28 + .../exception/FileLoaderRuntimeException.java | 28 + .../phoenix/pherf/exception/PherfException.java | 30 + .../pherf/exception/PherfRuntimeException.java | 30 + .../phoenix/pherf/jmx/MonitorDetails.java | 50 ++ .../phoenix/pherf/jmx/MonitorManager.java | 173 +++++ .../java/org/apache/phoenix/pherf/jmx/Stat.java | 32 + .../jmx/monitors/CPULoadAverageMonitor.java | 33 + .../pherf/jmx/monitors/ExampleMonitor.java | 33 + .../pherf/jmx/monitors/FreeMemoryMonitor.java | 30 + .../GarbageCollectorElapsedTimeMonitor.java | 44 ++ .../pherf/jmx/monitors/HeapMemoryMonitor.java | 32 + .../pherf/jmx/monitors/MaxMemoryMonitor.java | 30 + .../phoenix/pherf/jmx/monitors/Monitor.java | 30 + .../jmx/monitors/NonHeapMemoryMonitor.java | 32 + .../ObjectPendingFinalizationCountMonitor.java | 33 + .../pherf/jmx/monitors/ThreadMonitor.java | 32 + .../pherf/jmx/monitors/TotalMemoryMonitor.java | 30 + .../phoenix/pherf/loaddata/DataLoader.java | 365 ++++++++++ .../pherf/result/DataLoadThreadTime.java | 95 +++ .../pherf/result/DataLoadTimeSummary.java | 84 +++ .../phoenix/pherf/result/DataModelResult.java | 77 +++ .../phoenix/pherf/result/QueryResult.java | 141 ++++ .../phoenix/pherf/result/QuerySetResult.java | 47 ++ .../org/apache/phoenix/pherf/result/Result.java | 54 ++ .../phoenix/pherf/result/ResultHandler.java | 37 + .../phoenix/pherf/result/ResultManager.java | 103 +++ .../apache/phoenix/pherf/result/ResultUtil.java | 271 ++++++++ .../phoenix/pherf/result/ResultValue.java | 40 ++ .../apache/phoenix/pherf/result/RunTime.java | 114 ++++ .../phoenix/pherf/result/ScenarioResult.java | 47 ++ .../apache/phoenix/pherf/result/ThreadTime.java | 141 ++++ .../phoenix/pherf/result/file/Extension.java | 38 ++ .../phoenix/pherf/result/file/Header.java | 41 ++ .../pherf/result/file/ResultFileDetails.java | 46 ++ .../pherf/result/impl/CSVResultHandler.java | 139 ++++ .../pherf/result/impl/ImageResultHandler.java | 127 ++++ .../pherf/result/impl/XMLResultHandler.java | 103 +++ .../apache/phoenix/pherf/rules/DataValue.java | 89 +++ .../phoenix/pherf/rules/RulesApplier.java | 377 +++++++++++ .../phoenix/pherf/schema/SchemaReader.java | 97 +++ .../apache/phoenix/pherf/util/PhoenixUtil.java | 199 ++++++ .../apache/phoenix/pherf/util/ResourceList.java | 214 ++++++ .../phoenix/pherf/util/RowCalculator.java | 78 +++ .../pherf/workload/MultithreadedDiffer.java | 113 ++++ .../pherf/workload/MultithreadedRunner.java | 170 +++++ .../phoenix/pherf/workload/QueryExecutor.java | 246 +++++++ .../phoenix/pherf/workload/QueryVerifier.java | 195 ++++++ .../pherf/workload/WorkloadExecutor.java | 115 ++++ .../datamodel/create_prod_test_unsalted.sql | 33 + phoenix-pherf/src/main/resources/hbase-site.xml | 25 + .../scenario/prod_test_unsalted_scenario.xml | 342 ++++++++++ .../phoenix/pherf/BaseTestWithCluster.java | 67 ++ .../org/apache/phoenix/pherf/ColumnTest.java | 50 ++ .../phoenix/pherf/ConfigurationParserTest.java | 200 ++++++ .../apache/phoenix/pherf/DataIngestTest.java | 78 +++ .../apache/phoenix/pherf/DataLoaderTest.java | 108 +++ .../org/apache/phoenix/pherf/PherfTest.java | 67 ++ .../org/apache/phoenix/pherf/ResourceTest.java | 68 ++ .../org/apache/phoenix/pherf/ResultTest.java | 209 ++++++ .../apache/phoenix/pherf/RuleGeneratorTest.java | 213 ++++++ .../apache/phoenix/pherf/SchemaReaderTest.java | 73 ++ .../apache/phoenix/pherf/TestHBaseProps.java | 35 + .../test/resources/datamodel/test_schema.sql | 31 + phoenix-pherf/src/test/resources/hbase-site.xml | 25 + .../src/test/resources/pherf.test.properties | 47 ++ .../test/resources/scenario/test_scenario.xml | 161 +++++ phoenix-pherf/standalone/pherf.sh | 28 + phoenix-pig/pom.xml | 2 +- .../pig/util/QuerySchemaParserFunction.java | 2 +- .../pig/util/SqlQueryToColumnInfoFunction.java | 2 +- .../pig/util/PhoenixPigSchemaUtilTest.java | 1 + phoenix-protocol/src/main/PGuidePosts.proto | 20 + phoenix-spark/README.md | 147 ++++ phoenix-spark/pom.xml | 545 +++++++++++++++ phoenix-spark/src/it/resources/log4j.xml | 70 ++ phoenix-spark/src/it/resources/setup.sql | 35 + .../apache/phoenix/spark/PhoenixSparkIT.scala | 417 ++++++++++++ .../phoenix/spark/ConfigurationUtil.scala | 65 ++ .../phoenix/spark/DataFrameFunctions.scala | 51 ++ .../apache/phoenix/spark/DefaultSource.scala | 41 ++ .../org/apache/phoenix/spark/PhoenixRDD.scala | 168 +++++ .../phoenix/spark/PhoenixRecordWritable.scala | 89 +++ .../apache/phoenix/spark/PhoenixRelation.scala | 80 +++ .../phoenix/spark/ProductRDDFunctions.scala | 51 ++ .../phoenix/spark/SparkContextFunctions.scala | 41 ++ .../spark/SparkSqlContextFunctions.scala | 39 ++ .../org/apache/phoenix/spark/package.scala | 36 + pom.xml | 30 +- 410 files changed, 23696 insertions(+), 2366 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/phoenix-core/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/phoenix-core/src/main/java/org/apache/phoenix/calcite/rules/PhoenixClientJoinRule.java ---------------------------------------------------------------------- diff --cc phoenix-core/src/main/java/org/apache/phoenix/calcite/rules/PhoenixClientJoinRule.java index 99ba81f,0000000..9558209 mode 100644,000000..100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rules/PhoenixClientJoinRule.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rules/PhoenixClientJoinRule.java @@@ -1,55 -1,0 +1,64 @@@ +package org.apache.phoenix.calcite.rules; + +import java.util.Iterator; +import java.util.List; + +import org.apache.calcite.plan.RelOptRule; +import org.apache.calcite.plan.RelOptRuleCall; ++import org.apache.calcite.plan.RelTraitSet; +import org.apache.calcite.rel.RelCollation; ++import org.apache.calcite.rel.RelCollationTraitDef; +import org.apache.calcite.rel.RelCollations; +import org.apache.calcite.rel.RelFieldCollation; +import org.apache.calcite.rel.RelFieldCollation.Direction; +import org.apache.calcite.rel.RelFieldCollation.NullDirection; +import org.apache.calcite.rel.RelNode; +import org.apache.calcite.rel.core.JoinInfo; +import org.apache.phoenix.calcite.rel.PhoenixClientJoin; +import org.apache.phoenix.calcite.rel.PhoenixClientSort; +import org.apache.phoenix.calcite.rel.PhoenixJoin; +import org.apache.phoenix.calcite.rel.PhoenixRel; ++ +import com.google.common.collect.Lists; + +public class PhoenixClientJoinRule extends RelOptRule { + + public static PhoenixClientJoinRule INSTANCE = new PhoenixClientJoinRule(); + + public PhoenixClientJoinRule() { + super(operand(PhoenixJoin.class, any()), "PhoenixClientJoinRule"); + } + + @Override + public void onMatch(RelOptRuleCall call) { + PhoenixJoin join = call.rel(0); + RelNode left = join.getLeft(); + RelNode right = join.getRight(); + JoinInfo joinInfo = JoinInfo.of(left, right, join.getCondition()); + - List<RelFieldCollation> leftFieldCollations = Lists.newArrayList(); - for (Iterator<Integer> iter = joinInfo.leftKeys.iterator(); iter.hasNext();) { - leftFieldCollations.add(new RelFieldCollation(iter.next(), Direction.ASCENDING,NullDirection.FIRST)); - } - RelCollation leftCollation = RelCollations.of(leftFieldCollations); - RelNode newLeft = new PhoenixClientSort(left.getCluster(), left.getTraitSet().replace(PhoenixRel.CONVENTION).replace(leftCollation), left, leftCollation, null, null); - - List<RelFieldCollation> rightFieldCollations = Lists.newArrayList(); - for (Iterator<Integer> iter = joinInfo.rightKeys.iterator(); iter.hasNext();) { - rightFieldCollations.add(new RelFieldCollation(iter.next(), Direction.ASCENDING,NullDirection.FIRST)); ++ RelNode newLeft = left; ++ RelNode newRight = right; ++ if (!joinInfo.leftKeys.isEmpty()) { ++ List<RelFieldCollation> leftFieldCollations = Lists.newArrayList(); ++ for (Iterator<Integer> iter = joinInfo.leftKeys.iterator(); iter.hasNext();) { ++ leftFieldCollations.add(new RelFieldCollation(iter.next(), Direction.ASCENDING,NullDirection.FIRST)); ++ } ++ RelCollation leftCollation = RelCollationTraitDef.INSTANCE.canonize(RelCollations.of(leftFieldCollations)); ++ RelTraitSet leftTraitSet = left.getTraitSet().replace(PhoenixRel.CONVENTION).replace(leftCollation); ++ newLeft = new PhoenixClientSort(left.getCluster(), leftTraitSet, left, leftCollation, null, null); ++ ++ List<RelFieldCollation> rightFieldCollations = Lists.newArrayList(); ++ for (Iterator<Integer> iter = joinInfo.rightKeys.iterator(); iter.hasNext();) { ++ rightFieldCollations.add(new RelFieldCollation(iter.next(), Direction.ASCENDING,NullDirection.FIRST)); ++ } ++ RelCollation rightCollation = RelCollationTraitDef.INSTANCE.canonize(RelCollations.of(rightFieldCollations)); ++ RelTraitSet rightTraitSet = right.getTraitSet().replace(PhoenixRel.CONVENTION).replace(rightCollation); ++ newRight = new PhoenixClientSort(right.getCluster(), rightTraitSet, right, rightCollation, null, null); + } - RelCollation rightCollation = RelCollations.of(rightFieldCollations); - RelNode newRight = new PhoenixClientSort(right.getCluster(), right.getTraitSet().replace(PhoenixRel.CONVENTION).replace(rightCollation), right, rightCollation, null, null); + + call.transformTo(new PhoenixClientJoin(join.getCluster(), + join.getTraitSet(), newLeft, newRight, join.getCondition(), + join.getJoinType(), join.getVariablesStopped())); + } + +} http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/phoenix-core/src/main/java/org/apache/phoenix/execute/AggregatePlan.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/phoenix-core/src/main/java/org/apache/phoenix/parse/SelectStatement.java ---------------------------------------------------------------------- diff --cc phoenix-core/src/main/java/org/apache/phoenix/parse/SelectStatement.java index 4b4e7a3,44b24af..87b944b --- a/phoenix-core/src/main/java/org/apache/phoenix/parse/SelectStatement.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/parse/SelectStatement.java @@@ -35,13 -36,6 +36,13 @@@ import org.apache.phoenix.parse.Functio * @since 0.1 */ public class SelectStatement implements FilterableStatement { + public static final SelectStatement SELECT_STAR = + new SelectStatement( + null, null, false, + Collections.<AliasedNode>singletonList(new AliasedNode(null, WildcardParseNode.INSTANCE)), + null, Collections.<ParseNode>emptyList(), + null, Collections.<OrderByNode>emptyList(), - null, 0, false, false); ++ null, 0, false, false, Collections.<SelectStatement>emptyList()); public static final SelectStatement SELECT_ONE = new SelectStatement( null, null, false, http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/phoenix-core/src/test/java/org/apache/phoenix/util/TestUtil.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/9309fff7/pom.xml ---------------------------------------------------------------------- diff --cc pom.xml index de50aae,977218d..d89899c --- a/pom.xml +++ b/pom.xml @@@ -102,12 -100,12 +104,13 @@@ <findbugs.version>1.3.2</findbugs.version> <jline.version>2.11</jline.version> <snappy.version>0.3</snappy.version> - <netty.version>3.6.6.Final</netty.version> + <netty.version>4.0.23.Final</netty.version> <commons-codec.version>1.7</commons-codec.version> - <htrace.version>2.04</htrace.version> + <htrace.version>3.1.0-incubating</htrace.version> <collections.version>3.2.1</collections.version> - <jodatime.version>2.3</jodatime.version> + <jodatime.version>2.7</jodatime.version> + <joni.version>2.1.2</joni.version> + <calcite.version>1.2.0-incubating</calcite.version> <!-- Test Dependencies --> <mockito-all.version>1.8.5</mockito-all.version>