pub struct IrOutput {
pub stmt: IrStmt,
pub params: Vec<String>,
pub ctes: Vec<IrCteDef>,
pub global_ctes: Vec<IrGlobalCte>,
pub warnings: Vec<String>,
pub uses_globals_arg: bool,
pub subtype_fanouts: HashMap<(String, String), IrPolyFanout>,
}Expand description
The result of the IR compilation step.
Carries the query plan and the ordered list of named parameters, which the
SQL emitter uses to emit $1 … $N and the client uses to bind values.
Fields§
§stmt: IrStmt§params: Vec<String>Ordered parameter names, positionally matching $1, $2, … in the SQL.
Global params use the __global__module::name prefix; user params use bare names.
ctes: Vec<IrCteDef>User-defined CTE bindings from a WITH block, in declaration order.
global_ctes: Vec<IrGlobalCte>Global variable CTEs (session-injected or computed), in dependency order.
warnings: Vec<String>Non-fatal warnings produced during compilation.
uses_globals_arg: boolTrue when this is a function body that reads a session global, or
forwards the globals argument to a callee that does — i.e. when the
function needs GLOBALS_ARG in its signature.
subtype_fanouts: HashMap<(String, String), IrPolyFanout>(module, table) of every concrete type with subtypes → the fan-out
that reads it with them. A plain source over one of these tables reads
through its fan-out; a write to it does not.
Auto Trait Implementations§
impl Freeze for IrOutput
impl RefUnwindSafe for IrOutput
impl Send for IrOutput
impl Sync for IrOutput
impl Unpin for IrOutput
impl UnsafeUnpin for IrOutput
impl UnwindSafe for IrOutput
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.