pub struct CompositeInputs { /* private fields */ }Expand description
Logical and optimized inputs retain their own descriptors and values across rollback. Reading either plan projects a copy without rerunning already-folded expressions.
Implementations§
Source§impl CompositeInputs
impl CompositeInputs
pub fn capture( plan: &UnifiedPlan, types: &dyn FunctionTypeResolver, ) -> Result<Self, SQLError>
Sourcepub fn project_logical(
&self,
plan: &UnifiedPlan,
types: &dyn FunctionTypeResolver,
) -> Result<Option<UnifiedPlan>, SQLError>
pub fn project_logical( &self, plan: &UnifiedPlan, types: &dyn FunctionTypeResolver, ) -> Result<Option<UnifiedPlan>, SQLError>
Project original inputs before result analysis and optimization without changing the retained source.
Sourcepub fn project_for_generic(
&self,
plan: &UnifiedPlan,
types: &dyn FunctionTypeResolver,
) -> Result<Option<UnifiedPlan>, SQLError>
pub fn project_for_generic( &self, plan: &UnifiedPlan, types: &dyn FunctionTypeResolver, ) -> Result<Option<UnifiedPlan>, SQLError>
Update attribute names and field bindings for optimization while retaining the original scalar datums in the reusable executable. Interpreting a raw byte as boolean is not reversible, so an interpreted value cannot replace its source in a cache.
Sourcepub fn with_generic(
&self,
plan: &UnifiedPlan,
types: &dyn FunctionTypeResolver,
) -> Result<Self, SQLError>
pub fn with_generic( &self, plan: &UnifiedPlan, types: &dyn FunctionTypeResolver, ) -> Result<Self, SQLError>
Record the names and attribute numbers of the actual generic plan with the types of its retained scalar datums. Folded scalar results have no remaining composite dependency.
Sourcepub fn generic_requires_rebuild(
&self,
types: &dyn FunctionTypeResolver,
) -> Result<bool, SQLError>
pub fn generic_requires_rebuild( &self, types: &dyn FunctionTypeResolver, ) -> Result<bool, SQLError>
Attribute numbers cannot be reused. A number present at logical analysis, absent at optimization, and live again therefore comes from catalog undo; discard constants folded under the undone descriptor.
Sourcepub fn project_generic(
&self,
plan: &UnifiedPlan,
types: &dyn FunctionTypeResolver,
) -> Result<Option<UnifiedPlan>, SQLError>
pub fn project_generic( &self, plan: &UnifiedPlan, types: &dyn FunctionTypeResolver, ) -> Result<Option<UnifiedPlan>, SQLError>
Adapt a copy of the cached plan, preserving constants already folded by its original optimization and the source fields needed after rollback.
Trait Implementations§
Source§impl Clone for CompositeInputs
impl Clone for CompositeInputs
Source§impl Debug for CompositeInputs
impl Debug for CompositeInputs
Auto Trait Implementations§
impl Freeze for CompositeInputs
impl RefUnwindSafe for CompositeInputs
impl Send for CompositeInputs
impl Sync for CompositeInputs
impl Unpin for CompositeInputs
impl UnsafeUnpin for CompositeInputs
impl UnwindSafe for CompositeInputs
Blanket Implementations§
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,
impl<T> ErasedDestructor for Twhere
T: 'static,
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