This is an automated email from the ASF dual-hosted git repository. adelapena pushed a commit to branch cassandra-3.0 in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit be1e3de1c3cefeacbe8c8d8551a00cd9642e32b8 Merge: 7a554a7 9f8d5b8 Author: Andrés de la Peña <a.penya.gar...@gmail.com> AuthorDate: Thu Jul 23 12:40:24 2020 +0100 Merge branch 'cassandra-2.2' into cassandra-3.0 # Conflicts: # CHANGES.txt # src/java/org/apache/cassandra/cql3/Lists.java # src/java/org/apache/cassandra/cql3/Maps.java # src/java/org/apache/cassandra/cql3/Sets.java CHANGES.txt | 2 + src/java/org/apache/cassandra/cql3/Lists.java | 18 +- src/java/org/apache/cassandra/cql3/Maps.java | 27 +- src/java/org/apache/cassandra/cql3/Sets.java | 20 +- .../validation/entities/FrozenCollectionsTest.java | 468 +++++++++++++++++---- 5 files changed, 450 insertions(+), 85 deletions(-) diff --cc CHANGES.txt index 0bd6421,9034ae1..06a25b8 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,31 -1,5 +1,33 @@@ -2.2.17 +3.0.22: + * Fix empty/null json string representation (CASSANDRA-15896) ++Merged from 2.2: + * Fix CQL parsing of collections when the column type is reversed (CASSANDRA-15814) + + +3.0.21 + * Backport CASSANDRA-12189: escape string literals (CASSANDRA-15948) + * Avoid hinted handoff per-host throttle being arounded to 0 in large cluster (CASSANDRA-15859) + * Avoid emitting empty range tombstones from RangeTombstoneList (CASSANDRA-15924) + * Avoid thread starvation, and improve compare-and-swap performance, in the slab allocators (CASSANDRA-15922) + * Fix broken KEYS 2i queries after DROP COMPACT STORAGE (CASSANDRA-15906) + * Add token to tombstone warning and error messages (CASSANDRA-15890) + * Fixed range read concurrency factor computation and capped as 10 times tpc cores (CASSANDRA-15752) + * Catch exception on bootstrap resume and init native transport (CASSANDRA-15863) + * Fix replica-side filtering returning stale data with CL > ONE (CASSANDRA-8272, CASSANDRA-8273) + * Fix duplicated row on 2.x upgrades when multi-rows range tombstones interact with collection ones (CASSANDRA-15805) + * Rely on snapshotted session infos on StreamResultFuture.maybeComplete to avoid race conditions (CASSANDRA-15667) + * EmptyType doesn't override writeValue so could attempt to write bytes when expected not to (CASSANDRA-15790) + * Fix index queries on partition key columns when some partitions contains only static data (CASSANDRA-13666) + * Avoid creating duplicate rows during major upgrades (CASSANDRA-15789) + * liveDiskSpaceUsed and totalDiskSpaceUsed get corrupted if IndexSummaryRedistribution gets interrupted (CASSANDRA-15674) + * Fix Debian init start/stop (CASSANDRA-15770) + * Fix infinite loop on index query paging in tables with clustering (CASSANDRA-14242) + * Fix chunk index overflow due to large sstable with small chunk length (CASSANDRA-15595) + * cqlsh return non-zero status when STDIN CQL fails (CASSANDRA-15623) + * Don't skip sstables in slice queries based only on local min/max/deletion timestamp (CASSANDRA-15690) + * Memtable memory allocations may deadlock (CASSANDRA-15367) + * Run evictFromMembership in GossipStage (CASSANDRA-15592) +Merged from 2.2: * Fix nomenclature of allow and deny lists (CASSANDRA-15862) * Remove generated files from source artifact (CASSANDRA-15849) * Remove duplicated tools binaries from tarballs (CASSANDRA-15768) diff --cc src/java/org/apache/cassandra/cql3/Lists.java index 065f74a,c6b78d7..f4b2294 --- a/src/java/org/apache/cassandra/cql3/Lists.java +++ b/src/java/org/apache/cassandra/cql3/Lists.java @@@ -29,10 -26,14 +29,12 @@@ import com.google.common.annotations.Vi import org.apache.cassandra.config.ColumnDefinition; import org.apache.cassandra.cql3.functions.Function; -import org.apache.cassandra.db.Cell; -import org.apache.cassandra.db.ColumnFamily; -import org.apache.cassandra.db.composites.CellName; -import org.apache.cassandra.db.composites.Composite; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.rows.*; + import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.db.marshal.Int32Type; import org.apache.cassandra.db.marshal.ListType; + import org.apache.cassandra.db.marshal.ReversedType; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.serializers.CollectionSerializer; import org.apache.cassandra.serializers.MarshalException; @@@ -54,10 -56,20 +56,20 @@@ public abstract class List public static ColumnSpecification valueSpecOf(ColumnSpecification column) { - return new ColumnSpecification(column.ksName, column.cfName, new ColumnIdentifier("value(" + column.name + ")", true), ((ListType)column.type).getElementsType()); + return new ColumnSpecification(column.ksName, column.cfName, new ColumnIdentifier("value(" + column.name + ")", true), elementsType(column.type)); + } + + private static AbstractType<?> unwrap(AbstractType<?> type) + { + return type.isReversed() ? unwrap(((ReversedType<?>) type).baseType) : type; + } + + private static AbstractType<?> elementsType(AbstractType<?> type) + { + return ((ListType) unwrap(type)).getElementsType(); } - public static class Literal implements Term.Raw + public static class Literal extends Term.Raw { private final List<Term.Raw> elements; diff --cc src/java/org/apache/cassandra/cql3/Maps.java index 4b6f0fe,8d21162..b21aca3 --- a/src/java/org/apache/cassandra/cql3/Maps.java +++ b/src/java/org/apache/cassandra/cql3/Maps.java @@@ -25,9 -26,12 +25,11 @@@ import java.util.stream.Collectors import org.apache.cassandra.config.ColumnDefinition; import org.apache.cassandra.cql3.functions.Function; -import org.apache.cassandra.db.ColumnFamily; -import org.apache.cassandra.db.composites.CellName; -import org.apache.cassandra.db.composites.Composite; +import org.apache.cassandra.db.DecoratedKey; +import org.apache.cassandra.db.rows.*; + import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.db.marshal.MapType; + import org.apache.cassandra.db.marshal.ReversedType; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.serializers.CollectionSerializer; import org.apache.cassandra.serializers.MarshalException; @@@ -49,10 -54,25 +51,25 @@@ public abstract class Map public static ColumnSpecification valueSpecOf(ColumnSpecification column) { - return new ColumnSpecification(column.ksName, column.cfName, new ColumnIdentifier("value(" + column.name + ")", true), ((MapType)column.type).getValuesType()); + return new ColumnSpecification(column.ksName, column.cfName, new ColumnIdentifier("value(" + column.name + ")", true), valuesType(column.type)); + } + + private static AbstractType<?> unwrap(AbstractType<?> type) + { + return type.isReversed() ? unwrap(((ReversedType<?>) type).baseType) : type; + } + + private static AbstractType<?> keysType(AbstractType<?> type) + { + return ((MapType) unwrap(type)).getKeysType(); + } + + private static AbstractType<?> valuesType(AbstractType<?> type) + { + return ((MapType) unwrap(type)).getValuesType(); } - public static class Literal implements Term.Raw + public static class Literal extends Term.Raw { public final List<Pair<Term.Raw, Term.Raw>> entries; diff --cc src/java/org/apache/cassandra/cql3/Sets.java index 622bb23,4b5cd5d..4d8f61b --- a/src/java/org/apache/cassandra/cql3/Sets.java +++ b/src/java/org/apache/cassandra/cql3/Sets.java @@@ -43,10 -49,20 +43,20 @@@ public abstract class Set public static ColumnSpecification valueSpecOf(ColumnSpecification column) { - return new ColumnSpecification(column.ksName, column.cfName, new ColumnIdentifier("value(" + column.name + ")", true), ((SetType)column.type).getElementsType()); + return new ColumnSpecification(column.ksName, column.cfName, new ColumnIdentifier("value(" + column.name + ")", true), elementsType(column.type)); + } + + private static AbstractType<?> unwrap(AbstractType<?> type) + { + return type.isReversed() ? unwrap(((ReversedType<?>) type).baseType) : type; + } + + private static AbstractType<?> elementsType(AbstractType<?> type) + { + return ((SetType) unwrap(type)).getElementsType(); } - public static class Literal implements Term.Raw + public static class Literal extends Term.Raw { private final List<Term.Raw> elements; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org