public static final class DynamicSqlLineageResolver.MaterializedSite extends Object
DynamicSqlLineageResolver.materializeSitesWithoutBindings(gudusoft.gsqlparser.TCustomSqlStatement, gudusoft.gsqlparser.EDbVendor, gudusoft.gsqlparser.dlineage.dynamicsql.DynamicLineageOptions)).| Modifier and Type | Field and Description |
|---|---|
BindingSource |
bindingSource
The parameter values this variant was evaluated with: none, or the call or caller that supplied them.
|
String |
diagnostic
Additive analysis note, such as a constant-relation over-approximation.
|
boolean |
executionCertain
False when the statement may not run on the evaluated path: it sits in a CATCH block, or behind a
condition or loop whose outcome is not known.
|
String |
executionNote
Why the statement may not run, when
executionCertain is false; also part of the diagnostic. |
List<SqlFragment> |
fragments
Ordered provenance fragments.
|
boolean |
partial
True when the text still contains placeholder tokens for unbound variables/parameters.
|
boolean |
provenanceIncomplete
True unless the materialization is usable and every rendered character
has literal provenance.
|
String |
provenNullReason
Non-null when the string is SQL NULL for a reason the evaluation proves (a query over a literal relation
returned no row), so the site runs nothing on this variant; says why (Mantis 4962).
|
String |
reason
Why the string did not reduce; non-null iff
sqlText is null. |
String |
sqlText
Usable (possibly placeholder-bearing) SQL text, or
null if the string did not reduce. |
String |
variantPath
Stable value-set row-tuple suffix; empty on the scalar compatibility path.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
hasCompleteLiteralProvenance() |
DynamicSqlLineageResolver.MaterializedSite |
mergedWith(DynamicSqlLineageResolver.MaterializedSite other)
One variant standing for this one and
other, which gives the same text (two bindings with the same
result, Mantis 4962): the weaker evidence of the two, so no hole and no uncertainty is lost. |
DynamicSqlLineageResolver.MaterializedSite |
withNote(String note)
The same variant, its diagnostic carrying
note too (sources merged when variants coincide). |
public final String sqlText
null if the string did not reduce.public final boolean partial
public final boolean provenanceIncomplete
partial: a legacy-CONCRETE numeric/inexact transform can still
have a provenance hole that SHADOW must report.public final List<SqlFragment> fragments
sqlText is non-null their
concatenated text equals it (design:
dynamic-sql-fragment-provenance-design.md); SHADOW completeness checks
and resolved dynamic edges consume that. When the string did not reduce
(sqlText null) they are the best-effort provenance of the
argument — every hole met, in order, so a consumer can still name the
value that stopped the fold; their concatenated text is only how far
the fold got. Empty when the producing channel carries no provenance.public final String diagnostic
public final String variantPath
public final boolean executionCertain
public final String executionNote
executionCertain is false; also part of the diagnostic.public final String provenNullReason
public final BindingSource bindingSource
public boolean hasCompleteLiteralProvenance()
public DynamicSqlLineageResolver.MaterializedSite withNote(String note)
note too (sources merged when variants coincide).public DynamicSqlLineageResolver.MaterializedSite mergedWith(DynamicSqlLineageResolver.MaterializedSite other)
other, which gives the same text (two bindings with the same
result, Mantis 4962): the weaker evidence of the two, so no hole and no uncertainty is lost. Its provenance
is the one with incomplete provenance or more holes; it runs for certain only when both do; its diagnostic
and binding name both.