You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by td...@apache.org on 2018/01/19 18:03:58 UTC

[50/50] [abbrv] phoenix git commit: Merge branch 'PHOENIX-3534' into system-catalog

Merge branch 'PHOENIX-3534' into system-catalog


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/15d4dace
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/15d4dace
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/15d4dace

Branch: refs/heads/system-catalog
Commit: 15d4dace4169009ac4fd11261d6c8cc72905fcec
Parents: ae359fe 41f8142
Author: Thomas D'Silva <td...@apache.org>
Authored: Fri Jan 19 10:00:46 2018 -0800
Committer: Thomas D'Silva <td...@apache.org>
Committed: Fri Jan 19 10:00:46 2018 -0800

----------------------------------------------------------------------
 .gitignore                                      |    2 +
 LICENSE                                         |   43 +-
 NOTICE                                          |    2 +
 bin/argparse-1.4.0/argparse.py                  | 2392 ++++++++++++
 bin/daemon.py                                   |   16 +-
 bin/queryserver.py                              |    2 +-
 bin/sqlline-thin.py                             |    9 +-
 bin/sqlline.py                                  |   14 +-
 dev/make_rc.sh                                  |   26 +-
 dev/release_files/LICENSE                       |    2 +
 dev/release_files/NOTICE                        |    8 +
 dev/test-patch.properties                       |    7 +-
 dev/test-patch.sh                               |   66 +-
 phoenix-assembly/pom.xml                        |    2 +-
 phoenix-client/pom.xml                          |    2 +-
 phoenix-core/pom.xml                            |   19 +-
 .../wal/ReadWriteKeyValuesWithCodecIT.java      |  184 -
 .../wal/WALRecoveryRegionPostOpenIT.java        |  330 ++
 ...ReplayWithIndexWritesAndCompressedWALIT.java |   18 +-
 .../org/apache/phoenix/end2end/AggregateIT.java | 1012 +++++
 .../phoenix/end2end/AggregateQueryIT.java       |   23 +-
 .../AlterMultiTenantTableWithViewsIT.java       |  118 +-
 .../apache/phoenix/end2end/AlterTableIT.java    | 1249 +------
 .../phoenix/end2end/AlterTableWithViewsIT.java  |  223 +-
 .../org/apache/phoenix/end2end/Array1IT.java    | 1004 +++++
 .../org/apache/phoenix/end2end/Array2IT.java    |  815 +++++
 .../org/apache/phoenix/end2end/Array3IT.java    |  770 ++++
 .../phoenix/end2end/ArrayAppendFunctionIT.java  |   42 +-
 .../phoenix/end2end/ArrayConcatFunctionIT.java  |   39 +-
 .../org/apache/phoenix/end2end/ArrayIT.java     | 2731 +-------------
 .../phoenix/end2end/AutoPartitionViewsIT.java   |   22 +-
 .../phoenix/end2end/AutomaticRebuildIT.java     |  219 --
 .../end2end/BaseClientManagedTimeIT.java        |   79 -
 .../org/apache/phoenix/end2end/BaseJoinIT.java  |  456 ---
 .../phoenix/end2end/BasePermissionsIT.java      |  754 ++++
 .../org/apache/phoenix/end2end/BaseQueryIT.java |  169 +-
 .../end2end/BaseUniqueNamesOwnClusterIT.java    |    5 -
 .../apache/phoenix/end2end/CaseStatementIT.java |   56 +-
 .../apache/phoenix/end2end/CastAndCoerceIT.java |   20 +-
 .../phoenix/end2end/ChangePermissionsIT.java    |  270 ++
 .../phoenix/end2end/ClientManagedTimeTest.java  |   42 -
 .../end2end/ClientTimeArithmeticQueryIT.java    |  808 ----
 .../phoenix/end2end/CoalesceFunctionIT.java     |   76 +-
 .../phoenix/end2end/CollationKeyFunctionIT.java |  181 +
 ...mnEncodedImmutableNonTxStatsCollectorIT.java |   39 +
 ...olumnEncodedImmutableTxStatsCollectorIT.java |   38 +
 ...lumnEncodedMutableNonTxStatsCollectorIT.java |   38 +
 .../ColumnEncodedMutableTxStatsCollectorIT.java |   38 +
 .../end2end/ColumnProjectionOptimizationIT.java |   70 +-
 .../phoenix/end2end/ConcurrentMutationsIT.java  |  730 ++++
 .../ConnectionQueryServicesTestImpl.java        |    4 +-
 .../phoenix/end2end/ConnectionUtilIT.java       |   10 -
 .../phoenix/end2end/ContextClassloaderIT.java   |    9 -
 .../phoenix/end2end/CostBasedDecisionIT.java    |  466 +++
 .../CountDistinctApproximateHyperLogLogIT.java  |  154 +
 .../apache/phoenix/end2end/CreateSchemaIT.java  |   86 +-
 .../apache/phoenix/end2end/CreateTableIT.java   |  924 +++--
 .../phoenix/end2end/CsvBulkLoadToolIT.java      |   38 +
 .../CursorWithRowValueConstructorIT.java        |  672 ++++
 .../phoenix/end2end/CustomEntityDataIT.java     |   75 +-
 .../phoenix/end2end/DateArithmeticIT.java       |  309 ++
 .../org/apache/phoenix/end2end/DateTimeIT.java  |  347 +-
 .../phoenix/end2end/DefaultColumnValueIT.java   |   10 +-
 .../org/apache/phoenix/end2end/DeleteIT.java    |  216 +-
 .../apache/phoenix/end2end/DerivedTableIT.java  |  340 +-
 .../apache/phoenix/end2end/DistinctCountIT.java |  118 +-
 .../apache/phoenix/end2end/DropSchemaIT.java    |   80 +-
 .../phoenix/end2end/EncodeFunctionIT.java       |   20 +
 .../phoenix/end2end/ExecuteStatementsIT.java    |    4 +-
 .../end2end/ExplainPlanWithStatsDisabledIT.java |  259 ++
 .../end2end/ExplainPlanWithStatsEnabledIT.java  | 1107 ++++++
 .../phoenix/end2end/ExtendedQueryExecIT.java    |   30 +-
 .../phoenix/end2end/FirstValuesFunctionIT.java  |  638 ++++
 .../phoenix/end2end/FlappingAlterTableIT.java   |    4 +-
 .../phoenix/end2end/FlappingLocalIndexIT.java   |   79 +-
 .../apache/phoenix/end2end/FunkyNamesIT.java    |   47 +-
 .../apache/phoenix/end2end/GroupByCaseIT.java   |  948 -----
 .../org/apache/phoenix/end2end/GroupByIT.java   |  397 +-
 .../org/apache/phoenix/end2end/HashJoinIT.java  | 3456 ------------------
 .../phoenix/end2end/HashJoinLocalIndexIT.java   |  128 -
 .../apache/phoenix/end2end/HashJoinMoreIT.java  |  909 -----
 .../org/apache/phoenix/end2end/InListIT.java    |   13 +-
 .../org/apache/phoenix/end2end/InQueryIT.java   |  247 ++
 .../apache/phoenix/end2end/IndexExtendedIT.java |  401 +-
 .../phoenix/end2end/IndexScrutinyToolIT.java    |  759 ++++
 .../end2end/IndexToolForPartialBuildIT.java     |   81 +-
 ...olForPartialBuildWithNamespaceEnabledIT.java |   22 +-
 .../org/apache/phoenix/end2end/IndexToolIT.java |  309 ++
 .../apache/phoenix/end2end/IntArithmeticIT.java |  214 ++
 .../phoenix/end2end/LastValuesFunctionIT.java   |  640 ++++
 .../phoenix/end2end/LikeExpressionIT.java       |  149 +-
 .../phoenix/end2end/LocalIndexSplitMergeIT.java |  266 ++
 .../phoenix/end2end/MetaDataEndPointIT.java     |   55 +
 .../MigrateSystemTablesToSystemNamespaceIT.java |  410 +++
 .../phoenix/end2end/MultiCfQueryExecIT.java     |   69 +
 .../apache/phoenix/end2end/MutableQueryIT.java  |  424 ---
 .../apache/phoenix/end2end/MutationStateIT.java |  161 +
 .../phoenix/end2end/NativeHBaseTypesIT.java     |  151 +-
 ...mnEncodedImmutableNonTxStatsCollectorIT.java |   38 +
 ...olumnEncodedImmutableTxStatsCollectorIT.java |   38 +
 .../org/apache/phoenix/end2end/NotQueryIT.java  |   25 +-
 .../NotQueryWithGlobalImmutableIndexesIT.java   |   42 +
 .../NotQueryWithLocalImmutableIndexesIT.java    |   42 +
 .../phoenix/end2end/NthValueFunctionIT.java     |  154 +
 .../java/org/apache/phoenix/end2end/NullIT.java |  157 +
 .../phoenix/end2end/NumericArithmeticIT.java    |  426 +++
 .../end2end/OctetLengthFunctionEnd2EndIT.java   |    9 +-
 .../phoenix/end2end/OnDuplicateKeyIT.java       |   39 +-
 .../phoenix/end2end/ParallelRunListener.java    |   42 -
 .../end2end/ParallelStatsDisabledIT.java        |    8 +-
 .../phoenix/end2end/ParallelStatsEnabledIT.java |   14 +-
 .../PartialResultServerConfigurationIT.java     |  148 +
 .../PartialScannerResultsDisabledIT.java        |  193 +
 .../apache/phoenix/end2end/PercentileIT.java    |  168 +-
 .../apache/phoenix/end2end/PhoenixDriverIT.java |  160 +
 .../phoenix/end2end/PhoenixRuntimeIT.java       |    1 -
 .../phoenix/end2end/PointInTimeQueryIT.java     |  246 +-
 .../phoenix/end2end/ProductMetricsIT.java       | 1031 ++----
 .../end2end/QueryDatabaseMetaDataIT.java        | 1697 ++++-----
 .../phoenix/end2end/QueryExecWithoutSCNIT.java  |    3 +-
 .../org/apache/phoenix/end2end/QueryIT.java     |  378 +-
 .../org/apache/phoenix/end2end/QueryMoreIT.java |   40 +-
 .../phoenix/end2end/QueryWithOffsetIT.java      |   10 +-
 .../phoenix/end2end/QueryWithTableSampleIT.java |  305 ++
 .../org/apache/phoenix/end2end/RangeScanIT.java |  281 ++
 .../phoenix/end2end/ReadIsolationLevelIT.java   |   46 +-
 .../end2end/RebuildIndexConnectionPropsIT.java  |  130 +
 .../phoenix/end2end/RoundFloorCeilFuncIT.java   |   21 +-
 .../apache/phoenix/end2end/RowTimestampIT.java  |  369 ++
 .../phoenix/end2end/RowValueConstructorIT.java  |  365 +-
 .../org/apache/phoenix/end2end/ScanQueryIT.java |  439 ---
 .../end2end/SequenceBulkAllocationIT.java       |  551 ++-
 .../org/apache/phoenix/end2end/SequenceIT.java  |  973 ++---
 .../apache/phoenix/end2end/SetPropertyIT.java   | 1022 ++++++
 .../end2end/SetPropertyOnEncodedTableIT.java    |   34 +
 .../end2end/SetPropertyOnNonEncodedTableIT.java |   34 +
 .../apache/phoenix/end2end/SkipScanQueryIT.java |   88 +
 .../apache/phoenix/end2end/SortMergeJoinIT.java | 2563 -------------
 .../phoenix/end2end/SortMergeJoinMoreIT.java    |  135 +
 .../org/apache/phoenix/end2end/SortOrderIT.java |   11 +-
 .../phoenix/end2end/SpillableGroupByIT.java     |    2 +-
 .../phoenix/end2end/StatsCollectorIT.java       |  648 ----
 .../apache/phoenix/end2end/StoreNullsIT.java    |   80 +-
 .../phoenix/end2end/StoreNullsPropIT.java       |    2 +-
 .../org/apache/phoenix/end2end/StringIT.java    |   60 +
 .../org/apache/phoenix/end2end/SubqueryIT.java  |  788 ----
 .../end2end/SubqueryUsingSortMergeJoinIT.java   |  566 ---
 ...SysTableNamespaceMappedStatsCollectorIT.java |   21 +-
 .../apache/phoenix/end2end/SystemCatalogIT.java |   96 +
 .../phoenix/end2end/SystemCatalogUpgradeIT.java |  121 +
 .../end2end/SystemTablePermissionsIT.java       |   88 +
 .../phoenix/end2end/TableDDLPermissionsIT.java  |  233 ++
 .../end2end/TableSnapshotReadsMapReduceIT.java  |  234 ++
 .../apache/phoenix/end2end/TenantIdTypeIT.java  |    6 +-
 .../end2end/TenantSpecificTablesDDLIT.java      |    5 +-
 .../end2end/TenantSpecificViewIndexIT.java      |    8 +-
 .../phoenix/end2end/ToNumberFunctionIT.java     |  273 +-
 .../java/org/apache/phoenix/end2end/TopNIT.java |   64 +-
 .../phoenix/end2end/TruncateFunctionIT.java     |   26 +-
 .../UngroupedAggregateRegionObserverIT.java     |  171 +
 .../org/apache/phoenix/end2end/UngroupedIT.java |  244 ++
 .../apache/phoenix/end2end/UnnestArrayIT.java   |   99 +-
 .../UpdateCacheAcrossDifferentClientsIT.java    |  337 ++
 .../org/apache/phoenix/end2end/UpgradeIT.java   |  395 +-
 .../phoenix/end2end/UpsertBigValuesIT.java      |   72 +-
 .../apache/phoenix/end2end/UpsertSelectIT.java  |  705 ++--
 .../apache/phoenix/end2end/UpsertValuesIT.java  |  492 +--
 .../phoenix/end2end/UserDefinedFunctionsIT.java |   11 +-
 .../phoenix/end2end/VariableLengthPKIT.java     | 1171 +++---
 .../java/org/apache/phoenix/end2end/ViewIT.java |  252 +-
 .../phoenix/end2end/index/BaseIndexIT.java      | 1215 ++++++
 .../phoenix/end2end/index/BaseLocalIndexIT.java |    9 +-
 .../index/ChildViewsUseParentViewIndexIT.java   |    7 +-
 .../phoenix/end2end/index/DropColumnIT.java     |   26 +-
 .../index/GlobalImmutableNonTxIndexIT.java      |   38 +
 .../end2end/index/GlobalImmutableTxIndexIT.java |   38 +
 .../index/GlobalMutableNonTxIndexIT.java        |   38 +
 .../end2end/index/GlobalMutableTxIndexIT.java   |   38 +
 .../phoenix/end2end/index/ImmutableIndexIT.java |  149 +-
 .../end2end/index/IndexExpressionIT.java        | 1552 --------
 .../phoenix/end2end/index/IndexHandlerIT.java   |  166 -
 .../apache/phoenix/end2end/index/IndexIT.java   | 1150 ------
 .../end2end/index/IndexMaintenanceIT.java       |  444 +++
 .../phoenix/end2end/index/IndexMetadataIT.java  |  132 +-
 .../phoenix/end2end/index/IndexTestUtil.java    |    2 +-
 .../phoenix/end2end/index/IndexUsageIT.java     |  775 ++++
 .../index/IndexWithTableSchemaChangeIT.java     |  692 ++++
 .../index/LocalImmutableNonTxIndexIT.java       |   38 +
 .../end2end/index/LocalImmutableTxIndexIT.java  |   38 +
 .../phoenix/end2end/index/LocalIndexIT.java     |  143 +-
 .../end2end/index/LocalMutableNonTxIndexIT.java |   38 +
 .../end2end/index/LocalMutableTxIndexIT.java    |   37 +
 .../end2end/index/MutableIndexFailureIT.java    |  373 +-
 .../phoenix/end2end/index/MutableIndexIT.java   |  162 +-
 .../index/MutableIndexReplicationIT.java        |   13 -
 .../index/MutableIndexSplitForwardScanIT.java   |   34 +
 .../end2end/index/MutableIndexSplitIT.java      |  182 +
 .../index/MutableIndexSplitReverseScanIT.java   |   34 +
 .../end2end/index/PartialIndexRebuilderIT.java  | 1035 ++++++
 .../end2end/index/ReadOnlyIndexFailureIT.java   |  291 --
 .../phoenix/end2end/index/ViewIndexIT.java      |   41 +-
 .../apache/phoenix/end2end/join/BaseJoinIT.java |  473 +++
 .../phoenix/end2end/join/HashJoinCacheIT.java   |  101 +
 .../end2end/join/HashJoinGlobalIndexIT.java     |  399 ++
 .../apache/phoenix/end2end/join/HashJoinIT.java | 2316 ++++++++++++
 .../end2end/join/HashJoinLocalIndexIT.java      |  528 +++
 .../phoenix/end2end/join/HashJoinMoreIT.java    |  915 +++++
 .../phoenix/end2end/join/HashJoinNoIndexIT.java |  391 ++
 .../join/SortMergeJoinGlobalIndexIT.java        |   84 +
 .../phoenix/end2end/join/SortMergeJoinIT.java   | 2431 ++++++++++++
 .../end2end/join/SortMergeJoinLocalIndexIT.java |   84 +
 .../end2end/join/SortMergeJoinNoIndexIT.java    |   66 +
 .../apache/phoenix/end2end/join/SubqueryIT.java |  788 ++++
 .../join/SubqueryUsingSortMergeJoinIT.java      |  566 +++
 .../phoenix/end2end/salted/SaltedTableIT.java   |  103 +-
 .../apache/phoenix/execute/PartialCommitIT.java |   36 +-
 .../UpsertSelectOverlappingBatchesIT.java       |  306 ++
 .../FailForUnsupportedHBaseVersionsIT.java      |    6 +-
 .../EndToEndCoveredColumnsIndexBuilderIT.java   |  346 --
 .../example/EndToEndCoveredIndexingIT.java      |  903 -----
 .../EndtoEndIndexingWithCompressionIT.java      |   45 -
 .../covered/example/FailWithoutRetriesIT.java   |  143 -
 .../DelayedTableResultIteratorFactory.java      |   22 +-
 .../phoenix/iterate/ScannerLeaseRenewalIT.java  |    9 -
 .../phoenix/monitoring/PhoenixMetricsIT.java    |  302 +-
 .../SystemCatalogWALEntryFilterIT.java          |   85 +-
 .../apache/phoenix/rpc/PhoenixClientRpcIT.java  |    1 -
 .../apache/phoenix/rpc/PhoenixServerRpcIT.java  |  111 +-
 .../org/apache/phoenix/rpc/UpdateCacheIT.java   |   32 +-
 .../phoenix/rpc/UpdateCacheWithScnIT.java       |   49 -
 .../phoenix/schema/stats/StatsCollectorIT.java  |  832 +++++
 .../apache/phoenix/trace/BaseTracingTestIT.java |  149 +-
 .../phoenix/trace/DelegateConnection.java       |  324 --
 .../phoenix/trace/DisableableMetricsWriter.java |   84 -
 .../trace/PhoenixTableMetricsWriterIT.java      |   45 +-
 .../phoenix/trace/PhoenixTraceReaderIT.java     |  180 -
 .../phoenix/trace/PhoenixTracingEndToEndIT.java |  243 +-
 .../phoenix/tx/FlappingTransactionIT.java       |   43 +-
 .../phoenix/tx/ParameterizedTransactionIT.java  |   15 +-
 .../org/apache/phoenix/tx/TransactionIT.java    |   44 +-
 .../org/apache/phoenix/tx/TxCheckpointIT.java   |   81 +-
 .../apache/phoenix/util/IndexScrutinyIT.java    |  106 +
 phoenix-core/src/main/antlr3/PhoenixSQL.g       |   90 +-
 .../hadoop/hbase/ipc/PhoenixRpcScheduler.java   |   10 +
 .../org/apache/hadoop/hbase/ipc/RpcUtil.java    |   32 +
 .../ipc/controller/IndexRpcController.java      |    6 +
 ...erRegionServerIndexRpcControllerFactory.java |   65 +
 ...egionServerMetadataRpcControllerFactory.java |   62 +
 .../ipc/controller/MetadataRpcController.java   |    5 +
 .../controller/ServerRpcControllerFactory.java  |   42 +-
 .../DataTableLocalIndexRegionScanner.java       |   74 +-
 .../IndexHalfStoreFileReaderGenerator.java      |   17 +-
 .../hadoop/hbase/regionserver/ScanInfoUtil.java |   35 +
 .../hbase/regionserver/ScannerContextUtil.java  |   41 +
 .../org/apache/phoenix/cache/GlobalCache.java   |    4 +-
 .../phoenix/cache/IndexMetaDataCache.java       |    7 +-
 .../org/apache/phoenix/cache/NoOpCache.java     |   93 +
 .../apache/phoenix/cache/ServerCacheClient.java |  368 +-
 .../apache/phoenix/cache/TenantCacheImpl.java   |    2 +
 .../phoenix/compile/AggregationManager.java     |   18 +-
 .../phoenix/compile/BaseMutationPlan.java       |   20 +
 .../phoenix/compile/CloseStatementCompiler.java |   56 +
 .../ColumnNameTrackingExpressionCompiler.java   |   46 +
 .../phoenix/compile/CreateTableCompiler.java    |   24 +-
 .../phoenix/compile/DeclareCursorCompiler.java  |   75 +
 .../phoenix/compile/DelegateMutationPlan.java   |   20 +
 .../apache/phoenix/compile/DeleteCompiler.java  | 1095 +++---
 .../phoenix/compile/ExpressionCompiler.java     |    2 +-
 .../apache/phoenix/compile/FromCompiler.java    |  159 +-
 .../apache/phoenix/compile/JoinCompiler.java    |   51 +-
 .../phoenix/compile/ListJarsQueryPlan.java      |   26 +-
 .../apache/phoenix/compile/MutationPlan.java    |    5 +-
 .../phoenix/compile/OpenStatementCompiler.java  |   56 +
 .../phoenix/compile/OrderPreservingTracker.java |    2 +-
 .../apache/phoenix/compile/PostDDLCompiler.java |    4 +-
 .../phoenix/compile/PostIndexDDLCompiler.java   |    9 +-
 .../compile/PostLocalIndexDDLCompiler.java      |    2 +-
 .../phoenix/compile/ProjectionCompiler.java     |   57 +-
 .../apache/phoenix/compile/QueryCompiler.java   |    6 +-
 .../org/apache/phoenix/compile/QueryPlan.java   |    6 +-
 .../org/apache/phoenix/compile/ScanRanges.java  |   32 +-
 .../phoenix/compile/StatementContext.java       |    4 +-
 .../apache/phoenix/compile/StatementPlan.java   |   19 +
 .../phoenix/compile/SubselectRewriter.java      |  137 +-
 .../apache/phoenix/compile/TraceQueryPlan.java  |   26 +-
 .../compile/TupleProjectionCompiler.java        |    8 +-
 .../apache/phoenix/compile/UnionCompiler.java   |   11 +-
 .../apache/phoenix/compile/UpsertCompiler.java  | 1179 +++---
 .../apache/phoenix/compile/WhereCompiler.java   |   54 +-
 .../apache/phoenix/compile/WhereOptimizer.java  |   13 +-
 .../BaseMetaDataEndpointObserver.java           |  111 +
 .../phoenix/coprocessor/BaseRegionScanner.java  |    4 +-
 .../coprocessor/BaseScannerRegionObserver.java  |  339 +-
 .../DelegateRegionCoprocessorEnvironment.java   |  114 +
 .../coprocessor/DelegateRegionScanner.java      |    4 +-
 .../HashJoinCacheNotFoundException.java         |   45 +
 .../coprocessor/HashJoinRegionScanner.java      |   53 +-
 .../coprocessor/MetaDataEndpointImpl.java       | 2380 ++++++------
 .../coprocessor/MetaDataEndpointObserver.java   |   68 +
 .../phoenix/coprocessor/MetaDataProtocol.java   |   27 +-
 .../coprocessor/MetaDataRegionObserver.java     |  403 +-
 .../phoenix/coprocessor/OrphanCleaner.java      |   68 +
 .../coprocessor/PhoenixAccessController.java    |  611 ++++
 .../PhoenixMetaDataCoprocessorHost.java         |  236 ++
 .../PhoenixTransactionalProcessor.java          |    4 +-
 .../phoenix/coprocessor/ScanRegionObserver.java |  329 +-
 .../coprocessor/ServerCachingEndpointImpl.java  |   48 +-
 .../apache/phoenix/coprocessor/TableInfo.java   |   82 +
 .../coprocessor/TableViewFinderResult.java      |   49 +
 .../UngroupedAggregateRegionObserver.java       |  439 ++-
 .../apache/phoenix/coprocessor/ViewFinder.java  |  221 ++
 .../coprocessor/WhereConstantParser.java        |  117 +
 .../coprocessor/generated/MetaDataProtos.java   |   61 +-
 .../coprocessor/generated/PTableProtos.java     |  340 +-
 .../phoenix/exception/SQLExceptionCode.java     |   39 +-
 .../exception/UpgradeInProgressException.java   |    8 +-
 .../apache/phoenix/execute/AggregatePlan.java   |   51 +-
 .../apache/phoenix/execute/BaseQueryPlan.java   |  113 +-
 .../phoenix/execute/ClientAggregatePlan.java    |   28 +
 .../apache/phoenix/execute/ClientScanPlan.java  |   25 +
 .../apache/phoenix/execute/CommitException.java |    8 +-
 .../apache/phoenix/execute/CorrelatePlan.java   |   25 +
 .../apache/phoenix/execute/CursorFetchPlan.java |   71 +
 .../apache/phoenix/execute/DelegateHTable.java  |   22 +-
 .../phoenix/execute/DelegateQueryPlan.java      |   25 +
 .../apache/phoenix/execute/HashJoinPlan.java    |  204 +-
 .../execute/LiteralResultIterationPlan.java     |   34 +-
 .../apache/phoenix/execute/MutationState.java   |  642 ++--
 .../org/apache/phoenix/execute/ScanPlan.java    |   96 +-
 .../phoenix/execute/SortMergeJoinPlan.java      |  115 +-
 .../apache/phoenix/execute/TupleProjector.java  |   12 +-
 .../org/apache/phoenix/execute/UnionPlan.java   |   64 +-
 .../phoenix/expression/ExpressionType.java      |   10 +-
 .../phoenix/expression/LikeExpression.java      |    2 +-
 .../expression/ProjectedColumnExpression.java   |    7 +-
 .../RowValueConstructorExpression.java          |    4 +-
 .../expression/SingleCellColumnExpression.java  |   35 +-
 .../expression/StringConcatExpression.java      |    3 +
 .../FirstLastValueBaseClientAggregator.java     |   65 +-
 .../FirstLastValueServerAggregator.java         |   15 +-
 .../aggregator/PercentileClientAggregator.java  |    6 +-
 .../function/ArrayConcatFunction.java           |   12 +-
 .../function/ArrayModifierFunction.java         |    2 -
 .../expression/function/CoalesceFunction.java   |    2 +-
 .../function/CollationKeyFunction.java          |  199 +
 .../function/ConvertTimezoneFunction.java       |   10 +
 .../function/CurrentDateFunction.java           |   14 +-
 .../function/CurrentTimeFunction.java           |   12 +-
 ...stinctCountHyperLogLogAggregateFunction.java |  192 +
 .../expression/function/EncodeFunction.java     |    5 +-
 .../function/FirstLastValueBaseFunction.java    |   20 +-
 .../expression/function/FirstValueFunction.java |    8 +-
 .../function/FirstValuesFunction.java           |   97 +
 .../function/FloorDateExpression.java           |   11 +-
 .../expression/function/GetBitFunction.java     |    1 +
 .../expression/function/GetByteFunction.java    |    1 +
 .../expression/function/LastValueFunction.java  |    8 +-
 .../expression/function/LastValuesFunction.java |   97 +
 .../expression/function/LowerFunction.java      |    6 +-
 .../expression/function/LpadFunction.java       |   11 +-
 .../expression/function/MD5Function.java        |    3 +-
 .../expression/function/NthValueFunction.java   |   12 +-
 .../function/OctetLengthFunction.java           |    1 +
 .../function/RegexpReplaceFunction.java         |    9 +
 .../function/RoundDecimalExpression.java        |    9 +-
 .../function/RoundTimestampExpression.java      |   11 +-
 .../expression/function/ScalarFunction.java     |    9 +
 .../expression/function/SetBitFunction.java     |    3 +
 .../expression/function/SetByteFunction.java    |    2 +
 .../expression/function/SignFunction.java       |    3 +
 .../expression/function/SubstrFunction.java     |   13 +-
 .../function/TimezoneOffsetFunction.java        |   11 +-
 .../visitor/CloneExpressionVisitor.java         |    2 +-
 .../visitor/TraverseNoExpressionVisitor.java    |    5 +-
 .../MultiCFCQKeyValueComparisonFilter.java      |    4 +-
 .../filter/MultiCQKeyValueComparisonFilter.java |    4 +-
 .../MultiEncodedCQKeyValueComparisonFilter.java |   69 +-
 .../filter/MultiKeyValueComparisonFilter.java   |   41 +-
 .../org/apache/phoenix/hbase/index/Indexer.java |  552 ++-
 .../apache/phoenix/hbase/index/LockManager.java |  252 ++
 .../apache/phoenix/hbase/index/ValueGetter.java |   10 +-
 .../hbase/index/builder/BaseIndexBuilder.java   |    6 +
 .../hbase/index/builder/BaseIndexCodec.java     |   33 +-
 .../hbase/index/builder/IndexBuildManager.java  |   91 +-
 .../hbase/index/builder/IndexBuilder.java       |    3 +
 .../hbase/index/covered/IndexMetaData.java      |   24 +-
 .../hbase/index/covered/LocalTableState.java    |   91 +-
 .../hbase/index/covered/NonTxIndexBuilder.java  |  200 +-
 .../phoenix/hbase/index/covered/TableState.java |    3 +-
 .../index/covered/data/LazyValueGetter.java     |  107 +-
 .../hbase/index/covered/data/LocalTable.java    |   22 +-
 .../index/covered/example/ColumnGroup.java      |  112 -
 .../index/covered/example/CoveredColumn.java    |  107 -
 .../example/CoveredColumnIndexCodec.java        |  364 --
 .../CoveredColumnIndexSpecifierBuilder.java     |  184 -
 .../covered/example/CoveredColumnIndexer.java   |  164 -
 .../filter/ApplyAndFilterDeletesFilter.java     |    7 +-
 .../covered/update/IndexUpdateManager.java      |   26 +-
 .../index/covered/update/SortedCollection.java  |  128 -
 .../index/metrics/MetricsIndexerSource.java     |  150 +
 .../metrics/MetricsIndexerSourceFactory.java    |   38 +
 .../index/metrics/MetricsIndexerSourceImpl.java |  136 +
 .../hbase/index/scanner/EmptyScanner.java       |   16 +-
 .../hbase/index/scanner/ScannerBuilder.java     |   25 +-
 .../hbase/index/table/CachingHTableFactory.java |  184 -
 .../hbase/index/util/IndexManagementUtil.java   |   96 +-
 .../phoenix/hbase/index/write/IndexWriter.java  |   15 +-
 .../hbase/index/write/IndexWriterUtils.java     |   99 +-
 .../write/LeaveIndexActiveFailurePolicy.java    |   62 +
 .../write/ParallelWriterIndexCommitter.java     |   15 +-
 .../hbase/index/write/RecoveryIndexWriter.java  |    1 -
 .../TrackingParallelWriterIndexCommitter.java   |  245 ++
 .../recovery/StoreFailuresInCachePolicy.java    |    1 +
 .../TrackingParallelWriterIndexCommitter.java   |  241 --
 .../apache/phoenix/index/IndexMaintainer.java   |  167 +-
 .../index/IndexMetaDataCacheFactory.java        |   15 +-
 .../phoenix/index/PhoenixIndexBuilder.java      |   16 +-
 .../apache/phoenix/index/PhoenixIndexCodec.java |    4 +-
 .../index/PhoenixIndexFailurePolicy.java        |  190 +-
 .../phoenix/index/PhoenixIndexMetaData.java     |   45 +-
 .../index/PhoenixTransactionalIndexer.java      |  175 +-
 .../phoenix/iterate/BaseResultIterators.java    |  428 ++-
 .../phoenix/iterate/ChunkedResultIterator.java  |   11 +-
 .../phoenix/iterate/CursorResultIterator.java   |   75 +
 .../iterate/DefaultParallelScanGrouper.java     |   64 +-
 .../DefaultTableResultIteratorFactory.java      |   15 +-
 .../DistinctAggregatingResultIterator.java      |    6 +-
 .../apache/phoenix/iterate/ExplainTable.java    |    6 +-
 .../phoenix/iterate/FilterResultIterator.java   |    5 +-
 .../iterate/MapReduceParallelScanGrouper.java   |   67 +-
 .../NonAggregateRegionScannerFactory.java       |  376 ++
 .../phoenix/iterate/OrderedResultIterator.java  |    2 +-
 .../phoenix/iterate/ParallelIterators.java      |   23 +-
 .../phoenix/iterate/ParallelScanGrouper.java    |    9 +-
 .../phoenix/iterate/RegionScannerFactory.java   |  303 ++
 .../phoenix/iterate/ScanningResultIterator.java |   96 +-
 .../apache/phoenix/iterate/SerialIterators.java |   26 +-
 .../apache/phoenix/iterate/SnapshotScanner.java |  183 +
 .../phoenix/iterate/TableResultIterator.java    |   71 +-
 .../iterate/TableResultIteratorFactory.java     |   10 +-
 .../phoenix/iterate/TableSamplerPredicate.java  |  114 +
 .../iterate/TableSnapshotResultIterator.java    |  156 +
 .../apache/phoenix/jdbc/DelegateConnection.java |  321 ++
 .../phoenix/jdbc/DelegatePreparedStatement.java |  553 +++
 .../apache/phoenix/jdbc/DelegateResultSet.java  | 1008 +++++
 .../apache/phoenix/jdbc/DelegateStatement.java  |  254 ++
 .../phoenix/jdbc/LoggingPhoenixConnection.java  |  109 +
 .../jdbc/LoggingPhoenixPreparedStatement.java   |   53 +
 .../phoenix/jdbc/LoggingPhoenixResultSet.java   |   45 +
 .../phoenix/jdbc/LoggingPhoenixStatement.java   |   48 +
 .../apache/phoenix/jdbc/PhoenixConnection.java  |  612 ++--
 .../phoenix/jdbc/PhoenixDatabaseMetaData.java   |  537 ++-
 .../phoenix/jdbc/PhoenixEmbeddedDriver.java     |   46 +-
 .../apache/phoenix/jdbc/PhoenixMetricsLog.java  |   35 +
 .../phoenix/jdbc/PhoenixPreparedStatement.java  |    6 +-
 .../apache/phoenix/jdbc/PhoenixResultSet.java   |    5 +-
 .../apache/phoenix/jdbc/PhoenixStatement.java   |  335 +-
 .../apache/phoenix/join/HashCacheClient.java    |   20 +-
 .../mapreduce/FormatToBytesWritableMapper.java  |    1 +
 .../mapreduce/FormatToKeyValueReducer.java      |    7 +-
 .../mapreduce/MultiHfileOutputFormat.java       |    5 +-
 .../phoenix/mapreduce/PhoenixInputFormat.java   |   12 +-
 .../phoenix/mapreduce/PhoenixOutputFormat.java  |   13 +-
 .../phoenix/mapreduce/PhoenixRecordReader.java  |   42 +-
 .../phoenix/mapreduce/PhoenixRecordWriter.java  |    8 +-
 .../mapreduce/index/IndexScrutinyMapper.java    |  377 ++
 .../index/IndexScrutinyTableOutput.java         |  345 ++
 .../mapreduce/index/IndexScrutinyTool.java      |  522 +++
 .../phoenix/mapreduce/index/IndexTool.java      |   57 +-
 .../mapreduce/index/PhoenixIndexDBWritable.java |   11 +-
 .../index/PhoenixIndexImportDirectMapper.java   |    2 +-
 .../index/PhoenixIndexImportMapper.java         |    2 +-
 .../index/PhoenixIndexPartialBuildMapper.java   |    7 +-
 .../index/PhoenixScrutinyJobCounters.java       |   41 +
 .../index/SourceTargetColumnNames.java          |  195 +
 .../phoenix/mapreduce/util/ConnectionUtil.java  |   25 +-
 .../mapreduce/util/IndexColumnNames.java        |  251 ++
 .../util/PhoenixConfigurationUtil.java          |  144 +-
 .../mapreduce/util/PhoenixMapReduceUtil.java    |   64 +
 .../phoenix/memory/GlobalMemoryManager.java     |   52 +-
 .../apache/phoenix/monitoring/AtomicMetric.java |   11 +-
 .../phoenix/monitoring/CombinableMetric.java    |   12 +-
 .../monitoring/CombinableMetricImpl.java        |   11 +-
 .../phoenix/monitoring/GlobalClientMetrics.java |    9 +-
 .../phoenix/monitoring/GlobalMetricImpl.java    |   11 +-
 .../org/apache/phoenix/monitoring/Metric.java   |   10 +-
 .../apache/phoenix/monitoring/MetricType.java   |   83 +-
 .../phoenix/monitoring/MutationMetricQueue.java |   25 +-
 .../phoenix/monitoring/NonAtomicMetric.java     |   13 +-
 .../phoenix/monitoring/OverAllQueryMetrics.java |   16 +-
 .../phoenix/monitoring/ReadMetricQueue.java     |   12 +-
 .../phoenix/monitoring/ScanMetricsHolder.java   |  121 +
 .../java/org/apache/phoenix/optimize/Cost.java  |  123 +
 .../apache/phoenix/optimize/QueryOptimizer.java |   44 +-
 .../phoenix/parse/AddColumnStatement.java       |    2 +-
 .../phoenix/parse/AlterIndexStatement.java      |   14 +
 .../phoenix/parse/ChangePermsStatement.java     |  102 +
 .../apache/phoenix/parse/CloseStatement.java    |   40 +
 .../apache/phoenix/parse/ConcreteTableNode.java |   22 +
 .../phoenix/parse/CreateSchemaStatement.java    |    2 +-
 .../org/apache/phoenix/parse/CursorName.java    |   44 +
 .../phoenix/parse/DeclareCursorStatement.java   |   60 +
 .../apache/phoenix/parse/DeleteStatement.java   |    5 +
 ...tinctCountHyperLogLogAggregateParseNode.java |   39 +
 .../apache/phoenix/parse/FetchStatement.java    |   52 +
 .../phoenix/parse/FilterableStatement.java      |    1 +
 .../parse/FirstValuesAggregateParseNode.java    |   38 +
 .../parse/LastValuesAggregateParseNode.java     |   38 +
 .../apache/phoenix/parse/NamedTableNode.java    |   21 +-
 .../org/apache/phoenix/parse/OpenStatement.java |   40 +
 .../apache/phoenix/parse/ParseNodeFactory.java  |   59 +-
 .../org/apache/phoenix/parse/SQLParser.java     |   76 +
 .../apache/phoenix/parse/SelectStatement.java   |   15 +
 .../phoenix/query/BaseQueryServicesImpl.java    |    3 +-
 .../phoenix/query/ConnectionQueryServices.java  |    4 +-
 .../query/ConnectionQueryServicesImpl.java      |  606 ++-
 .../query/ConnectionlessQueryServicesImpl.java  |   29 +-
 .../query/DelegateConnectionQueryServices.java  |   14 +-
 .../query/PropertyNotAllowedException.java      |   35 +
 .../apache/phoenix/query/PropertyPolicy.java    |   63 +
 .../phoenix/query/PropertyPolicyProvider.java   |   39 +
 .../apache/phoenix/query/QueryConstants.java    |   23 +
 .../org/apache/phoenix/query/QueryServices.java |   57 +-
 .../phoenix/query/QueryServicesOptions.java     |  173 +-
 .../SystemCatalogWALEntryFilter.java            |   42 +-
 .../schema/ColumnFamilyNotFoundException.java   |    4 +-
 .../phoenix/schema/ColumnNotFoundException.java |   14 +-
 .../org/apache/phoenix/schema/ColumnRef.java    |    4 +-
 .../apache/phoenix/schema/DelegateColumn.java   |   15 +
 .../apache/phoenix/schema/DelegateTable.java    |    5 +
 .../schema/FunctionNotFoundException.java       |    2 +-
 .../apache/phoenix/schema/MetaDataClient.java   | 1026 ++++--
 .../schema/MetaDataEntityNotFoundException.java |   20 +-
 .../phoenix/schema/MetaDataSplitPolicy.java     |   23 +-
 .../java/org/apache/phoenix/schema/PColumn.java |   12 +
 .../phoenix/schema/PColumnFamilyImpl.java       |    3 -
 .../org/apache/phoenix/schema/PColumnImpl.java  |  114 +-
 .../org/apache/phoenix/schema/PIndexState.java  |    3 +-
 .../apache/phoenix/schema/PMetaDataImpl.java    |    3 +-
 .../java/org/apache/phoenix/schema/PTable.java  |   39 +-
 .../org/apache/phoenix/schema/PTableImpl.java   |  164 +-
 .../org/apache/phoenix/schema/RowKeySchema.java |    4 +-
 .../org/apache/phoenix/schema/SaltingUtil.java  |    4 +-
 .../phoenix/schema/SchemaNotFoundException.java |   10 +-
 .../schema/SequenceNotFoundException.java       |   14 +-
 .../phoenix/schema/TableNotFoundException.java  |   19 +-
 .../apache/phoenix/schema/TableProperty.java    |   18 +
 .../org/apache/phoenix/schema/TableRef.java     |    9 +-
 .../schema/TablesNotInSyncException.java        |   22 +
 .../UpsertColumnsValuesMismatchException.java   |   41 +
 .../org/apache/phoenix/schema/ValueSchema.java  |    2 +-
 .../stats/DefaultStatisticsCollector.java       |  127 +-
 .../phoenix/schema/stats/GuidePostsInfo.java    |   59 +-
 .../schema/stats/GuidePostsInfoBuilder.java     |   48 +-
 .../stats/StatisticsCollectorFactory.java       |   13 +-
 .../phoenix/schema/stats/StatisticsScanner.java |    6 +-
 .../phoenix/schema/stats/StatisticsUtil.java    |   62 +-
 .../phoenix/schema/stats/StatisticsWriter.java  |  102 +-
 .../tuple/EncodedColumnQualiferCellsList.java   |   85 +-
 .../schema/tuple/MultiKeyValueTuple.java        |    7 +-
 .../phoenix/schema/tuple/ValueGetterTuple.java  |   12 +-
 .../phoenix/schema/types/PArrayDataType.java    |  107 +-
 .../schema/types/PArrayDataTypeDecoder.java     |   79 +-
 .../schema/types/PArrayDataTypeEncoder.java     |   81 +-
 .../apache/phoenix/schema/types/PBoolean.java   |    9 +
 .../apache/phoenix/schema/types/PDataType.java  |   23 +-
 .../org/apache/phoenix/schema/types/PDate.java  |    9 +
 .../apache/phoenix/schema/types/PDecimal.java   |    9 +
 .../apache/phoenix/schema/types/PDouble.java    |    9 +
 .../org/apache/phoenix/schema/types/PLong.java  |   18 +-
 .../apache/phoenix/schema/types/PTimestamp.java |    9 +
 .../phoenix/schema/types/PUnsignedDouble.java   |  259 +-
 .../phoenix/schema/types/PUnsignedLong.java     |    9 +
 .../apache/phoenix/schema/types/PVarchar.java   |    9 +
 .../apache/phoenix/trace/TraceMetricSource.java |  183 -
 .../org/apache/phoenix/trace/TraceReader.java   |   16 +-
 .../apache/phoenix/trace/TraceSpanReceiver.java |  104 +
 .../org/apache/phoenix/trace/TraceWriter.java   |  333 ++
 .../org/apache/phoenix/trace/util/Tracing.java  |   16 +-
 .../transaction/OmidTransactionContext.java     |  174 +
 .../transaction/OmidTransactionTable.java       |  364 ++
 .../transaction/PhoenixTransactionContext.java  |  191 +
 .../transaction/PhoenixTransactionalTable.java  |  149 +
 .../transaction/TephraTransactionContext.java   |  514 +++
 .../transaction/TephraTransactionTable.java     |  350 ++
 .../phoenix/transaction/TransactionFactory.java |  143 +
 .../java/org/apache/phoenix/util/ByteUtil.java  |   15 +
 .../java/org/apache/phoenix/util/CostUtil.java  |   90 +
 .../org/apache/phoenix/util/CursorUtil.java     |  189 +
 .../phoenix/util/DefaultEnvironmentEdge.java    |    3 +-
 .../apache/phoenix/util/EncodedColumnsUtil.java |   50 +-
 .../apache/phoenix/util/EnvironmentEdge.java    |    5 +-
 .../phoenix/util/EnvironmentEdgeManager.java    |    1 +
 .../org/apache/phoenix/util/ExpressionUtil.java |   14 +
 .../util/FirstLastNthValueDataContainer.java    |    7 +-
 .../java/org/apache/phoenix/util/IndexUtil.java |  121 +-
 .../java/org/apache/phoenix/util/JDBCUtil.java  |    6 +-
 .../org/apache/phoenix/util/KeyValueUtil.java   |   46 +
 .../java/org/apache/phoenix/util/LogUtil.java   |   10 +
 .../org/apache/phoenix/util/MetaDataUtil.java   |  175 +-
 .../org/apache/phoenix/util/NumberUtil.java     |   32 +
 .../org/apache/phoenix/util/PhoenixRuntime.java |  140 +-
 .../org/apache/phoenix/util/PropertiesUtil.java |   53 +-
 .../java/org/apache/phoenix/util/QueryUtil.java |  122 +-
 .../org/apache/phoenix/util/RepairUtil.java     |   10 +-
 .../java/org/apache/phoenix/util/ScanUtil.java  |    9 +-
 .../org/apache/phoenix/util/SchemaUtil.java     |  139 +-
 .../org/apache/phoenix/util/ServerUtil.java     |   59 +
 .../apache/phoenix/util/TransactionUtil.java    |   38 +-
 .../org/apache/phoenix/util/UpgradeUtil.java    |  130 +-
 .../apache/phoenix/util/VarBinaryFormatter.java |   52 +
 .../hbase/ipc/PhoenixIndexRpcSchedulerTest.java |    2 +-
 .../wal/ReadWriteKeyValuesWithCodecTest.java    |  186 +
 .../apache/phoenix/cache/TenantCacheTest.java   |   43 +-
 .../phoenix/compile/CursorCompilerTest.java     |   87 +
 .../phoenix/compile/QueryCompilerTest.java      |  384 +-
 .../phoenix/compile/QueryOptimizerTest.java     |   13 +-
 .../phoenix/compile/WhereOptimizerTest.java     |    3 +-
 .../coprocessor/MetaDataEndpointImplTest.java   |  287 ++
 .../phoenix/execute/CorrelatePlanTest.java      |    8 +-
 .../execute/LiteralResultIteratorPlanTest.java  |    9 +-
 .../phoenix/execute/UnnestArrayPlanTest.java    |    7 +-
 .../expression/ArrayConcatFunctionTest.java     |   27 +-
 .../expression/ColumnExpressionTest.java        |    9 +-
 .../expression/OctetLengthFunctionTest.java     |    7 +-
 .../function/CollationKeyFunctionTest.java      |  243 ++
 .../phoenix/filter/SkipScanBigFilterTest.java   |    3 +-
 .../hbase/index/covered/ColumnGroup.java        |  112 +
 .../hbase/index/covered/CoveredColumn.java      |  106 +
 .../index/covered/CoveredColumnIndexCodec.java  |  372 ++
 .../CoveredColumnIndexSpecifierBuilder.java     |  182 +
 .../hbase/index/covered/CoveredColumnsTest.java |   46 +
 .../index/covered/LocalTableStateTest.java      |  295 ++
 .../index/covered/NonTxIndexBuilderTest.java    |  342 ++
 .../hbase/index/covered/TestColumnTracker.java  |   61 +
 .../covered/TestCoveredColumnIndexCodec.java    |  246 ++
 .../hbase/index/covered/TestCoveredColumns.java |   46 -
 .../TestCoveredIndexSpecifierBuilder.java       |   72 +
 .../index/covered/TestLocalTableState.java      |  198 -
 .../index/covered/data/TestLocalTable.java      |   63 +
 .../covered/example/TestColumnTracker.java      |   61 -
 .../example/TestCoveredColumnIndexCodec.java    |  250 --
 .../TestCoveredIndexSpecifierBuilder.java       |   75 -
 .../covered/update/TestIndexUpdateManager.java  |   20 +-
 .../index/util/TestIndexManagementUtil.java     |   29 +
 .../index/write/TestCachingHTableFactory.java   |   69 -
 .../hbase/index/write/TestIndexWriter.java      |  102 +-
 .../index/write/TestParalleIndexWriter.java     |   12 +-
 .../write/TestParalleWriterIndexCommitter.java  |   12 +-
 .../index/write/TestWALRecoveryCaching.java     |   10 +-
 .../recovery/TestPerRegionIndexWriteCache.java  |    2 +-
 .../phoenix/index/IndexMaintainerTest.java      |    5 +-
 .../iterate/SpoolingResultIteratorTest.java     |    2 +-
 .../apache/phoenix/jdbc/PhoenixDriverTest.java  |    8 +-
 .../phoenix/jdbc/PhoenixEmbeddedDriverTest.java |   19 +
 .../phoenix/mapreduce/index/BaseIndexTest.java  |   97 +
 .../index/IndexScrutinyTableOutputTest.java     |   87 +
 .../mapreduce/util/IndexColumnNamesTest.java    |   74 +
 .../phoenix/memory/MemoryManagerTest.java       |  208 +-
 .../apache/phoenix/metrics/MetricTypeTest.java  |   42 +
 .../apache/phoenix/parse/CursorParserTest.java  |  367 ++
 .../apache/phoenix/parse/QueryParserTest.java   |   80 +-
 .../java/org/apache/phoenix/query/BaseTest.java |  318 +-
 .../query/ConnectionQueryServicesImplTest.java  |   76 +
 .../query/ParallelIteratorsSplitTest.java       |   23 +-
 .../query/PropertyPolicyProviderTest.java       |   52 +
 .../phoenix/query/QueryServicesTestImpl.java    |   12 +-
 .../phoenix/query/TestPropertyPolicy.java       |   47 +
 .../schema/ImmutableStorageSchemeTest.java      |  241 +-
 .../apache/phoenix/schema/RowKeySchemaTest.java |    2 +-
 .../phoenix/schema/RowKeyValueAccessorTest.java |    2 +-
 .../schema/stats/StatisticsScannerTest.java     |    4 +-
 .../schema/types/PDataTypeForArraysTest.java    |   73 +
 .../phoenix/schema/types/PDataTypeTest.java     |   31 +
 .../phoenix/trace/TraceMetricsSourceTest.java   |   95 -
 .../phoenix/trace/TraceSpanReceiverTest.java    |   82 +
 .../org/apache/phoenix/util/IndexScrutiny.java  |  165 +
 .../apache/phoenix/util/MetaDataUtilTest.java   |   22 +-
 .../apache/phoenix/util/PropertiesUtilTest.java |   19 +-
 .../org/apache/phoenix/util/QueryUtilTest.java  |   18 +-
 .../java/org/apache/phoenix/util/Repeat.java    |   30 +
 .../apache/phoenix/util/RunUntilFailure.java    |   90 +
 .../java/org/apache/phoenix/util/TestUtil.java  |  199 +-
 .../org.apache.phoenix.query.PropertyPolicy     |   16 +
 phoenix-flume/pom.xml                           |    6 +-
 phoenix-hive/pom.xml                            |   40 +-
 .../phoenix/hive/BaseHivePhoenixStoreIT.java    |    5 +-
 .../apache/phoenix/hive/HiveMapReduceIT.java    |    1 -
 .../apache/phoenix/hive/HivePhoenixStoreIT.java |    3 +
 .../org/apache/phoenix/hive/HiveTestUtil.java   |    9 +-
 .../java/org/apache/phoenix/hive/HiveTezIT.java |    1 -
 .../org/apache/phoenix/hive/PhoenixRowKey.java  |   17 +-
 .../phoenix/hive/PhoenixStorageHandler.java     |   14 +-
 .../org/apache/phoenix/hive/PrimaryKeyData.java |   88 +
 .../hive/mapreduce/PhoenixRecordReader.java     |   11 +-
 .../phoenix/hive/query/PhoenixQueryBuilder.java |    4 +-
 .../hive/util/PhoenixConnectionUtil.java        |    2 +-
 .../hive/util/PhoenixStorageHandlerUtil.java    |    9 +-
 .../apache/phoenix/hive/PrimaryKeyDataTest.java |   79 +
 phoenix-kafka/pom.xml                           |   32 +-
 phoenix-load-balancer/pom.xml                   |   84 +
 .../phoenix/end2end/LoadBalancerEnd2EndIT.java  |  144 +
 .../service/LoadBalanceZookeeperConfImpl.java   |  103 +
 .../loadbalancer/service/LoadBalancer.java      |  178 +
 .../queryserver/register/ZookeeperRegistry.java |   72 +
 ...oadbalancer.service.LoadBalanceZookeeperConf |    1 +
 .../config/scenario/user_defined_scenario.xml   |    4 +-
 phoenix-pherf/pom.xml                           |    6 +-
 .../org/apache/phoenix/pherf/DataIngestIT.java  |   19 +
 .../apache/phoenix/pherf/ResultBaseTestIT.java  |    4 +-
 .../phoenix/pherf/configuration/DataModel.java  |    1 +
 .../apache/phoenix/pherf/configuration/Ddl.java |   68 +
 .../phoenix/pherf/configuration/Scenario.java   |   49 +-
 .../pherf/configuration/XMLConfigParser.java    |   15 +-
 .../pherf/result/impl/XMLResultHandler.java     |   17 +-
 .../apache/phoenix/pherf/util/PhoenixUtil.java  |   75 +-
 .../phoenix/pherf/workload/WriteWorkload.java   |   14 +-
 .../scenario/prod_test_unsalted_scenario.xml    |   11 +-
 .../phoenix/pherf/ConfigurationParserTest.java  |   10 +-
 .../phoenix/pherf/XMLConfigParserTest.java      |   53 +
 .../pherf/result/impl/XMLResultHandlerTest.java |   53 +
 .../resources/malicious_results_with_dtd.xml    |  676 ++++
 .../scenario/malicious_scenario_with_dtd.xml    |   48 +
 .../test/resources/scenario/test_scenario.xml   |   26 +-
 phoenix-pig/pom.xml                             |    2 +-
 .../java/org/apache/phoenix/pig/BasePigIT.java  |    4 +
 .../apache/phoenix/pig/PhoenixHBaseStorage.java |   12 +-
 phoenix-protocol/src/main/MetaDataService.proto |    1 +
 phoenix-protocol/src/main/PTable.proto          |    3 +
 phoenix-queryserver-client/pom.xml              |   18 +-
 phoenix-queryserver/pom.xml                     |   12 +-
 .../HttpParamImpersonationQueryServerIT.java    |  434 +++
 .../phoenix/end2end/QueryServerBasicsIT.java    |  183 +-
 .../phoenix/end2end/SecureQueryServerIT.java    |  320 ++
 .../src/it/resources/log4j.properties           |    9 +-
 .../service/LoadBalanceZookeeperConf.java       |   42 +
 .../phoenix/queryserver/register/Registry.java  |   48 +
 .../phoenix/queryserver/server/QueryServer.java |  164 +-
 .../server/RemoteUserExtractorFactory.java      |   36 +
 .../server/PhoenixRemoteUserExtractorTest.java  |  108 +
 .../server/RemoteUserExtractorFactoryTest.java  |   35 +
 phoenix-server/pom.xml                          |    7 +-
 phoenix-spark/pom.xml                           |   24 +-
 phoenix-spark/src/it/resources/globalSetup.sql  |    3 +-
 .../phoenix/spark/AbstractPhoenixSparkIT.scala  |   17 +-
 .../apache/phoenix/spark/PhoenixSparkIT.scala   |   27 +-
 .../phoenix/spark/DataFrameFunctions.scala      |   19 +-
 .../apache/phoenix/spark/DefaultSource.scala    |    2 +-
 .../org/apache/phoenix/spark/PhoenixRDD.scala   |    4 +-
 phoenix-tracing-webapp/pom.xml                  |    2 +-
 pom.xml                                         |   94 +-
 751 files changed, 79056 insertions(+), 40002 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/15d4dace/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
----------------------------------------------------------------------
diff --cc phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
index 4ad3a8c,6277b78..d48d0b7
--- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
@@@ -1904,20 -2401,16 +2401,16 @@@ public class MetaDataEndpointImpl exten
                              PName parentTenantId = parentTenantIdCell!=null ? PNameFactory.newName(parentTenantIdCell.getValueArray(), parentTenantIdCell.getValueOffset(), parentTenantIdCell.getValueLength()) : null;
                              byte[] linkKey = MetaDataUtil.getChildLinkKey(parentTenantId, table.getParentSchemaName(), table.getParentTableName(), table.getTenantId(), table.getName());
                              Delete linkDelete = new Delete(linkKey, clientTimeStamp);
-                             rowsToDelete.add(linkDelete);
+                             childLinkMutations.add(linkDelete);
                          }
                  }
-                 // FIXME: Remove when unintentionally deprecated method is fixed (HBASE-7870).
-                 // FIXME: the version of the Delete constructor without the lock args was introduced
-                 // in 0.94.4, thus if we try to use it here we can no longer use the 0.94.2 version
-                 // of the client.
-                 Delete delete = new Delete(kv.getRowArray(), kv.getRowOffset(), kv.getRowLength(), clientTimeStamp);
-                 rowsToDelete.add(delete);
-                 results.clear();
-                 scanner.next(results);
-             } while (!results.isEmpty());
+                 catalogMutations.add(scannerAdaptor.getRowDelete(clientTimeStamp));
+             } while (scannerAdaptor.next());
+         }
+         finally {
+         	scanner.close();
          }
 -
 +        
          // Recursively delete indexes
          for (byte[] indexName : indexNames) {
              byte[] indexKey = SchemaUtil.getTableKey(tenantId, schemaName, indexName);
@@@ -3537,56 -3790,30 +3790,37 @@@
          return checkKeyInRegion(key, region, MutationCode.SCHEMA_NOT_IN_REGION);
  
      }
- 
-     /**
-      * Certain operations, such as DROP TABLE are not allowed if there a table has child views. This class wraps the
-      * Results of a scanning the Phoenix Metadata for child views for a specific table and stores an additional flag for
-      * whether whether SYSTEM.CATALOG has split across multiple regions.
-      */
-     private static class TableViewFinderResult {
- 
-         private List<Result> results = Lists.newArrayList();
-         private boolean allViewsNotInSingleRegion = false;
- 
-         private TableViewFinderResult() {
-         }
-         
-         private TableViewFinderResult(List<Result> results) {
-             this.results = results;
-         }
+     
+     private static class ViewInfo {
+         private byte[] tenantId;
+         private byte[] schemaName;
+         private byte[] viewName;
          
-         public boolean hasViews() {
-             return !results.isEmpty();
+         public ViewInfo(byte[] tenantId, byte[] schemaName, byte[] viewName) {
+             super();
+             this.tenantId = tenantId;
+             this.schemaName = schemaName;
+             this.viewName = viewName;
          }
  
-         private void setAllViewsNotInSingleRegion() {
-             allViewsNotInSingleRegion = true;
+         public byte[] getTenantId() {
+             return tenantId;
          }
  
-         private List<Result> getResults() {
-             return results;
+         public byte[] getSchemaName() {
+             return schemaName;
          }
  
-         /**
-          * Returns true is the table has views and they are all in the same HBase region.
-          */
-         private boolean allViewsInSingleRegion() {
-             return results.size() > 0 && !allViewsNotInSingleRegion;
-         }
- 
-         /**
-          * Returns true is the table has views and they are all NOT in the same HBase region.
-          */
-         private boolean allViewsInMultipleRegions() {
-             return results.size() > 0 && allViewsNotInSingleRegion;
+         public byte[] getViewName() {
+             return viewName;
          }
 +        
 +        private void addResult(TableViewFinderResult result) {
 +            this.results.addAll(result.getResults());
 +            if (result.allViewsInMultipleRegions()) {
 +                this.setAllViewsNotInSingleRegion();
 +            }
 +        }
      }
  
      @Override