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

blerer pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 75482d0  Simplify SchemaCQLHelperTest methods
75482d0 is described below

commit 75482d0a8ccd0b0d370aeb7ee60c72cd47a191b0
Author: Kowalczyk <bkowalcz...@gmail.com>
AuthorDate: Mon Dec 6 22:07:13 2021 +0100

    Simplify SchemaCQLHelperTest methods
    
    Patch by Bartlomiej Kowalczyk; reviewed by Ekaterina Dimitrova and
    Benjamin Lerer for CASSANDRA-17181
---
 .../org/apache/cassandra/db/SchemaCQLHelper.java   | 50 +++++++---------------
 .../org/apache/cassandra/schema/TableMetadata.java | 12 +++---
 .../org/apache/cassandra/cql3/ViewSchemaTest.java  |  3 +-
 .../cql3/validation/entities/TupleTypeTest.java    |  1 -
 .../validation/operations/CompactStorageTest.java  | 14 +++---
 .../apache/cassandra/db/SchemaCQLHelperTest.java   |  8 ++--
 .../cassandra/utils/CassandraGenerators.java       |  2 +-
 7 files changed, 35 insertions(+), 55 deletions(-)

diff --git a/src/java/org/apache/cassandra/db/SchemaCQLHelper.java 
b/src/java/org/apache/cassandra/db/SchemaCQLHelper.java
index 5d83a2b..ca9ef25 100644
--- a/src/java/org/apache/cassandra/db/SchemaCQLHelper.java
+++ b/src/java/org/apache/cassandra/db/SchemaCQLHelper.java
@@ -19,6 +19,7 @@
 package org.apache.cassandra.db;
 
 import java.nio.ByteBuffer;
+import java.util.function.Function;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Stream;
@@ -46,34 +47,10 @@ public class SchemaCQLHelper
         // Types come first, as table can't be created without them
         Stream<String> udts = SchemaCQLHelper.getUserTypesAsCQL(metadata, 
types, true);
 
-        return Stream.concat(udts,
-                             reCreateStatements(metadata,
-                                                true,
-                                                true,
-                                                true,
-                                                true));
-    }
-
-    public static Stream<String> reCreateStatements(TableMetadata metadata,
-                                                    boolean 
includeDroppedColumns,
-                                                    boolean internals,
-                                                    boolean ifNotExists,
-                                                    boolean includeIndexes)
-    {
-        // Record re-create schema statements
-        Stream<String> r = Stream.of(metadata)
-                                         .map((tm) -> 
SchemaCQLHelper.getTableMetadataAsCQL(tm,
-                                                                               
             includeDroppedColumns,
-                                                                               
             internals,
-                                                                               
             ifNotExists));
-
-        if (includeIndexes)
-        {
-            // Indexes applied as last, since otherwise they may interfere 
with column drops / re-additions
-            r = Stream.concat(r, SchemaCQLHelper.getIndexesAsCQL(metadata, 
ifNotExists));
-        }
+        Stream<String> tableMatadata = 
Stream.of(SchemaCQLHelper.getTableMetadataAsCQL(metadata));
 
-        return r;
+        Stream<String> indexes = SchemaCQLHelper.getIndexesAsCQL(metadata, 
true);
+        return Stream.of(udts, tableMatadata, 
indexes).flatMap(Function.identity());
     }
 
     /**
@@ -83,20 +60,25 @@ public class SchemaCQLHelper
      * that will not contain everything needed for user types.
      */
     @VisibleForTesting
-    public static String getTableMetadataAsCQL(TableMetadata metadata,
-                                               boolean includeDroppedColumns,
-                                               boolean internals,
-                                               boolean ifNotExists)
+    public static String getTableMetadataAsCQL(TableMetadata metadata)
     {
         if (metadata.isView())
         {
             KeyspaceMetadata keyspaceMetadata = 
Schema.instance.getKeyspaceMetadata(metadata.keyspace);
             ViewMetadata viewMetadata = 
keyspaceMetadata.views.get(metadata.name).orElse(null);
             assert viewMetadata != null;
-            return viewMetadata.toCqlString(internals, ifNotExists);
+            /*
+             * first argument(withInternals) indicates to include table 
metadata id and clustering columns order,
+             * second argument(ifNotExists) instructs to include IF NOT EXISTS 
statement within creation statements.
+             */
+            return viewMetadata.toCqlString(true, true);
         }
 
-        return metadata.toCqlString(includeDroppedColumns, internals, 
ifNotExists);
+        /*
+         * With addition to withInternals and ifNotExists arguments, 
includeDroppedColumns will include dropped
+         * columns as ALTER TABLE statements appended into the snapshot.
+         */
+        return metadata.toCqlString(true, true, true);
     }
 
     /**
@@ -162,7 +144,7 @@ public class SchemaCQLHelper
     private static UserType getType(TableMetadata metadata, Types types, 
ByteBuffer name)
     {
         return types.get(name)
-                    .orElseThrow(() -> new 
IllegalStateException(String.format("user type %s is part of table %s 
definition but its definition was missing", 
+                    .orElseThrow(() -> new 
IllegalStateException(String.format("user type %s is part of table %s 
definition but its definition was missing",
                                                                               
UTF8Type.instance.getString(name),
                                                                               
metadata)));
     }
diff --git a/src/java/org/apache/cassandra/schema/TableMetadata.java 
b/src/java/org/apache/cassandra/schema/TableMetadata.java
index 7205b94..fcd1d58 100644
--- a/src/java/org/apache/cassandra/schema/TableMetadata.java
+++ b/src/java/org/apache/cassandra/schema/TableMetadata.java
@@ -1149,17 +1149,17 @@ public class TableMetadata implements SchemaElement
     }
 
     public String toCqlString(boolean includeDroppedColumns,
-                              boolean internals,
+                              boolean withInternals,
                               boolean ifNotExists)
     {
         CqlBuilder builder = new CqlBuilder(2048);
-        appendCqlTo(builder, includeDroppedColumns, internals, ifNotExists);
+        appendCqlTo(builder, includeDroppedColumns, withInternals, 
ifNotExists);
         return builder.toString();
     }
 
     public void appendCqlTo(CqlBuilder builder,
                             boolean includeDroppedColumns,
-                            boolean internals,
+                            boolean withInternals,
                             boolean ifNotExists)
     {
         assert !isView();
@@ -1198,7 +1198,7 @@ public class TableMetadata implements SchemaElement
         builder.append(" WITH ")
                .increaseIndent();
 
-        appendTableOptions(builder, internals);
+        appendTableOptions(builder, withInternals);
 
         builder.decreaseIndent();
 
@@ -1281,9 +1281,9 @@ public class TableMetadata implements SchemaElement
                .newLine();
     }
 
-    void appendTableOptions(CqlBuilder builder, boolean internals)
+    void appendTableOptions(CqlBuilder builder, boolean withInternals)
     {
-        if (internals)
+        if (withInternals)
             builder.append("ID = ")
                    .append(id.toString())
                    .newLine()
diff --git a/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java 
b/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
index 03dc0c5..b74391b 100644
--- a/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
+++ b/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
@@ -849,8 +849,7 @@ public class ViewSchemaTest extends ViewAbstractTest
         String view = createView(createView);
 
         ColumnFamilyStore mv = 
Keyspace.open(keyspace()).getColumnFamilyStore(view);
-
-        assertTrue(SchemaCQLHelper.getTableMetadataAsCQL(mv.metadata(), true, 
true, true)
+        assertTrue(SchemaCQLHelper.getTableMetadataAsCQL(mv.metadata())
                                   .startsWith(String.format(viewSnapshotSchema,
                                                             keyspace(),
                                                             view,
diff --git 
a/test/unit/org/apache/cassandra/cql3/validation/entities/TupleTypeTest.java 
b/test/unit/org/apache/cassandra/cql3/validation/entities/TupleTypeTest.java
index f9ef4cc..c23a32a 100644
--- a/test/unit/org/apache/cassandra/cql3/validation/entities/TupleTypeTest.java
+++ b/test/unit/org/apache/cassandra/cql3/validation/entities/TupleTypeTest.java
@@ -300,7 +300,6 @@ public class TupleTypeTest extends CQLTester
             TupleType tupleType = testcase.type;
             createTable("CREATE TABLE %s (pk int, ck " + toCqlType(tupleType) 
+ ", value int, PRIMARY KEY(pk, ck))" +
                         " WITH CLUSTERING ORDER BY (ck "+order.name()+")");
-            String cql = 
SchemaCQLHelper.getTableMetadataAsCQL(currentTableMetadata(), false, false, 
false);
             SortedMap<ByteBuffer, Integer> map = new 
TreeMap<>(order.apply(tupleType));
             int count = 0;
             for (ByteBuffer value : testcase.uniqueRows)
diff --git 
a/test/unit/org/apache/cassandra/cql3/validation/operations/CompactStorageTest.java
 
b/test/unit/org/apache/cassandra/cql3/validation/operations/CompactStorageTest.java
index 39b76c3..c918810 100644
--- 
a/test/unit/org/apache/cassandra/cql3/validation/operations/CompactStorageTest.java
+++ 
b/test/unit/org/apache/cassandra/cql3/validation/operations/CompactStorageTest.java
@@ -4638,7 +4638,7 @@ public class CompactStorageTest extends CQLTester
 
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace).getColumnFamilyStore(table);
 
-        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), 
true, true, true);
+        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata());
         String expected = "CREATE TABLE IF NOT EXISTS 
cql_test_keyspace_compact.test_table_compact (\n" +
                           "    pk1 varint,\n" +
                           "    pk2 ascii,\n" +
@@ -4674,7 +4674,7 @@ public class CompactStorageTest extends CQLTester
 
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace).getColumnFamilyStore(table);
 
-        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), 
true, true, true);
+        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata());
         String expected = "CREATE TABLE IF NOT EXISTS 
cql_test_keyspace_counter.test_table_counter (\n" +
                           "    pk1 varint,\n" +
                           "    pk2 ascii,\n" +
@@ -4699,7 +4699,7 @@ public class CompactStorageTest extends CQLTester
 
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace()).getColumnFamilyStore(tableName);
 
-        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), 
true, true, true);
+        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata());
         String expected = "CREATE TABLE IF NOT EXISTS " + keyspace() + "." + 
tableName + " (\n" +
                         "    pk1 varint,\n" +
                         "    reg1 int,\n" +
@@ -4721,7 +4721,7 @@ public class CompactStorageTest extends CQLTester
                                        " WITH COMPACT STORAGE");
 
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace()).getColumnFamilyStore(tableName);
-        assertTrue(SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), true, 
true, true).contains(
+        
assertTrue(SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata()).contains(
         "CREATE TABLE IF NOT EXISTS " + keyspace() + "." + tableName + " (\n" +
         "    pk1 varint,\n" +
         "    reg1 int,\n" +
@@ -4743,7 +4743,7 @@ public class CompactStorageTest extends CQLTester
 
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace()).getColumnFamilyStore(tableName);
 
-        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), 
true, true, true);
+        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata());
         String expected = "CREATE TABLE IF NOT EXISTS " + keyspace() + "." + 
tableName + " (\n" +
                           "    pk1 varint,\n" +
                           "    reg1 counter,\n" +
@@ -4766,7 +4766,7 @@ public class CompactStorageTest extends CQLTester
 
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace()).getColumnFamilyStore(tableName);
 
-        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), 
true, true, true);
+        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata());
         String expected = "CREATE TABLE IF NOT EXISTS " + keyspace() + "." + 
tableName + " (\n" +
                           "    pk1 varint,\n" +
                           "    ck1 int,\n" +
@@ -4789,7 +4789,7 @@ public class CompactStorageTest extends CQLTester
 
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace()).getColumnFamilyStore(tableName);
 
-        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), 
true, true, true);
+        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata());
         String expected = "CREATE TABLE IF NOT EXISTS " + keyspace() + "." + 
tableName + " (\n" +
                           "    pk1 varint,\n" +
                           "    ck1 int,\n" +
diff --git a/test/unit/org/apache/cassandra/db/SchemaCQLHelperTest.java 
b/test/unit/org/apache/cassandra/db/SchemaCQLHelperTest.java
index 5a6b69e..03aa32d 100644
--- a/test/unit/org/apache/cassandra/db/SchemaCQLHelperTest.java
+++ b/test/unit/org/apache/cassandra/db/SchemaCQLHelperTest.java
@@ -167,7 +167,7 @@ public class SchemaCQLHelperTest extends CQLTester
                           "    reg2 varint,\n" +
                           "    st1 varint static,\n" +
                           "    PRIMARY KEY (pk1, ck1)\n) WITH ID =";
-        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), 
true, true, true);
+        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata());
 
         assertThat(actual,
                    allOf(startsWith(expected),
@@ -208,7 +208,7 @@ public class SchemaCQLHelperTest extends CQLTester
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace).getColumnFamilyStore(table);
 
         // when re-adding, column is present as both column and as dropped 
column record.
-        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), 
true, true, true);
+        String actual = SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata());
         String expected = "CREATE TABLE IF NOT EXISTS 
cql_test_keyspace_readded_columns.test_table_readded_columns (\n" +
                           "    pk1 varint,\n" +
                           "    ck1 varint,\n" +
@@ -247,7 +247,7 @@ public class SchemaCQLHelperTest extends CQLTester
 
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace).getColumnFamilyStore(table);
 
-        assertThat(SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), true, 
true, true),
+        assertThat(SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata()),
                    startsWith(
                    "CREATE TABLE IF NOT EXISTS 
cql_test_keyspace_create_table.test_table_create_table (\n" +
                    "    pk1 varint,\n" +
@@ -294,7 +294,7 @@ public class SchemaCQLHelperTest extends CQLTester
 
         ColumnFamilyStore cfs = 
Keyspace.open(keyspace).getColumnFamilyStore(table);
 
-        assertThat(SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata(), true, 
true, true),
+        assertThat(SchemaCQLHelper.getTableMetadataAsCQL(cfs.metadata()),
                    containsString("CLUSTERING ORDER BY (cl1 ASC)\n" +
                             "    AND additional_write_policy = 'ALWAYS'\n" +
                             "    AND bloom_filter_fp_chance = 1.0\n" +
diff --git a/test/unit/org/apache/cassandra/utils/CassandraGenerators.java 
b/test/unit/org/apache/cassandra/utils/CassandraGenerators.java
index 4d51f5c..169363a 100644
--- a/test/unit/org/apache/cassandra/utils/CassandraGenerators.java
+++ b/test/unit/org/apache/cassandra/utils/CassandraGenerators.java
@@ -283,7 +283,7 @@ public final class CassandraGenerators
                 {
                     // to make sure the correct indents are taken, convert to 
CQL, then replace newlines with the indents
                     // then prefix with the indents.
-                    String cql = 
SchemaCQLHelper.getTableMetadataAsCQL((TableMetadata) value, true, true, false);
+                    String cql = 
SchemaCQLHelper.getTableMetadataAsCQL((TableMetadata) value);
                     cql = 
NEWLINE_PATTERN.matcher(cql).replaceAll(Matcher.quoteReplacement("\n  " + 
spacer));
                     cql = "\n  " + spacer + cql;
                     value = cql;

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to