Merge branch 'cassandra-3.11' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d8c549b6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d8c549b6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d8c549b6 Branch: refs/heads/trunk Commit: d8c549b689488e50ab398d52416e387860108037 Parents: 2ee9d68 e635317 Author: Benedict Elliott Smith <[email protected]> Authored: Thu Nov 29 15:58:13 2018 +0000 Committer: Benedict Elliott Smith <[email protected]> Committed: Thu Nov 29 15:58:13 2018 +0000 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../org/apache/cassandra/db/rows/AbstractRow.java | 7 ++++++- .../org/apache/cassandra/db/rows/BTreeRow.java | 16 +++++++++++++--- src/java/org/apache/cassandra/db/rows/Row.java | 17 ++++++++++++++++- .../cassandra/db/rows/UnfilteredSerializer.java | 8 ++++---- .../apache/cassandra/cql3/GcCompactionTest.java | 2 +- .../validation/entities/SecondaryIndexTest.java | 16 ++++++++-------- .../db/SinglePartitionSliceCommandTest.java | 2 +- 8 files changed, 50 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8c549b6/CHANGES.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8c549b6/src/java/org/apache/cassandra/db/rows/AbstractRow.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/rows/AbstractRow.java index 24b088f,8558466..f719db5 --- a/src/java/org/apache/cassandra/db/rows/AbstractRow.java +++ b/src/java/org/apache/cassandra/db/rows/AbstractRow.java @@@ -91,19 -99,12 +91,24 @@@ public abstract class AbstractRow imple cd.validate(); } + public boolean hasInvalidDeletions() + { + if (primaryKeyLivenessInfo().isExpiring() && (primaryKeyLivenessInfo().ttl() < 0 || primaryKeyLivenessInfo().localExpirationTime() < 0)) + return true; + if (!deletion().time().validate()) + return true; + for (ColumnData cd : this) + if (cd.hasInvalidDeletions()) + return true; + return false; + } + + public String toString() + { + return columnData().toString(); + } + - public String toString(CFMetaData metadata) + public String toString(TableMetadata metadata) { return toString(metadata, false); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8c549b6/src/java/org/apache/cassandra/db/rows/BTreeRow.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/rows/BTreeRow.java index fff7750,ba81a4e..dc3219a --- a/src/java/org/apache/cassandra/db/rows/BTreeRow.java +++ b/src/java/org/apache/cassandra/db/rows/BTreeRow.java @@@ -192,9 -191,14 +192,14 @@@ public class BTreeRow extends AbstractR return clustering; } - public Collection<ColumnDefinition> columns() + public Collection<ColumnMetadata> columns() { - return Collections2.transform(this, ColumnData::column); + return Collections2.transform(columnData(), ColumnData::column); + } + + public int columnCount() + { + return BTree.size(btree); } public LivenessInfo primaryKeyLivenessInfo() @@@ -229,15 -233,20 +234,20 @@@ return cd.getCell(path); } - public ComplexColumnData getComplexColumnData(ColumnDefinition c) + public ComplexColumnData getComplexColumnData(ColumnMetadata c) { assert c.isComplex(); - return (ComplexColumnData) BTree.<Object>find(btree, ColumnDefinition.asymmetricColumnDataComparator, c); + return (ComplexColumnData) BTree.<Object>find(btree, ColumnMetadata.asymmetricColumnDataComparator, c); } - public int size() + @Override + public Collection<ColumnData> columnData() { - return BTree.size(btree); + return new AbstractCollection<ColumnData>() + { + @Override public Iterator<ColumnData> iterator() { return BTreeRow.this.iterator(); } + @Override public int size() { return BTree.size(btree); } + }; } public Iterator<ColumnData> iterator() http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8c549b6/src/java/org/apache/cassandra/db/rows/Row.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/rows/Row.java index 74c0040,9bff19d..0174adc --- a/src/java/org/apache/cassandra/db/rows/Row.java +++ b/src/java/org/apache/cassandra/db/rows/Row.java @@@ -60,8 -60,14 +60,14 @@@ public interface Row extends Unfiltered * An in-natural-order collection of the columns for which data (incl. simple tombstones) * is present in this row. */ - public Collection<ColumnDefinition> columns(); + public Collection<ColumnMetadata> columns(); + + /** + * The number of columns for which data (incl. simple tombstones) is present in this row. + */ + public int columnCount(); + /** * The row deletion. * http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8c549b6/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java index 89bc3d5,926f3ef..7b48652 --- a/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java +++ b/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java @@@ -227,9 -227,9 +227,9 @@@ public class UnfilteredSerialize header.writeDeletionTime(deletion.time(), out); if ((flags & HAS_ALL_COLUMNS) == 0) - Columns.serializer.serializeSubset(Collections2.transform(row, ColumnData::column), headerColumns, out); + Columns.serializer.serializeSubset(row.columns(), headerColumns, out); - SearchIterator<ColumnDefinition, ColumnDefinition> si = headerColumns.iterator(); + SearchIterator<ColumnMetadata, ColumnMetadata> si = headerColumns.iterator(); try { @@@ -350,12 -350,12 +350,12 @@@ size += header.deletionTimeSerializedSize(deletion.time()); if (!hasAllColumns) - size += Columns.serializer.serializedSubsetSize(Collections2.transform(row, ColumnData::column), header.columns(isStatic)); + size += Columns.serializer.serializedSubsetSize(row.columns(), header.columns(isStatic)); - SearchIterator<ColumnDefinition, ColumnDefinition> si = headerColumns.iterator(); + SearchIterator<ColumnMetadata, ColumnMetadata> si = headerColumns.iterator(); for (ColumnData data : row) { - ColumnDefinition column = si.next(data.column()); + ColumnMetadata column = si.next(data.column()); assert column != null; if (data.column.isSimple()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8c549b6/test/unit/org/apache/cassandra/cql3/GcCompactionTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8c549b6/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8c549b6/test/unit/org/apache/cassandra/db/SinglePartitionSliceCommandTest.java ---------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
