You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sa...@apache.org on 2019/05/08 09:09:10 UTC
[cassandra] 01/01: Merge branch 'cassandra-3.0' into cassandra-3.11
This is an automated email from the ASF dual-hosted git repository.
samt pushed a commit to branch cassandra-3.11
in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit ba01089a0f08c6d8429a2de851d360f9c5af1527
Merge: c86f9b8 daf6c85
Author: Sam Tunnicliffe <sa...@beobal.com>
AuthorDate: Wed May 8 10:03:42 2019 +0100
Merge branch 'cassandra-3.0' into cassandra-3.11
CHANGES.txt | 1 +
...tion.java => IllegalLegacyColumnException.java} | 28 ++++------
src/java/org/apache/cassandra/db/LegacyLayout.java | 57 +++++++++++++++++----
src/java/org/apache/cassandra/db/ReadCommand.java | 2 +-
.../cassandra/db/UnfilteredDeserializer.java | 7 +++
.../cassandra/db/UnknownColumnException.java | 16 +-----
.../apache/cassandra/thrift/CassandraServer.java | 34 ++++++------
.../apache/cassandra/thrift/ThriftValidation.java | 5 +-
...s-legacy_ka_with_illegal_cell_names-ka-1-CRC.db | Bin 0 -> 8 bytes
...-legacy_ka_with_illegal_cell_names-ka-1-Data.db | Bin 0 -> 292 bytes
...acy_ka_with_illegal_cell_names-ka-1-Digest.sha1 | 1 +
...egacy_ka_with_illegal_cell_names-ka-1-Filter.db | Bin 0 -> 16 bytes
...legacy_ka_with_illegal_cell_names-ka-1-Index.db | Bin 0 -> 36 bytes
...y_ka_with_illegal_cell_names-ka-1-Statistics.db | Bin 0 -> 4464 bytes
...gacy_ka_with_illegal_cell_names-ka-1-Summary.db | Bin 0 -> 128 bytes
...-legacy_ka_with_illegal_cell_names-ka-1-TOC.txt | 8 +++
.../apache/cassandra/db/LegacyCellNameTest.java | 17 +++++-
.../cassandra/io/sstable/LegacySSTableTest.java | 36 +++++++++++++
18 files changed, 147 insertions(+), 65 deletions(-)
diff --cc CHANGES.txt
index 0506da7,0dac500..0deaa97
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,7 -1,5 +1,8 @@@
-3.0.19
+3.11.5
+ * Fixed nodetool cfstats printing index name twice (CASSANDRA-14903)
+ * Add flag to disable SASI indexes, and warnings on creation (CASSANDRA-14866)
+Merged from 3.0:
+ * Skip cells with illegal column names when reading legacy sstables (CASSANDRA-15086)
* Fix assorted gossip races and add related runtime checks (CASSANDRA-15059)
* Fix mixed mode partition range scans with limit (CASSANDRA-15072)
* cassandra-stress works with frozen collections: list and set (CASSANDRA-14907)
diff --cc src/java/org/apache/cassandra/db/LegacyLayout.java
index 87b5d58,cfaa71f..50fd945
--- a/src/java/org/apache/cassandra/db/LegacyLayout.java
+++ b/src/java/org/apache/cassandra/db/LegacyLayout.java
@@@ -187,12 -188,18 +189,18 @@@ public abstract class LegacyLayou
{
// If it's a compact table, it means the column is in fact a "dynamic" one
if (metadata.isCompactTable())
- return new LegacyCellName(new Clustering(column), metadata.compactValueColumn(), null);
+ return new LegacyCellName(Clustering.make(column), metadata.compactValueColumn(), null);
if (def == null)
+ {
throw new UnknownColumnException(metadata, column);
+ }
else
- throw new IllegalArgumentException("Cannot add primary key column to partition update");
+ {
+ noSpamLogger.warn("Illegal cell name for CQL3 table {}.{}. {} is defined as a primary key column",
+ metadata.ksName, metadata.cfName, stringify(column));
+ throw new IllegalLegacyColumnException(metadata, column);
+ }
}
ByteBuffer collectionElement = metadata.isCompound() ? CompositeType.extractComponent(cellname, metadata.comparator.size() + 1) : null;
diff --cc src/java/org/apache/cassandra/thrift/CassandraServer.java
index 444a938,3a41df0..868f937
--- a/src/java/org/apache/cassandra/thrift/CassandraServer.java
+++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java
@@@ -2203,9 -2176,9 +2203,9 @@@ public class CassandraServer implement
PartitionUpdate update = PartitionUpdate.singleRowUpdate(metadata, key, BTreeRow.singleCellRow(name.clustering, cell));
org.apache.cassandra.db.Mutation mutation = new org.apache.cassandra.db.Mutation(update);
- doInsert(consistency_level, Arrays.asList(new CounterMutation(mutation, ThriftConversion.fromThrift(consistency_level))));
+ doInsert(consistency_level, Arrays.asList(new CounterMutation(mutation, ThriftConversion.fromThrift(consistency_level))), queryStartNanoTime);
}
- catch (MarshalException|UnknownColumnException e)
+ catch (MarshalException | UnknownColumnException | IllegalLegacyColumnException e)
{
throw new InvalidRequestException(e.getMessage());
}
diff --cc src/java/org/apache/cassandra/thrift/ThriftValidation.java
index 575db66,e7a344a..602f15a
--- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java
+++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java
@@@ -464,9 -464,10 +465,9 @@@ public class ThriftValidatio
try
{
LegacyLayout.LegacyCellName cn = LegacyLayout.decodeCellName(metadata, scName, column.name);
- cn.column.validateCellValue(column.value);
-
+ cn.column.type.validateCellValue(column.value);
}
- catch (UnknownColumnException e)
+ catch (UnknownColumnException | IllegalLegacyColumnException e)
{
throw new org.apache.cassandra.exceptions.InvalidRequestException(e.getMessage());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org