diff --git a/.circleci/config.yml b/.circleci/config.yml index 385de528a128..d6fe26b291ed 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,10 +3,10 @@ jobs: j8_jvm_upgrade_dtests: docker: - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210105 - resource_class: medium + resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l - parallelism: 1 + parallelism: 2 steps: - attach_workspace: at: /home/cassandra @@ -86,10 +86,10 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 build: @@ -167,19 +167,19 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 j8_dtests-no-vnodes: docker: - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210105 - resource_class: medium + resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l - parallelism: 4 + parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -225,19 +225,19 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 j8_upgradetests-no-vnodes: docker: - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210105 - resource_class: medium + resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l - parallelism: 4 + parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -324,16 +324,16 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 utests_stress: docker: - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210105 - resource_class: medium + resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l parallelism: 1 @@ -370,19 +370,19 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 j8_unit_tests: docker: - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210105 - resource_class: medium + resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l - parallelism: 4 + parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -462,19 +462,19 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 j8_dtests-with-vnodes: docker: - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210105 - resource_class: medium + resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l - parallelism: 4 + parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -520,19 +520,19 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 j8_jvm_dtests: docker: - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210105 - resource_class: medium + resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l - parallelism: 1 + parallelism: 2 steps: - attach_workspace: at: /home/cassandra @@ -612,16 +612,16 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 utests_long: docker: - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210105 - resource_class: medium + resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l parallelism: 1 @@ -658,19 +658,19 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 utests_compression: docker: - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:20210105 - resource_class: medium + resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l - parallelism: 4 + parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -750,10 +750,10 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 j8_dtest_jars_build: @@ -825,10 +825,10 @@ jobs: - CASS_DRIVER_NO_EXTENSIONS: true - CASS_DRIVER_NO_CYTHON: true - CASSANDRA_SKIP_SYNC: true - - DTEST_REPO: git://github.com/apache/cassandra-dtest.git - - DTEST_BRANCH: trunk - - CCM_MAX_HEAP_SIZE: 1024M - - CCM_HEAP_NEWSIZE: 256M + - DTEST_REPO: git://github.com/adelapena/cassandra-dtest.git + - DTEST_BRANCH: 16483-manifest + - CCM_MAX_HEAP_SIZE: 2048M + - CCM_HEAP_NEWSIZE: 512M - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64 - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 workflows: diff --git a/src/java/org/apache/cassandra/db/ReadCommand.java b/src/java/org/apache/cassandra/db/ReadCommand.java index 0543173cf955..548b0c793318 100644 --- a/src/java/org/apache/cassandra/db/ReadCommand.java +++ b/src/java/org/apache/cassandra/db/ReadCommand.java @@ -686,8 +686,8 @@ protected Predicate getPurgeEvaluator() public String toCQLString() { StringBuilder sb = new StringBuilder(); - sb.append("SELECT ").append(columnFilter()); - sb.append(" FROM ").append(metadata().ksName).append('.').append(metadata.cfName); + sb.append("SELECT ").append(columnFilter().toCQLString()); + sb.append(" FROM ").append(metadata().ksName).append('.').append(metadata().cfName); appendCQLWhereClause(sb); if (limits() != DataLimits.NONE) diff --git a/src/java/org/apache/cassandra/db/filter/ColumnFilter.java b/src/java/org/apache/cassandra/db/filter/ColumnFilter.java index f4054311e53a..dfbce4a4f494 100644 --- a/src/java/org/apache/cassandra/db/filter/ColumnFilter.java +++ b/src/java/org/apache/cassandra/db/filter/ColumnFilter.java @@ -369,7 +369,7 @@ public ColumnFilter build() SortedSetMultimap s = null; if (subSelections != null) { - s = TreeMultimap.create(Comparator.naturalOrder(), Comparator.naturalOrder()); + s = TreeMultimap.create(Comparator.naturalOrder(), Comparator.naturalOrder()); for (ColumnSubselection subSelection : subSelections) s.put(subSelection.column().name, subSelection); } @@ -405,29 +405,47 @@ public boolean equals(Object other) @Override public String toString() { - String prefix = ""; if (isFetchAll && queried == null) return "*/*"; + String prefix = ""; if (isFetchAll) prefix = "*/"; if (queried.isEmpty()) return prefix + "[]"; - StringJoiner joiner = new StringJoiner(", ", "[", "]"); - Iterator it = queried.selectOrderIterator(); - while (it.hasNext()) + return prefix + toString(false); + } + + public String toCQLString() + { + if (queried == null || queried.isEmpty()) + return "*"; + + return toString(true); + } + + private String toString(boolean cql) + { + Iterator columns = queried.selectOrderIterator(); + StringJoiner joiner = cql ? new StringJoiner(", ") : new StringJoiner(", ", "[", "]"); + + while (columns.hasNext()) { - ColumnDefinition column = it.next(); - SortedSet s = subSelections != null ? subSelections.get(column.name) : Collections.emptySortedSet(); + ColumnDefinition column = columns.next(); + String columnName = cql ? column.name.toCQLString() : String.valueOf(column.name); + + SortedSet s = subSelections != null + ? subSelections.get(column.name) + : Collections.emptySortedSet(); if (s.isEmpty()) - joiner.add(String.valueOf(column.name)); + joiner.add(columnName); else - s.forEach(subSel -> joiner.add(String.format("%s%s", column.name , subSel))); + s.forEach(subSel -> joiner.add(String.format("%s%s", columnName, subSel))); } - return prefix + joiner.toString(); + return joiner.toString(); } public static class Serializer @@ -501,7 +519,7 @@ public ColumnFilter deserialize(DataInputPlus in, int version, CFMetaData metada SortedSetMultimap subSelections = null; if (hasSubSelections) { - subSelections = TreeMultimap.create(Comparator.naturalOrder(), Comparator.naturalOrder()); + subSelections = TreeMultimap.create(Comparator.naturalOrder(), Comparator.naturalOrder()); int size = (int)in.readUnsignedVInt(); for (int i = 0; i < size; i++) { diff --git a/test/unit/org/apache/cassandra/db/filter/ColumnFilterTest.java b/test/unit/org/apache/cassandra/db/filter/ColumnFilterTest.java index 1ddf0390a086..adf074f9c107 100644 --- a/test/unit/org/apache/cassandra/db/filter/ColumnFilterTest.java +++ b/test/unit/org/apache/cassandra/db/filter/ColumnFilterTest.java @@ -34,6 +34,7 @@ import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.ColumnDefinition; import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.cql3.ColumnIdentifier; import org.apache.cassandra.db.PartitionColumns; import org.apache.cassandra.db.marshal.Int32Type; import org.apache.cassandra.db.marshal.SetType; @@ -61,12 +62,14 @@ public class ColumnFilterTest .addStaticColumn("s2", SetType.getInstance(Int32Type.instance, true)) .addRegularColumn("v1", Int32Type.instance) .addRegularColumn("v2", SetType.getInstance(Int32Type.instance, true)) + .addRegularColumn(ColumnIdentifier.getInterned("Escaped Name", true), Int32Type.instance) .build(); private final ColumnDefinition s1 = metadata.getColumnDefinition(ByteBufferUtil.bytes("s1")); private final ColumnDefinition s2 = metadata.getColumnDefinition(ByteBufferUtil.bytes("s2")); private final ColumnDefinition v1 = metadata.getColumnDefinition(ByteBufferUtil.bytes("v1")); private final ColumnDefinition v2 = metadata.getColumnDefinition(ByteBufferUtil.bytes("v2")); + private final ColumnDefinition escaped = metadata.getColumnDefinition(ByteBufferUtil.bytes("Escaped Name")); private final CellPath path0 = CellPath.create(ByteBufferUtil.bytes(0)); private final CellPath path1 = CellPath.create(ByteBufferUtil.bytes(1)); private final CellPath path2 = CellPath.create(ByteBufferUtil.bytes(2)); @@ -102,6 +105,7 @@ public void testSelectAll() Consumer check = filter -> { testRoundTrips(filter); assertEquals("*/*", filter.toString()); + assertEquals("*", filter.toCQLString()); assertFetchedQueried(true, true, filter, v1, v2, s1, s2); assertCellFetchedQueried(true, true, filter, v2, path0, path1, path2, path3, path4); assertCellFetchedQueried(true, true, filter, s2, path0, path1, path2, path3, path4); @@ -119,6 +123,7 @@ public void testSelectNothing() Consumer check = filter -> { testRoundTrips(filter); assertEquals("[]", filter.toString()); + assertEquals("*", filter.toCQLString()); assertFetchedQueried(false, false, filter, v1, v2, s1, s2); assertCellFetchedQueried(false, false, filter, v2, path0, path1, path2, path3, path4); assertCellFetchedQueried(false, false, filter, s2, path0, path1, path2, path3, path4); @@ -134,6 +139,7 @@ public void testSelectSimpleColumn() Consumer check = filter -> { testRoundTrips(filter); assertEquals("[v1]", filter.toString()); + assertEquals("v1", filter.toCQLString()); assertFetchedQueried(true, true, filter, v1); assertFetchedQueried(false, false, filter, v2, s1, s2); assertCellFetchedQueried(false, false, filter, v2, path0, path1, path2, path3, path4); @@ -144,12 +150,30 @@ public void testSelectSimpleColumn() check.accept(ColumnFilter.selectionBuilder().add(v1).build()); } + @Test + public void testSelectEscapedColumn() + { + Consumer check = filter -> { + testRoundTrips(filter); + assertEquals("[Escaped Name]", filter.toString()); + assertEquals("\"Escaped Name\"", filter.toCQLString()); + assertFetchedQueried(true, true, filter, escaped); + assertFetchedQueried(false, false, filter, v2, s1, s2); + assertCellFetchedQueried(false, false, filter, v2, path0, path1, path2, path3, path4); + assertCellFetchedQueried(false, false, filter, s2, path0, path1, path2, path3, path4); + }; + + check.accept(ColumnFilter.selection(PartitionColumns.builder().add(escaped).build())); + check.accept(ColumnFilter.selectionBuilder().add(escaped).build()); + } + @Test public void testSelectComplexColumn() { Consumer check = filter -> { testRoundTrips(filter); assertEquals("[v2]", filter.toString()); + assertEquals("v2", filter.toCQLString()); assertFetchedQueried(true, true, filter, v2); assertFetchedQueried(false, false, filter, v1, s1, s2); assertCellFetchedQueried(true, true, filter, v2, path0, path1, path2, path3, path4); @@ -166,6 +190,7 @@ public void testSelectStaticColumn() Consumer check = filter -> { testRoundTrips(filter); assertEquals("[s1]", filter.toString()); + assertEquals("s1", filter.toCQLString()); assertFetchedQueried(true, true, filter, s1); assertFetchedQueried(false, false, filter, v1, v2, s2); assertCellFetchedQueried(false, false, filter, v2, path0, path1, path2, path3, path4); @@ -182,6 +207,7 @@ public void testSelectStaticComplexColumn() Consumer check = filter -> { testRoundTrips(filter); assertEquals("[s2]", filter.toString()); + assertEquals("s2", filter.toCQLString()); assertFetchedQueried(true, true, filter, s2); assertFetchedQueried(false, false, filter, v1, v2, s1); assertCellFetchedQueried(false, false, filter, v2, path0, path1, path2, path3, path4); @@ -198,6 +224,7 @@ public void testSelectColumns() Consumer check = filter -> { testRoundTrips(filter); assertEquals("[s1, s2, v1, v2]", filter.toString()); + assertEquals("s1, s2, v1, v2", filter.toCQLString()); assertFetchedQueried(true, true, filter, v1, v2, s1, s2); assertCellFetchedQueried(true, true, filter, v2, path0, path1, path2, path3, path4); assertCellFetchedQueried(true, true, filter, s2, path0, path1, path2, path3, path4); @@ -213,6 +240,7 @@ public void testSelectIndividualCells() ColumnFilter filter = ColumnFilter.selectionBuilder().select(v2, path1).select(v2, path3).build(); testRoundTrips(filter); assertEquals("[v2[1], v2[3]]", filter.toString()); + assertEquals("v2[1], v2[3]", filter.toCQLString()); assertFetchedQueried(true, true, filter, v2); assertFetchedQueried(false, false, filter, v1, s1, s2); assertCellFetchedQueried(true, true, filter, v2, path1, path3); @@ -226,6 +254,7 @@ public void testSelectIndividualCellsFromStatic() ColumnFilter filter = ColumnFilter.selectionBuilder().select(s2, path1).select(s2, path3).build(); testRoundTrips(filter); assertEquals("[s2[1], s2[3]]", filter.toString()); + assertEquals("s2[1], s2[3]", filter.toCQLString()); assertFetchedQueried(true, true, filter, s2); assertFetchedQueried(false, false, filter, v1, v2, s1); assertCellFetchedQueried(false, false, filter, v2, path0, path1, path2, path3, path4); @@ -239,6 +268,7 @@ public void testSelectCellSlice() ColumnFilter filter = ColumnFilter.selectionBuilder().slice(v2, path1, path3).build(); testRoundTrips(filter); assertEquals("[v2[1:3]]", filter.toString()); + assertEquals("v2[1:3]", filter.toCQLString()); assertFetchedQueried(true, true, filter, v2); assertFetchedQueried(false, false, filter, v1, s1, s2); assertCellFetchedQueried(true, true, filter, v2, path1, path2, path3); @@ -252,6 +282,7 @@ public void testSelectCellSliceFromStatic() ColumnFilter filter = ColumnFilter.selectionBuilder().slice(s2, path1, path3).build(); testRoundTrips(filter); assertEquals("[s2[1:3]]", filter.toString()); + assertEquals("s2[1:3]", filter.toCQLString()); assertFetchedQueried(true, true, filter, s2); assertFetchedQueried(false, false, filter, v1, v2, s1); assertCellFetchedQueried(false, false, filter, v2, path0, path1, path2, path3, path4); @@ -272,6 +303,7 @@ public void testSelectColumnsWithCellsAndSlices() .build(); testRoundTrips(filter); assertEquals("[s1, s2[0], s2[2:4], v1, v2[0:2], v2[4]]", filter.toString()); + assertEquals("s1, s2[0], s2[2:4], v1, v2[0:2], v2[4]", filter.toCQLString()); assertFetchedQueried(true, true, filter, v1, v2, s1, s2); assertCellFetchedQueried(true, true, filter, v2, path0, path1, path2, path4); assertCellFetchedQueried(false, false, filter, v2, path3); @@ -290,6 +322,7 @@ public void testSelectSimpleColumnWithMetadata() if (anyNodeOn30) { assertEquals("*/*", filter.toString()); + assertEquals("*", filter.toCQLString()); assertFetchedQueried(true, true, filter, s1, s2, v2); assertCellFetchedQueried(true, true, filter, v2, path0, path1, path2, path3, path4); assertCellFetchedQueried(true, true, filter, s2, path0, path1, path2, path3, path4); @@ -297,6 +330,7 @@ public void testSelectSimpleColumnWithMetadata() else { assertEquals("*/[v1]", filter.toString()); + assertEquals("v1", filter.toCQLString()); assertFetchedQueried(true, false, filter, s1, s2, v2); assertCellFetchedQueried(true, false, filter, v2, path0, path1, path2, path3, path4); assertCellFetchedQueried(true, false, filter, s2, path0, path1, path2, path3, path4); @@ -316,6 +350,7 @@ public void testSelectStaticColumnWithMetadata() if (anyNodeOn30) { assertEquals("*/*", filter.toString()); + assertEquals("*", filter.toCQLString()); assertFetchedQueried(true, true, filter, v1, v2, s2); assertCellFetchedQueried(true, true, filter, v2, path0, path1, path2, path3, path4); assertCellFetchedQueried(true, true, filter, s2, path0, path1, path2, path3, path4); @@ -323,6 +358,7 @@ public void testSelectStaticColumnWithMetadata() else { assertEquals("*/[s1]", filter.toString()); + assertEquals("s1", filter.toCQLString()); assertFetchedQueried(true, false, filter, v1, v2, s2); assertCellFetchedQueried(true, false, filter, v2, path0, path1, path2, path3, path4); assertCellFetchedQueried(false, false, filter, s2, path0, path1, path2, path3, path4); @@ -342,6 +378,7 @@ public void testSelectCellWithMetadata() if (anyNodeOn30) { assertEquals("*/*", filter.toString()); + assertEquals("*", filter.toCQLString()); assertFetchedQueried(true, true, filter, s1, s2, v1); assertCellFetchedQueried(true, true, filter, v2, path1); assertCellFetchedQueried(true, false, filter, v2, path0, path2, path3, path4); @@ -350,6 +387,7 @@ public void testSelectCellWithMetadata() else { assertEquals("*/[v2[1]]", filter.toString()); + assertEquals("v2[1]", filter.toCQLString()); assertFetchedQueried(true, false, filter, s1, s2, v1); assertCellFetchedQueried(true, true, filter, v2, path1); assertCellFetchedQueried(true, false, filter, v2, path0, path2, path3, path4); @@ -366,6 +404,7 @@ public void testSelectStaticColumnCellWithMetadata() if (anyNodeOn30) { assertEquals("*/*", filter.toString()); + assertEquals("*", filter.toCQLString()); assertFetchedQueried(true, true, filter, v1, v2, s1); assertCellFetchedQueried(true, true, filter, v2, path0, path1, path2, path3, path4); assertCellFetchedQueried(true, true, filter, s2, path1); @@ -374,6 +413,7 @@ public void testSelectStaticColumnCellWithMetadata() else { assertEquals("*/[s2[1]]", filter.toString()); + assertEquals("s2[1]", filter.toCQLString()); assertFetchedQueried(true, false, filter, v1, v2, s1); assertCellFetchedQueried(true, false, filter, v2, path0, path1, path2, path3, path4); assertCellFetchedQueried(true, true, filter, s2, path1);