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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]