You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by sh...@apache.org on 2023/12/11 03:21:14 UTC

(phoenix) 01/01: Merge branch 'master' into PHOENIX-6883-feature

This is an automated email from the ASF dual-hosted git repository.

shahrs87 pushed a commit to branch PHOENIX-6883-feature
in repository https://gitbox.apache.org/repos/asf/phoenix.git

commit 7e6fe7ffc2fdc3fe104fc6785eaab63af1ce21bf
Merge: 4499c2965a b241252307
Author: Rushabh Shah <ru...@rushabh-ltmflld.internal.salesforce.com>
AuthorDate: Sun Dec 10 19:20:25 2023 -0800

    Merge branch 'master' into PHOENIX-6883-feature

 .../org/apache/phoenix/end2end/AlterTableIT.java   |   75 +-
 .../end2end/BaseTenantSpecificViewIndexIT.java     |    8 +-
 .../phoenix/end2end/ClientHashAggregateIT.java     |   38 +-
 .../phoenix/end2end/CostBasedDecisionIT.java       |   57 +-
 .../java/org/apache/phoenix/end2end/DeleteIT.java  |    2 +-
 .../phoenix/end2end/FlappingLocalIndexIT.java      |   16 +-
 .../java/org/apache/phoenix/end2end/InListIT.java  |    7 +-
 .../phoenix/end2end/IndexBuildTimestampIT.java     |    6 +-
 .../apache/phoenix/end2end/IndexExtendedIT.java    |    4 +-
 .../org/apache/phoenix/end2end/IndexToolIT.java    |    8 +-
 .../phoenix/end2end/LocalIndexSplitMergeIT.java    |   16 +-
 .../phoenix/end2end/MetaDataEndpointImplIT.java    |   26 +-
 .../phoenix/end2end/QueryDatabaseMetaDataIT.java   |   50 +
 .../end2end/RebuildIndexConnectionPropsIT.java     |    4 +-
 .../phoenix/end2end/TenantSpecificViewIndexIT.java |   13 +-
 .../phoenix/end2end/UserDefinedFunctionsIT.java    |    2 +-
 .../end2end/ViewExtendsPkRestrictionsIT.java       | 1169 ++++++++++++++++++++
 .../it/java/org/apache/phoenix/end2end/ViewIT.java |   10 +-
 .../java/org/apache/phoenix/end2end/ViewTTLIT.java |   65 +-
 .../apache/phoenix/end2end/index/BaseIndexIT.java  |   23 +-
 .../end2end/index/GlobalIndexOptimizationIT.java   |    3 +-
 .../phoenix/end2end/index/IndexMaintenanceIT.java  |    8 +-
 .../apache/phoenix/end2end/index/IndexUsageIT.java |   26 +-
 .../apache/phoenix/end2end/index/LocalIndexIT.java |   40 +-
 .../end2end/index/MutableIndexFailureIT.java       |    5 +-
 .../phoenix/end2end/index/MutableIndexIT.java      |   25 +-
 .../phoenix/end2end/index/PartialIndexIT.java      |  767 +++++++++++++
 .../index/UncoveredGlobalIndexRegionScannerIT.java |    9 +-
 .../apache/phoenix/end2end/index/ViewIndexIT.java  |    5 +-
 .../end2end/index/txn/TxWriteFailureIT.java        |    3 +-
 .../apache/phoenix/end2end/join/BaseJoinIT.java    |   10 +
 .../phoenix/end2end/join/HashJoinLocalIndexIT.java |  111 +-
 .../end2end/join/SortMergeJoinLocalIndexIT.java    |   22 +-
 .../apache/phoenix/end2end/join/SubqueryIT.java    |   40 +-
 .../end2end/join/SubqueryUsingSortMergeJoinIT.java |   30 +-
 .../ConnectionQueryServicesMetricsIT.java          |  366 ++++++
 phoenix-core/src/main/antlr3/PhoenixSQL.g          |    9 +-
 .../phoenix/compile/CreateIndexCompiler.java       |  186 +++-
 .../phoenix/compile/CreateTableCompiler.java       |   61 +
 .../phoenix/compile/ServerBuildIndexCompiler.java  |   20 +-
 .../apache/phoenix/compile/StatementContext.java   |   25 +-
 .../org/apache/phoenix/compile/WhereCompiler.java  |  613 +++++++++-
 .../coprocessor/GlobalIndexRegionScanner.java      |   69 +-
 .../phoenix/coprocessor/MetaDataEndpointImpl.java  |   15 +-
 .../phoenix/coprocessor/MetaDataProtocol.java      |    2 +-
 .../coprocessor/MetaDataRegionObserver.java        |   21 +-
 .../coprocessor/UncoveredIndexRegionScanner.java   |   15 +-
 .../UngroupedAggregateRegionObserver.java          |    2 +-
 .../apache/phoenix/exception/SQLExceptionCode.java |    9 +-
 .../execute/PhoenixTxIndexMutationGenerator.java   |    5 +-
 .../phoenix/expression/ComparisonExpression.java   |  138 ++-
 .../org/apache/phoenix/expression/Expression.java  |   10 +
 .../phoenix/expression/IsNullExpression.java       |   16 +-
 .../phoenix/hbase/index/IndexRegionObserver.java   |   60 +-
 .../org/apache/phoenix/index/IndexMaintainer.java  |  123 +-
 .../org/apache/phoenix/iterate/ExplainTable.java   |   20 +-
 .../phoenix/iterate/OffsetResultIterator.java      |    2 +-
 .../phoenix/iterate/RegionScannerFactory.java      |   15 +-
 .../phoenix/iterate/TableResultIterator.java       |   23 +
 .../org/apache/phoenix/jdbc/PhoenixConnection.java |   98 +-
 .../phoenix/jdbc/PhoenixDatabaseMetaData.java      |  507 +++++----
 .../org/apache/phoenix/jdbc/PhoenixResultSet.java  |    7 +-
 .../org/apache/phoenix/jdbc/PhoenixStatement.java  |   76 +-
 .../apache/phoenix/log/BaseConnectionLimiter.java  |   15 +-
 .../org/apache/phoenix/log/ConnectionLimiter.java  |    4 +
 .../apache/phoenix/monitoring/AtomicMetric.java    |   10 +
 .../phoenix/monitoring/CombinableMetric.java       |    8 +
 .../phoenix/monitoring/CombinableMetricImpl.java   |   10 +
 .../ConnectionQueryServicesMetric.java}            |   29 +-
 ...java => ConnectionQueryServicesMetricImpl.java} |   25 +-
 .../phoenix/monitoring/GlobalMetricImpl.java       |   10 +
 .../java/org/apache/phoenix/monitoring/Metric.java |    4 +
 .../phoenix/monitoring/NoOpGlobalMetricImpl.java   |   10 +
 .../apache/phoenix/monitoring/NonAtomicMetric.java |   10 +
 .../phoenix/monitoring/PhoenixTableMetricImpl.java |   10 +
 .../ConnectionQueryServicesHistogram.java          |   43 +
 .../ConnectionQueryServicesMetrics.java            |  120 ++
 .../ConnectionQueryServicesMetricsHistograms.java  |   71 ++
 .../ConnectionQueryServicesMetricsManager.java     |  343 ++++++
 .../NoOpConnectionQueryServicesMetricsManager.java |   62 ++
 .../apache/phoenix/optimize/QueryOptimizer.java    |   72 +-
 .../apache/phoenix/parse/CreateIndexStatement.java |   12 +-
 .../org/apache/phoenix/parse/ParseNodeFactory.java |    9 +-
 .../phoenix/query/ConnectionQueryServices.java     |    1 +
 .../phoenix/query/ConnectionQueryServicesImpl.java |   26 +-
 .../query/ConnectionlessQueryServicesImpl.java     |    5 +
 .../query/DelegateConnectionQueryServices.java     |    7 +-
 .../phoenix/query/DelegateQueryServices.java       |    4 +-
 .../org/apache/phoenix/query/QueryConstants.java   |    4 +-
 .../org/apache/phoenix/query/QueryServices.java    |   24 +
 .../apache/phoenix/query/QueryServicesOptions.java |   44 +
 .../org/apache/phoenix/schema/DelegateTable.java   |   26 +-
 .../org/apache/phoenix/schema/MetaDataClient.java  |  125 ++-
 .../java/org/apache/phoenix/schema/PTable.java     |   32 +-
 .../java/org/apache/phoenix/schema/PTableImpl.java |   95 +-
 .../java/org/apache/phoenix/util/IndexUtil.java    |   31 +
 .../org/apache/phoenix/util/PhoenixRuntime.java    |   18 +
 phoenix-core/src/main/protobuf/PTable.proto        |    1 +
 .../src/main/protobuf/ServerCachingService.proto   |    2 +
 .../apache/phoenix/compile/WhereCompilerTest.java  |   88 ++
 .../phoenix/index/VerifySingleIndexRowTest.java    |    2 +-
 .../apache/phoenix/jdbc/PhoenixStatementTest.java  |   38 +
 .../ConnectionQueryServicesHistogramTest.java      |   73 ++
 ...nnectionQueryServicesMetricsHistogramsTest.java |   37 +
 .../ConnectionQueryServicesMetricsManagerTest.java |  112 ++
 .../ConnectionQueryServicesMetricsTest.java        |  106 ++
 .../ConnectionQueryServicesNameMetricsTest.java    |   87 ++
 pom.xml                                            |   18 +-
 108 files changed, 6293 insertions(+), 806 deletions(-)

diff --cc phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
index 41981c41c2,d3df464709..8b1492d5d4
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
@@@ -221,10 -218,8 +221,9 @@@ import org.apache.phoenix.util.PhoenixC
  import org.apache.phoenix.util.PhoenixRuntime;
  import org.apache.phoenix.util.QueryUtil;
  import org.apache.phoenix.util.SQLCloseable;
- import org.apache.phoenix.util.SQLCloseables;
  import org.apache.phoenix.util.ServerUtil;
  import org.apache.phoenix.util.ParseNodeUtil.RewriteResult;
 +import org.apache.phoenix.util.ValidateLastDDLTimestampUtil;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
@@@ -350,9 -342,9 +353,10 @@@ public class PhoenixStatement implement
                          @Override public PhoenixResultSet call() throws SQLException {
                              final long startTime = EnvironmentEdgeManager.currentTimeMillis();
                              boolean success = false;
 +                            boolean updateMetrics = true;
                              boolean pointLookup = false;
                              String tableName = null;
+                             clearResultSet();
                              PhoenixResultSet rs = null;
                              try {
                                  PhoenixConnection conn = getConnection();
diff --cc phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
index 16f391fbe8,fb33efbada..3cf2fb8e0f
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
@@@ -2823,7 -2893,8 +2898,9 @@@ public class MetaDataClient 
                          .setColumns(columns.values())
                          .setPhoenixTTL(PHOENIX_TTL_NOT_DEFINED)
                          .setPhoenixTTLHighWaterMark(MIN_PHOENIX_TTL_HWM)
 +                        .setLastDDLTimestamp(0L)
+                         .setIndexWhere(statement.getWhereClause() == null ? null
+                                 : statement.getWhereClause().toString())
                          .build();
                  connection.addTable(table, MetaDataProtocol.MIN_TABLE_TIMESTAMP);
              }
@@@ -3225,9 -3300,11 +3306,11 @@@
                          .setExternalSchemaId(result.getTable() != null ?
                          result.getTable().getExternalSchemaId() : null)
                          .setStreamingTopicName(streamingTopicName)
+                         .setIndexWhere(statement.getWhereClause() == null ? null
+                                 : statement.getWhereClause().toString())
                          .build();
                  result = new MetaDataMutationResult(code, result.getMutationTime(), table, true);
 -                addTableToCache(result);
 +                addTableToCache(result, false);
                  return table;
              } catch (Throwable e) {
                  TableMetricsManager.updateMetricsForSystemCatalogTableMethod(tableNameNode.toString(),