pub type DFSchemaRef = Arc<DFSchema>;
Expand description

A reference-counted reference to a DFSchema.

Aliased Type§

struct DFSchemaRef { /* private fields */ }

Trait Implementations§

source§

impl<T: ?Sized> DataPtr for Arc<T>

source§

fn data_ptr(this: &Self) -> *const ()

Returns a raw pointer to the data, stripping away all metadata.
source§

fn data_ptr_eq(this: &Self, other: &Self) -> bool

Check if two pointers point to the same data.
1.0.0 · source§

impl<T, A> Deref for Arc<T, A>where A: Allocator, T: ?Sized,

§

type Target = T

The resulting type after dereferencing.
source§

fn deref(&self) -> &T

Dereferences the value.
source§

impl<T: DynTreeNode + ?Sized> TreeNode for Arc<T>

Blanket implementation for Arc for any tye that implements DynTreeNode (such as Arc<dyn PhysicalExpr>)

source§

fn apply_children<F>(&self, op: &mut F) -> Result<VisitRecursion>where F: FnMut(&Self) -> Result<VisitRecursion>,

Apply the closure F to the node’s children
source§

fn map_children<F>(self, transform: F) -> Result<Self>where F: FnMut(Self) -> Result<Self>,

Apply transform F to the node’s children, the transform F might have a direction(Preorder or Postorder)
source§

fn apply<F>(&self, op: &mut F) -> Result<VisitRecursion>where F: FnMut(&Self) -> Result<VisitRecursion>,

Use preorder to iterate the node on the tree so that we can stop fast for some cases. Read more
source§

fn visit<V: TreeNodeVisitor<N = Self>>( &self, visitor: &mut V ) -> Result<VisitRecursion>

Visit the tree node using the given TreeNodeVisitor It performs a depth first walk of an node and its children. Read more
source§

fn transform<F>(self, op: &F) -> Result<Self>where F: Fn(Self) -> Result<Transformed<Self>>,

Convenience utils for writing optimizers rule: recursively apply the given op to the node tree. When op does not apply to a given node, it is left unchanged. The default tree traversal direction is transform_up(Postorder Traversal).
source§

fn transform_down<F>(self, op: &F) -> Result<Self>where F: Fn(Self) -> Result<Transformed<Self>>,

Convenience utils for writing optimizers rule: recursively apply the given ‘op’ to the node and all of its children(Preorder Traversal). When the op does not apply to a given node, it is left unchanged.
source§

fn transform_up<F>(self, op: &F) -> Result<Self>where F: Fn(Self) -> Result<Transformed<Self>>,

Convenience utils for writing optimizers rule: recursively apply the given ‘op’ first to all of its children and then itself(Postorder Traversal). When the op does not apply to a given node, it is left unchanged.
source§

fn rewrite<R: TreeNodeRewriter<N = Self>>( self, rewriter: &mut R ) -> Result<Self>

Transform the tree node using the given TreeNodeRewriter It performs a depth first walk of an node and its children. Read more