private long computeTimestampForEntryDeletion(Row existingBaseRow, Row mergedBaseRow) { DeletionTime deletion = mergedBaseRow.deletion().time(); if (view.hasSamePrimaryKeyColumnsAsBaseTable()) { long timestamp = Math.max(deletion.markedForDeleteAt(), existingBaseRow.primaryKeyLivenessInfo().timestamp()); if (view.getDefinition().includeAllColumns) return timestamp; for (Cell cell : existingBaseRow.cells()) { // selected column should not contribute to view deletion, itself is already included in view row if (view.getViewColumn(cell.column()) != null) continue; // unselected column is used regardless live or dead, because we don't know if it was used for liveness. timestamp = Math.max(timestamp, cell.maxTimestamp()); } return timestamp; } // has base non-pk column in view pk Cell before = existingBaseRow.getCell(view.baseNonPKColumnsInViewPK.get(0)); assert isLive(before) : "We shouldn't have got there if the base row had no associated entry"; return deletion.deletes(before) ? deletion.markedForDeleteAt() : before.timestamp(); }
private long computeTimestampForEntryDeletion(Row existingBaseRow, Row mergedBaseRow) { DeletionTime deletion = mergedBaseRow.deletion().time(); if (view.hasSamePrimaryKeyColumnsAsBaseTable()) { long timestamp = Math.max(deletion.markedForDeleteAt(), existingBaseRow.primaryKeyLivenessInfo().timestamp()); if (view.getDefinition().includeAllColumns) return timestamp; for (Cell cell : existingBaseRow.cells()) { // selected column should not contribute to view deletion, itself is already included in view row if (view.getViewColumn(cell.column()) != null) continue; // unselected column is used regardless live or dead, because we don't know if it was used for liveness. timestamp = Math.max(timestamp, cell.maxTimestamp()); } return timestamp; } // has base non-pk column in view pk Cell before = existingBaseRow.getCell(view.baseNonPKColumnsInViewPK.get(0)); assert isLive(before) : "We shouldn't have got there if the base row had no associated entry"; return deletion.deletes(before) ? deletion.markedForDeleteAt() : before.timestamp(); }
private long computeTimestampForEntryDeletion(Row existingBaseRow, Row mergedBaseRow) { DeletionTime deletion = mergedBaseRow.deletion().time(); if (view.hasSamePrimaryKeyColumnsAsBaseTable()) { long timestamp = Math.max(deletion.markedForDeleteAt(), existingBaseRow.primaryKeyLivenessInfo().timestamp()); if (view.getDefinition().includeAllColumns) return timestamp; for (Cell cell : existingBaseRow.cells()) { // selected column should not contribute to view deletion, itself is already included in view row if (view.getViewColumn(cell.column()) != null) continue; // unselected column is used regardless live or dead, because we don't know if it was used for liveness. timestamp = Math.max(timestamp, cell.maxTimestamp()); } return timestamp; } // has base non-pk column in view pk Cell before = existingBaseRow.getCell(view.baseNonPKColumnsInViewPK.get(0)); assert isLive(before) : "We shouldn't have got there if the base row had no associated entry"; return deletion.deletes(before) ? deletion.markedForDeleteAt() : before.timestamp(); }
if (!isLive(cell)) continue; timestamp = Math.max(timestamp, cell.maxTimestamp()); if (!cell.isExpiring()) hasNonExpiringLiveCell = true;
if (!isLive(cell)) continue; timestamp = Math.max(timestamp, cell.maxTimestamp()); if (!cell.isExpiring()) hasNonExpiringLiveCell = true;
if (!isLive(cell)) continue; timestamp = Math.max(timestamp, cell.maxTimestamp()); if (!cell.isExpiring()) hasNonExpiringLiveCell = true;