public ComplexColumnData filter(ColumnFilter filter, DeletionTime activeDeletion, CFMetaData.DroppedColumn dropped, LivenessInfo rowLiveness) { ColumnFilter.Tester cellTester = filter.newTester(column); if (cellTester == null && activeDeletion.isLive() && dropped == null) return this; DeletionTime newDeletion = activeDeletion.supersedes(complexDeletion) ? DeletionTime.LIVE : complexDeletion; return transformAndFilter(newDeletion, (cell) -> { boolean isForDropped = dropped != null && cell.timestamp() <= dropped.droppedTime; boolean isShadowed = activeDeletion.deletes(cell); boolean isSkippable = cellTester != null && (!cellTester.fetches(cell.path()) || (!cellTester.fetchedCellIsQueried(cell.path()) && cell.timestamp() < rowLiveness.timestamp())); return isForDropped || isShadowed || isSkippable ? null : cell; }); }
public ComplexColumnData filter(ColumnFilter filter, DeletionTime activeDeletion, CFMetaData.DroppedColumn dropped, LivenessInfo rowLiveness) { ColumnFilter.Tester cellTester = filter.newTester(column); if (cellTester == null && activeDeletion.isLive() && dropped == null) return this; DeletionTime newDeletion = activeDeletion.supersedes(complexDeletion) ? DeletionTime.LIVE : complexDeletion; return transformAndFilter(newDeletion, (cell) -> { boolean isForDropped = dropped != null && cell.timestamp() <= dropped.droppedTime; boolean isShadowed = activeDeletion.deletes(cell); boolean isSkippable = cellTester != null && (!cellTester.fetches(cell.path()) || (!cellTester.fetchedCellIsQueried(cell.path()) && cell.timestamp() < rowLiveness.timestamp())); return isForDropped || isShadowed || isSkippable ? null : cell; }); }
public ComplexColumnData filter(ColumnFilter filter, DeletionTime activeDeletion, CFMetaData.DroppedColumn dropped, LivenessInfo rowLiveness) { ColumnFilter.Tester cellTester = filter.newTester(column); if (cellTester == null && activeDeletion.isLive() && dropped == null) return this; DeletionTime newDeletion = activeDeletion.supersedes(complexDeletion) ? DeletionTime.LIVE : complexDeletion; return transformAndFilter(newDeletion, (cell) -> { boolean isForDropped = dropped != null && cell.timestamp() <= dropped.droppedTime; boolean isShadowed = activeDeletion.deletes(cell); boolean isSkippable = cellTester != null && (!cellTester.fetches(cell.path()) || (!cellTester.fetchedCellIsQueried(cell.path()) && cell.timestamp() < rowLiveness.timestamp())); return isForDropped || isShadowed || isSkippable ? null : cell; }); }
public boolean canSkipValue(CellPath path) { return path != null && tester != null && !tester.fetchedCellIsQueried(path); }
public boolean canSkipValue(CellPath path) { return path != null && tester != null && !tester.fetchedCellIsQueried(path); }
public ComplexColumnData filter(ColumnFilter filter, DeletionTime activeDeletion, CFMetaData.DroppedColumn dropped, LivenessInfo rowLiveness) { ColumnFilter.Tester cellTester = filter.newTester(column); if (cellTester == null && activeDeletion.isLive() && dropped == null) return this; DeletionTime newDeletion = activeDeletion.supersedes(complexDeletion) ? DeletionTime.LIVE : complexDeletion; return transformAndFilter(newDeletion, (cell) -> { boolean isForDropped = dropped != null && cell.timestamp() <= dropped.droppedTime; boolean isShadowed = activeDeletion.deletes(cell); boolean isSkippable = cellTester != null && (!cellTester.fetches(cell.path()) || (!cellTester.fetchedCellIsQueried(cell.path()) && cell.timestamp() < rowLiveness.timestamp())); return isForDropped || isShadowed || isSkippable ? null : cell; }); }
public boolean canSkipValue(CellPath path) { return path != null && tester != null && !tester.fetchedCellIsQueried(path); }
public boolean canSkipValue(CellPath path) { return path != null && tester != null && !tester.fetchedCellIsQueried(path); }