Interface SupportsRowLevelDelete
@PublicEvolving
public interface SupportsRowLevelDelete
Interface for
DynamicTableSinks that support delete existing data according to row-level
changes. The table sink is responsible for telling planner how to produce the row changes, and
consuming them to achieve the purpose of row(s) deletion.
The planner will call the method applyRowLevelDelete(RowLevelModificationScanContext)
to get the SupportsRowLevelDelete.RowLevelDeleteInfo returned by sink, and rewrite the delete statement based on
the retrieved SupportsRowLevelDelete.RowLevelDeleteInfo to produce rows to DynamicTableSink.
Note: For the cases where the table sink implement both SupportsDeletePushDown and
SupportsRowLevelDelete, the planner always prefers SupportsDeletePushDown over
SupportsRowLevelDelete on condition that SupportsDeletePushDown.applyDeleteFilters(List) return true.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceThe information that guides the planner on how to rewrite the delete statement.static enumType of delete modes that the sink expects for delete purpose. -
Method Summary
Modifier and TypeMethodDescriptionApplies row-level delete withRowLevelModificationScanContext, and return aSupportsRowLevelDelete.RowLevelDeleteInfo.
-
Method Details
-
applyRowLevelDelete
SupportsRowLevelDelete.RowLevelDeleteInfo applyRowLevelDelete(@Nullable RowLevelModificationScanContext context) Applies row-level delete withRowLevelModificationScanContext, and return aSupportsRowLevelDelete.RowLevelDeleteInfo.- Parameters:
context- the context passed by table source which implementSupportsRowLevelModificationScan. It'll be null if the table source doesn't implement it.
-