flyrain commented on code in PR #4683:
URL: https://github.com/apache/iceberg/pull/4683#discussion_r879941914
##########
core/src/main/java/org/apache/iceberg/deletes/Deletes.java:
##########
@@ -227,6 +237,39 @@ public void close() {
}
}
+ private static class PositionStreamDeleteMarker<T> extends
PositionStreamDeleteFilter<T> {
+ private final Consumer<T> markDeleted;
+
+ private PositionStreamDeleteMarker(CloseableIterable<T> rows, Function<T,
Long> extractPos,
+ CloseableIterable<Long>
deletePositions, Consumer<T> markDeleted) {
+ super(rows, extractPos, deletePositions);
+ this.markDeleted = markDeleted;
+ }
+
+ @Override
+ protected PositionFilterIterator
createPosDeleteIterator(CloseableIterator<T> items,
+
CloseableIterator<Long> deletePosIterator) {
+ return new PositionDeleteMarkerIterator(items, deletePosIterator);
+ }
+
+ private class PositionDeleteMarkerIterator extends PositionFilterIterator {
Review Comment:
Thanks for the suggestion. Made the change. We don't have to create the new
class for the marker. I use the `CloseableIterator.transform` for the marker,
and an anonymous class of FilterIterator for the filter. Added a test as well.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]