[ 
https://issues.apache.org/jira/browse/PHOENIX-6711?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17535110#comment-17535110
 ] 

ASF GitHub Bot commented on PHOENIX-6711:
-----------------------------------------

gjacoby126 commented on code in PR #1437:
URL: https://github.com/apache/phoenix/pull/1437#discussion_r870740147


##########
phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionlessQueryServicesImpl.java:
##########
@@ -18,6 +18,7 @@
 package org.apache.phoenix.query;
 
 import static 
org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.INDEX_STATE_BYTES;
+import static 
org.apache.phoenix.query.QueryServicesOptions.DEFAULT_SKIP_SYSTEM_TABLES_EXISTENCE_CHECK;

Review Comment:
   imported but not used?



##########
phoenix-core/src/main/java/org/apache/phoenix/iterate/TableResultIterator.java:
##########
@@ -143,6 +143,20 @@ public TableResultIterator(MutationState mutationState, 
Scan scan, ScanMetricsHo
         ScanUtil.setScanAttributesForClient(scan, table, 
plan.getContext().getConnection());
     }
 
+    public TableResultIterator(MutationState mutationState, Scan scan, 
ScanMetricsHolder scanMetricsHolder,

Review Comment:
   Is this just visible for testing, or is this exposed to other things? (I 
believe this is a subtask of an improvement to hive-connector and 
spark-connector?)  
   
   A Javadoc or comment explaining its purpose would be helpful



##########
phoenix-core/src/it/java/org/apache/phoenix/query/SkipSystemTablesExistenceCheckIT.java:
##########
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.phoenix.query;
+
+import org.apache.phoenix.end2end.ParallelStatsDisabledIT;
+import org.apache.phoenix.end2end.ParallelStatsDisabledTest;
+import org.apache.phoenix.jdbc.PhoenixConnection;
+import org.apache.phoenix.jdbc.PhoenixStatement;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import static org.apache.phoenix.util.TestUtil.PHOENIX_JDBC_URL;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+
+@Category(ParallelStatsDisabledTest.class)
+@SuppressWarnings("deprecated")
+public class SkipSystemTablesExistenceCheckIT extends ParallelStatsDisabledIT {
+
+    @Test
+    public void testTableResultIterator() throws Exception {
+        Connection conn = DriverManager.getConnection(PHOENIX_JDBC_URL);
+        PhoenixConnection phoenixConnection = 
conn.unwrap(PhoenixConnection.class);
+        String tableName = generateUniqueName();
+
+        conn.createStatement().execute("CREATE TABLE " + tableName
+                + " (A UNSIGNED_LONG NOT NULL PRIMARY KEY, B VARCHAR(10))");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES 
(1, 'A')");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES 
(2, 'B')");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES 
(3, 'C')");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES 
(4, 'D')");
+        conn.commit();
+
+        scanTable(conn, tableName);
+        Properties props = new Properties();
+        props.setProperty(QueryServices.SKIP_SYSTEM_TABLES_EXISTENCE_CHECK, 
"true");
+        ConnectionQueryServicesImpl queryServices = 
((ConnectionQueryServicesImpl)phoenixConnection.getQueryServices());
+        queryServices.setInitialized(false);
+        queryServices.init(PHOENIX_JDBC_URL, props);

Review Comment:
   Not sure I understand the purpose of the test. Since we've already committed 
the connection, shouldn't scanTable find 4 rows regardless of whether the 
system catalog check is present, or how often we've initialized the CQSI? 





> Add support of skipping the system tables existence check during connection 
> initialisation and create new table result iterator which doesn't require 
> fetch meta data of table
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-6711
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6711
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Rajeshbabu Chintaguntla
>            Assignee: Rajeshbabu Chintaguntla
>            Priority: Major
>             Fix For: 5.1.2
>
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to