pub(super) async fn purify_source_exports(
client: &Client,
retrieved_references: &RetrievedSourceReferences,
requested_references: &Option<ExternalReferences>,
text_columns: Vec<UnresolvedItemName>,
exclude_columns: Vec<UnresolvedItemName>,
filter_constraints: &FilterConstraints,
exclude_all_not_null_constraints: bool,
unresolved_source_name: &UnresolvedItemName,
reference_policy: &SourceReferencePolicy,
initial_lsn: MzOffset,
) -> Result<PurifiedSourceExports, PlanError>Expand description
Purifies the requested external references, returning the purified source exports that correspond to external tables along with the additional fields needed to generate the relevant statements and update statement options.
initial_lsn is an upper bound on the upstream LSN whose schemas retrieved_references
describe, and the point from which the purified exports interpret the replication stream. It
must be read after retrieved_references, so that it accounts for any schema change they
already reflect. Reading it earlier leaves a window in which replication trusts a Relation
message describing a schema older than the one captured here.
filter_constraints only excludes anything for CREATE TABLE .. FROM SOURCE, which purifies
exactly one export, so constraint names are validated against that single table’s constraints.