pub enum IrArraySource {
Select(IrSelect),
ObjectFunction(Box<IrFunctionSelect>),
ObjectSelect(Box<IrSelect>),
PathSelect(Box<IrPathSelect>),
Group(Box<IrGroup>),
StmtColumn {
stmt: Box<IrStmt>,
column: String,
},
RawExpr {
source: IrSource,
poly_implementors: Vec<IrPolyImplementor>,
poly_columns: Vec<String>,
expr: IrExpr,
},
}Expand description
Source for ARRAY(SELECT scalar FROM ...) — used by assert functions.
Variants§
Select(IrSelect)
Inner is a regular schema SELECT; first scalar pointer is the array element.
ObjectFunction(Box<IrFunctionSelect>)
Inner is a path traversal SELECT; scalar result is the array element.
An object-returning function’s rows, aggregated whole – a computed
pointer declared as fn(.id) asks for the objects, not one column.
ObjectSelect(Box<IrSelect>)
A bound select whose rows are objects, aggregated whole rather than
reduced to one column the way Select is – (select Post filter …) { title } asked for the objects.
PathSelect(Box<IrPathSelect>)
Group(Box<IrGroup>)
(select (group …) { … }) — one free object per group.
StmtColumn
One column of whatever rows a statement produces — the only way to
reach a for … union’s set, which has no single source to read from.
RawExpr
ARRAY(SELECT expr FROM source) — cross-scope type-is iteration.
Trait Implementations§
Source§impl Clone for IrArraySource
impl Clone for IrArraySource
Auto Trait Implementations§
impl Freeze for IrArraySource
impl RefUnwindSafe for IrArraySource
impl Send for IrArraySource
impl Sync for IrArraySource
impl Unpin for IrArraySource
impl UnsafeUnpin for IrArraySource
impl UnwindSafe for IrArraySource
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.