@PublicEvolving public interface SupportsRowLevelDelete
DynamicTableSink
s 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.