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.