pub struct LineageHandle { /* private fields */ }Expand description
The per-query lineage payload produced by begin_lineage, carried under one
run_id from the planning-time step to the terminal event.
A host composing lineage with another concern (e.g. running lineage’s START
step after a policy gate, from its own single QueryPlanner) holds this
between begin_lineage and [Self::into_marker] / the emit_* methods.
Implementations§
Source§impl LineageHandle
impl LineageHandle
Sourcepub fn to_marker(
&self,
plan: LogicalPlan,
client: OpenLineageClient,
config: &OpenLineageConfig,
) -> LogicalPlan
pub fn to_marker( &self, plan: LogicalPlan, client: OpenLineageClient, config: &OpenLineageConfig, ) -> LogicalPlan
Wrap plan in a LineageMarker carrying the COMPLETE template, so a
registered LineageExtensionPlanner lowers it into the terminal
OpenLineageExec at the physical root (the composable path).
Borrows so the handle stays available for Self::emit_fail if the
subsequent physical planning errors.
Sourcepub fn emit_fail(
&self,
client: &OpenLineageClient,
config: &OpenLineageConfig,
err: &str,
)
pub fn emit_fail( &self, client: &OpenLineageClient, config: &OpenLineageConfig, err: &str, )
Emit FAIL for a planning error that occurs after START, before any
OpenLineageExec exists to observe execution. Under the same run_id.
Sourcepub fn emit_complete(
&self,
client: &OpenLineageClient,
config: &OpenLineageConfig,
)
pub fn emit_complete( &self, client: &OpenLineageClient, config: &OpenLineageConfig, )
Emit COMPLETE directly, under the same run_id, with eventTime refreshed
to now (so run duration is meaningful). For paths that run the query
outside a physical plan — there is no OpenLineageExec to emit the
terminal event, so the caller emits it (e.g. the CTAS / CREATE VIEW DDL
path, which materializes internally and hands back an empty result).
Sourcepub fn set_sql_if_absent(&mut self, sql: &str)
pub fn set_sql_if_absent(&mut self, sql: &str)
Fold SQL text into the lineage when the context provider didn’t supply it (a path that has the raw statement in hand — e.g. the DDL path).
Auto Trait Implementations§
impl Freeze for LineageHandle
impl RefUnwindSafe for LineageHandle
impl Send for LineageHandle
impl Sync for LineageHandle
impl Unpin for LineageHandle
impl UnsafeUnpin for LineageHandle
impl UnwindSafe for LineageHandle
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more