@PublicEvolving
public interface SupportsRowLevelDelete
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.
| Modifier and Type | Interface and Description |
|---|---|
static interface |
SupportsRowLevelDelete.RowLevelDeleteInfo
The information that guides the planner on how to rewrite the delete statement.
|
static class |
SupportsRowLevelDelete.RowLevelDeleteMode
Type of delete modes that the sink expects for delete purpose.
|
| Modifier and Type | Method and Description |
|---|---|
SupportsRowLevelDelete.RowLevelDeleteInfo |
applyRowLevelDelete(RowLevelModificationScanContext context)
Applies row-level delete with
RowLevelModificationScanContext, and return a SupportsRowLevelDelete.RowLevelDeleteInfo. |
SupportsRowLevelDelete.RowLevelDeleteInfo applyRowLevelDelete(@Nullable RowLevelModificationScanContext context)
RowLevelModificationScanContext, and return a SupportsRowLevelDelete.RowLevelDeleteInfo.context - the context passed by table source which implement SupportsRowLevelModificationScan. It'll be null if the table source doesn't implement
it.Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.