private boolean addCollectionTombstone(LegacyRangeTombstone tombstone) { if (!helper.includes(tombstone.start.collectionName)) return false; // see CASSANDRA-13109 if (clustering == null) { clustering = tombstone.start.getAsClustering(metadata); builder.newRow(clustering); } else if (!clustering.equals(tombstone.start.getAsClustering(metadata))) { return false; } builder.addComplexDeletion(tombstone.start.collectionName, tombstone.deletionTime); if (rowDeletion == null || tombstone.deletionTime.supersedes(rowDeletion.deletionTime)) collectionDeletion = tombstone; return true; }
assert builder.isSorted(); throw new IOException("Corrupt flags value for unfiltered partition (isStatic flag set): " + flags); builder.newRow(Clustering.serializer.deserialize(in, helper.version, header.clusteringTypes())); return deserializeRowBody(in, header, helper, flags, extendedFlags, builder);
assert builder.isSorted(); throw new IOException("Corrupt flags value for unfiltered partition (isStatic flag set): " + flags); builder.newRow(Clustering.serializer.deserialize(in, helper.version, header.clusteringTypes())); return deserializeRowBody(in, header, helper, flags, extendedFlags, builder);
assert builder.isSorted(); throw new IOException("Corrupt flags value for unfiltered partition (isStatic flag set): " + flags); builder.newRow(Clustering.serializer.deserialize(in, helper.version, header.clusteringTypes())); return deserializeRowBody(in, header, helper, flags, extendedFlags, builder);
public Unfiltered deserialize(DataInputPlus in, SerializationHeader header, SerializationHelper helper, Row.Builder builder) throws IOException { // It wouldn't be wrong per-se to use an unsorted builder, but it would be inefficient so make sure we don't do it by mistake assert builder.isSorted(); int flags = in.readUnsignedByte(); if (isEndOfPartition(flags)) return null; int extendedFlags = readExtendedFlags(in, flags); if (kind(flags) == Unfiltered.Kind.RANGE_TOMBSTONE_MARKER) { ClusteringBoundOrBoundary bound = ClusteringBoundOrBoundary.serializer.deserialize(in, helper.version, header.clusteringTypes()); return deserializeMarkerBody(in, header, bound); } else { // deserializeStaticRow should be used for that. if (isStatic(extendedFlags)) throw new IOException("Corrupt flags value for unfiltered partition (isStatic flag set): " + flags); builder.newRow(Clustering.serializer.deserialize(in, helper.version, header.clusteringTypes())); Row row = deserializeRowBody(in, header, helper, flags, extendedFlags, builder); // we do not write empty rows because Rows.collectStats(), called by BTW.applyToRow(), asserts that rows are not empty // if we don't throw here, then later the very same assertion in Rows.collectStats() will fail compactions // see BlackListingCompactionsTest and CASSANDRA-9530 for details if (row.isEmpty()) throw new IOException("Corrupt empty row found in unfiltered partition"); return row; } }
/** * Creates a view entry corresponding to the provided base row. * <p> * This method checks that the base row does match the view filter before applying it. */ private void createEntry(Row baseRow) { // Before create a new entry, make sure it matches the view filter if (!matchesViewFilter(baseRow)) return; startNewUpdate(baseRow); currentViewEntryBuilder.addPrimaryKeyLivenessInfo(computeLivenessInfoForEntry(baseRow)); currentViewEntryBuilder.addRowDeletion(baseRow.deletion()); for (ColumnData data : baseRow) { ColumnDefinition viewColumn = view.getViewColumn(data.column()); // If that base table column is not denormalized in the view, we had nothing to do. // Alose, if it's part of the view PK it's already been taken into account in the clustering. if (viewColumn == null || viewColumn.isPrimaryKeyColumn()) continue; addColumnData(viewColumn, data); } submitUpdate(); }
public static Row.Builder copy(Row row, Row.Builder builder) { builder.newRow(row.clustering()); builder.addPrimaryKeyLivenessInfo(row.primaryKeyLivenessInfo()); builder.addRowDeletion(row.deletion()); for (ColumnData cd : row) { if (cd.column().isSimple()) { builder.addCell((Cell)cd); } else { ComplexColumnData complexData = (ComplexColumnData)cd; builder.addComplexDeletion(complexData.column(), complexData.complexDeletion()); for (Cell cell : complexData) builder.addCell(cell); } } return builder; }
public static Row.Builder copy(Row row, Row.Builder builder) { builder.newRow(row.clustering()); builder.addPrimaryKeyLivenessInfo(row.primaryKeyLivenessInfo()); builder.addRowDeletion(row.deletion()); for (ColumnData cd : row) { if (cd.column().isSimple()) { builder.addCell((Cell)cd); } else { ComplexColumnData complexData = (ComplexColumnData)cd; builder.addComplexDeletion(complexData.column(), complexData.complexDeletion()); for (Cell cell : complexData) builder.addCell(cell); } } return builder; }
public static Row.Builder copy(Row row, Row.Builder builder) { builder.newRow(row.clustering()); builder.addPrimaryKeyLivenessInfo(row.primaryKeyLivenessInfo()); builder.addRowDeletion(row.deletion()); for (ColumnData cd : row) { if (cd.column().isSimple()) { builder.addCell((Cell)cd); } else { ComplexColumnData complexData = (ComplexColumnData)cd; builder.addComplexDeletion(complexData.column(), complexData.complexDeletion()); for (Cell cell : complexData) builder.addCell(cell); } } return builder; }
public static Row.Builder copy(Row row, Row.Builder builder) { builder.newRow(row.clustering()); builder.addPrimaryKeyLivenessInfo(row.primaryKeyLivenessInfo()); builder.addRowDeletion(row.deletion()); for (ColumnData cd : row) { if (cd.column().isSimple()) { builder.addCell((Cell)cd); } else { ComplexColumnData complexData = (ComplexColumnData)cd; builder.addComplexDeletion(complexData.column(), complexData.complexDeletion()); for (Cell cell : complexData) builder.addCell(cell); } } return builder; }
public Unfiltered readNext() throws IOException { isReady = false; if (UnfilteredSerializer.kind(nextFlags) == Unfiltered.Kind.RANGE_TOMBSTONE_MARKER) { ClusteringBoundOrBoundary bound = clusteringDeserializer.deserializeNextBound(); return UnfilteredSerializer.serializer.deserializeMarkerBody(in, header, bound); } else { builder.newRow(clusteringDeserializer.deserializeNextClustering()); return UnfilteredSerializer.serializer.deserializeRowBody(in, header, helper, nextFlags, nextExtendedFlags, builder); } }
public void setComplexDeletionTimeForOverwrite(ColumnDefinition column) { builder.addComplexDeletion(column, new DeletionTime(deletionTime.markedForDeleteAt() - 1, deletionTime.localDeletionTime())); }
public void setComplexDeletionTimeForOverwrite(ColumnDefinition column) { builder.addComplexDeletion(column, new DeletionTime(deletionTime.markedForDeleteAt() - 1, deletionTime.localDeletionTime())); }
public void setComplexDeletionTime(ColumnDefinition column) { builder.addComplexDeletion(column, deletionTime); }
public void setComplexDeletionTime(ColumnDefinition column) { builder.addComplexDeletion(column, deletionTime); }
public void addPrimaryKeyLivenessInfo() { builder.addPrimaryKeyLivenessInfo(LivenessInfo.create(timestamp, ttl, nowInSec)); }