pub enum IrFreeExpr {
Scalar(IrExpr),
FreeObject(Vec<(String, IrExpr)>),
NamedTupleRow(Vec<(String, IrExpr)>),
Tuple(Vec<IrExpr>),
AssertSet {
fn_name: String,
inner: Box<IrArraySource>,
message: Option<IrExpr>,
},
CtePassthrough(String),
}Variants§
Scalar(IrExpr)
A single scalar value: SELECT {1}, SELECT 'hello', SELECT func().
FreeObject(Vec<(String, IrExpr)>)
A free object: SELECT { foo := 'bar', n := 42 }.
NamedTupleRow(Vec<(String, IrExpr)>)
A named tuple whose elements had to become a composite row rather than
jsonb, because one of them holds an object – jsonb has no member kind
for an object (see JsonMemberKind), so encoding it there would
flatten it. Still a named tuple to the caller, not a free object.
Tuple(Vec<IrExpr>)
An anonymous tuple: SELECT (1, 'x').
AssertSet
A set-returning assert: SELECT ROW(v) FROM unnest(_pylon.fn(ARRAY(inner))) v.
Used for assert_exists and assert_distinct which pass through the set.
Fields
§
inner: Box<IrArraySource>CtePassthrough(String)
Pass all rows from a scalar CTE through: SELECT "result" FROM "cte_name".
Trait Implementations§
Source§impl Clone for IrFreeExpr
impl Clone for IrFreeExpr
Auto Trait Implementations§
impl Freeze for IrFreeExpr
impl RefUnwindSafe for IrFreeExpr
impl Send for IrFreeExpr
impl Sync for IrFreeExpr
impl Unpin for IrFreeExpr
impl UnsafeUnpin for IrFreeExpr
impl UnwindSafe for IrFreeExpr
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
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>
Returns the layout of the type.
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
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.