priyankporwal commented on a change in pull request #517: PHOENIX-5211 
Consistent Immutable Global Indexes for Non-Transactiona…
URL: https://github.com/apache/phoenix/pull/517#discussion_r293017075
 
 

 ##########
 File path: 
phoenix-core/src/it/java/org/apache/phoenix/end2end/index/ImmutableIndexIT.java
 ##########
 @@ -259,7 +275,122 @@ private void assertIndexMutations(Connection conn) 
throws SQLException {
                 (transactionProvider != null && 
                  
transactionProvider.isUnsupported(Feature.MAINTAIN_LOCAL_INDEX_ON_SERVER)), 
iterator.hasNext());
     }
-    
+
+    private void createTableAndIndexForConsistentIndex(Connection conn, String 
tableName, String indexName, int numOfRowsToInsert)
+            throws Exception {
+        String ddl = "CREATE TABLE " + TABLE_NAME + TestUtil.TEST_TABLE_SCHEMA 
+ tableDDLOptions;
+        INDEX_DDL =
+                "CREATE " + " INDEX IF NOT EXISTS " + 
SchemaUtil.getTableNameFromFullName(indexName)
+                        + " ON " + tableName + " (long_pk, varchar_pk)"
+                        + " INCLUDE (long_col1, long_col2) ";
+
+        Statement stmt = conn.createStatement();
+        stmt.execute(ddl);
+        conn.createStatement().execute(INDEX_DDL);
+        upsertRows(conn, tableName, numOfRowsToInsert);
+        conn.commit();
+
+        Thread.sleep(15000);
+    }
+
+    @Test
+    public void testGlobalImmutableIndexCreate() throws Exception {
+        if (localIndex || transactionProvider != null) {
+            return;
+        }
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+        String tableName = "TBL_" + generateUniqueName();
+        String indexName = "IND_" + generateUniqueName();
+        String fullTableName = 
SchemaUtil.getTableName(TestUtil.DEFAULT_SCHEMA_NAME, tableName);
+        String fullIndexName = 
SchemaUtil.getTableName(TestUtil.DEFAULT_SCHEMA_NAME, indexName);
+        TABLE_NAME = fullTableName;
+        try (Connection conn = DriverManager.getConnection(getUrl(), props)) {
+            conn.setAutoCommit(true);
+            int num = 1;
+            createTableAndIndexForConsistentIndex(conn, fullTableName, 
fullIndexName, num);
+           // TestUtil.waitForIndexRebuild(conn, indexName, 
PIndexState.ACTIVE);
+            ResultSet rs;
+            rs = conn.createStatement().executeQuery("SELECT /*+ NO_INDEX */ 
COUNT(*) FROM " + TABLE_NAME);
+            assertTrue(rs.next());
+            assertEquals(num,rs.getInt(1));
+            rs = conn.createStatement().executeQuery("SELECT COUNT(*) FROM " + 
fullIndexName);
+            assertTrue(rs.next());
+            assertEquals(num,rs.getInt(1));
+            verifyRowsForEmptyColValue(conn, fullIndexName, TRUE_BYTES);
+        }
+    }
+
+    @Test
+    public void testGlobalImmutableIndexDelete() throws Exception {
+        if (localIndex || transactionProvider != null) {
+            return;
+        }
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+        String tableName = "TBL_" + generateUniqueName();
+        String indexName = "IND_" + generateUniqueName();
+        String fullTableName = 
SchemaUtil.getTableName(TestUtil.DEFAULT_SCHEMA_NAME, tableName);
+        String fullIndexName = 
SchemaUtil.getTableName(TestUtil.DEFAULT_SCHEMA_NAME, indexName);
+        TABLE_NAME = fullTableName;
 
 Review comment:
   Same concern here with changing static member field

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to