public final class TargetRelation extends Object
INSERT INTO target SELECT ...
statement. Carries the target table's binding plus the verbatim column
spellings the SQL author wrote in the INSERT column list (e.g.
INSERT INTO target (a, b) ... → ["a", "b"]).
Empty columns means the surface SQL omitted the column list
(e.g. INSERT INTO target SELECT ...). The IR does NOT
positionally expand the catalog's columns into this list — the source
SELECT's output names are the lineage endpoints, and consumers that
want catalog-mapped target column names can join with the supplied
Catalog.
This type is intentionally a 2-field value object so the IR's
navigation stays simple (StatementGraph.getTarget() is null or
a struct). Other INSERT facets (OUTPUT clause, RETURNING, ON CONFLICT,
partition spec) are out of slice-78 scope and stay rejected via
existing diagnostics.
| Constructor and Description |
|---|
TargetRelation(RelationBinding binding,
List<String> columns) |
| Modifier and Type | Method and Description |
|---|---|
RelationBinding |
getBinding() |
List<String> |
getColumns() |
public TargetRelation(RelationBinding binding, List<String> columns)
public RelationBinding getBinding()
public List<String> getColumns()