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

stoty pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/4.x by this push:
     new acb4884  PHOENIX-6574 Executing "DROP TABLE" drops all sequences
acb4884 is described below

commit acb4884c3d49f73d8e47316a9b4ce714877e7e5e
Author: Istvan Toth <st...@apache.org>
AuthorDate: Mon Oct 18 14:33:14 2021 +0200

    PHOENIX-6574 Executing "DROP TABLE" drops all sequences
---
 .../org/apache/phoenix/end2end/SequenceIT.java     | 22 ++++++++++++++++++++++
 .../java/org/apache/phoenix/util/MetaDataUtil.java | 10 +++++-----
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SequenceIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SequenceIT.java
index c5d6d1a..fdb2eab 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SequenceIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SequenceIT.java
@@ -33,6 +33,7 @@ import java.sql.ParameterMetaData;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.util.List;
 import java.util.Properties;
 
@@ -1466,6 +1467,27 @@ public class SequenceIT extends ParallelStatsDisabledIT {
         assertEquals(5, rs.getInt(2));
     }
 
+    @Test
+    public void testBug6574() throws Exception {
+        String sequenceName = generateSequenceNameWithSchema();
+        String tableName = generateTableNameWithSchema();
+
+        try(Statement stmt = conn.createStatement()) {
+            stmt.execute("CREATE SEQUENCE " + sequenceName);
+            stmt.execute("CREATE TABLE " + tableName + " (id integer primary 
key)");
+
+            String query = "SELECT * FROM SYSTEM.\"SEQUENCE\" where 
SEQUENCE_NAME = '" + getNameWithoutSchema(sequenceName) + "'";
+            ResultSet rs = stmt.executeQuery(query);
+            assertTrue(rs.next());
+            rs.close();
+
+            stmt.execute("DROP TABLE " + tableName);
+            rs = stmt.executeQuery(query);
+            assertTrue(rs.next());
+            rs.close();
+        }
+    }
+
     private static String getSchemaName(String tableName) {
         return tableName.substring(0, tableName.indexOf("."));
     }
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java 
b/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
index 504459f..5fdc9f9 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
@@ -819,11 +819,11 @@ public class MetaDataUtil {
             throws SQLException {
         String schemaName = getViewIndexSequenceSchemaName(name, 
isNamespaceMapped);
         String sequenceName = getViewIndexSequenceName(name, null, 
isNamespaceMapped);
-        connection.createStatement().executeUpdate("DELETE FROM " + 
PhoenixDatabaseMetaData.SYSTEM_SEQUENCE + " WHERE "
-                + PhoenixDatabaseMetaData.SEQUENCE_SCHEMA
-                + (schemaName.length() > 0 ? "='" + schemaName + "'" : " IS 
NULL") + (isNamespaceMapped
-                        ? " AND " + PhoenixDatabaseMetaData.SEQUENCE_NAME + " 
= '" + sequenceName + "'" : ""));
-
+        connection.createStatement().executeUpdate("DELETE FROM "
+                + PhoenixDatabaseMetaData.SYSTEM_SEQUENCE
+                + " WHERE " + PhoenixDatabaseMetaData.SEQUENCE_SCHEMA
+                + (schemaName.length() > 0 ? "='" + schemaName + "'" : " IS 
NULL")
+                + " AND " + PhoenixDatabaseMetaData.SEQUENCE_NAME + " = '" + 
sequenceName + "'" );
     }
     
     /**

Reply via email to