pub struct SparqlJoinNode { /* private fields */ }
Implementations§
Source§impl SparqlJoinNode
impl SparqlJoinNode
Sourcepub fn try_new(
encodings: RdfFusionEncodings,
lhs: LogicalPlan,
rhs: LogicalPlan,
filter: Option<Expr>,
join_type: SparqlJoinType,
) -> Result<SparqlJoinNode, DataFusionError>
pub fn try_new( encodings: RdfFusionEncodings, lhs: LogicalPlan, rhs: LogicalPlan, filter: Option<Expr>, join_type: SparqlJoinType, ) -> Result<SparqlJoinNode, DataFusionError>
Creates a new SPARQL join node with the specified inputs, filter, and join type.
This constructor validates that the inputs are compatible for joining according to SPARQL semantics, and that any filter expression is a boolean expression.
§Arguments
lhs
- The left-hand side logical planrhs
- The right-hand side logical planfilter
- An optional filter expression to apply to the joinjoin_type
- The type of join to perform (inner or left)
§Returns
A new SparqlJoinNode
if the inputs are valid, or an error otherwise
§Additional Resources
Sourcepub fn lhs(&self) -> &LogicalPlan
pub fn lhs(&self) -> &LogicalPlan
Returns a reference to the left-hand side logical plan of the join.
This is the first input to the join operation.
Sourcepub fn rhs(&self) -> &LogicalPlan
pub fn rhs(&self) -> &LogicalPlan
Returns a reference to the right-hand side logical plan of the join.
This is the second input to the join operation.
Sourcepub fn filter(&self) -> Option<&Expr>
pub fn filter(&self) -> Option<&Expr>
Returns a reference to the optional filter expression applied to the join.
If present, this filter is applied after the join operation to further restrict the results.
Sourcepub fn join_type(&self) -> SparqlJoinType
pub fn join_type(&self) -> SparqlJoinType
Returns the type of join operation (inner or left).
This determines how solution mappings are combined and whether unmatched solutions from the left side are preserved.
Sourcepub fn destruct(
self,
) -> (LogicalPlan, LogicalPlan, Option<Expr>, SparqlJoinType)
pub fn destruct( self, ) -> (LogicalPlan, LogicalPlan, Option<Expr>, SparqlJoinType)
Consumes the join node and returns its components.
This method is useful when you need to take ownership of the components of the join node, such as during transformation or optimization of the logical plan.
§Returns
A tuple containing the left plan, right plan, optional filter, and join type
Trait Implementations§
Source§impl Clone for SparqlJoinNode
impl Clone for SparqlJoinNode
Source§fn clone(&self) -> SparqlJoinNode
fn clone(&self) -> SparqlJoinNode
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SparqlJoinNode
impl Debug for SparqlJoinNode
Source§impl Hash for SparqlJoinNode
impl Hash for SparqlJoinNode
Source§impl PartialEq for SparqlJoinNode
impl PartialEq for SparqlJoinNode
Source§impl PartialOrd for SparqlJoinNode
impl PartialOrd for SparqlJoinNode
Source§impl UserDefinedLogicalNodeCore for SparqlJoinNode
impl UserDefinedLogicalNodeCore for SparqlJoinNode
Source§fn inputs(&self) -> Vec<&LogicalPlan>
fn inputs(&self) -> Vec<&LogicalPlan>
Source§fn expressions(&self) -> Vec<Expr>
fn expressions(&self) -> Vec<Expr>
Source§fn fmt_for_explain(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt_for_explain(&self, f: &mut Formatter<'_>) -> Result<(), Error>
f
for use in explain plan. Read moreSource§fn with_exprs_and_inputs(
&self,
exprs: Vec<Expr>,
inputs: Vec<LogicalPlan>,
) -> Result<SparqlJoinNode, DataFusionError>
fn with_exprs_and_inputs( &self, exprs: Vec<Expr>, inputs: Vec<LogicalPlan>, ) -> Result<SparqlJoinNode, DataFusionError>
UserDefinedLogicalNode
with the specified children
and expressions. This function is used during optimization
when the plan is being rewritten and a new instance of the
UserDefinedLogicalNode
must be created. Read moreSource§fn check_invariants(
&self,
_check: InvariantLevel,
) -> Result<(), DataFusionError>
fn check_invariants( &self, _check: InvariantLevel, ) -> Result<(), DataFusionError>
Source§fn prevent_predicate_push_down_columns(&self) -> HashSet<String>
fn prevent_predicate_push_down_columns(&self) -> HashSet<String>
Source§fn necessary_children_exprs(
&self,
_output_columns: &[usize],
) -> Option<Vec<Vec<usize>>>
fn necessary_children_exprs( &self, _output_columns: &[usize], ) -> Option<Vec<Vec<usize>>>
Source§fn supports_limit_pushdown(&self) -> bool
fn supports_limit_pushdown(&self) -> bool
true
if a limit can be safely pushed down through this
UserDefinedLogicalNode
node. Read moreimpl Eq for SparqlJoinNode
impl StructuralPartialEq for SparqlJoinNode
Auto Trait Implementations§
impl Freeze for SparqlJoinNode
impl !RefUnwindSafe for SparqlJoinNode
impl Send for SparqlJoinNode
impl Sync for SparqlJoinNode
impl Unpin for SparqlJoinNode
impl !UnwindSafe for SparqlJoinNode
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 moreSource§impl<T> UserDefinedLogicalNode for Twhere
T: UserDefinedLogicalNodeCore,
impl<T> UserDefinedLogicalNode for Twhere
T: UserDefinedLogicalNodeCore,
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Source§fn inputs(&self) -> Vec<&LogicalPlan>
fn inputs(&self) -> Vec<&LogicalPlan>
Source§fn check_invariants(&self, check: InvariantLevel) -> Result<(), DataFusionError>
fn check_invariants(&self, check: InvariantLevel) -> Result<(), DataFusionError>
Source§fn expressions(&self) -> Vec<Expr>
fn expressions(&self) -> Vec<Expr>
Source§fn prevent_predicate_push_down_columns(&self) -> HashSet<String>
fn prevent_predicate_push_down_columns(&self) -> HashSet<String>
Source§fn fmt_for_explain(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt_for_explain(&self, f: &mut Formatter<'_>) -> Result<(), Error>
f
for use in explain plan. Read moreSource§fn with_exprs_and_inputs(
&self,
exprs: Vec<Expr>,
inputs: Vec<LogicalPlan>,
) -> Result<Arc<dyn UserDefinedLogicalNode>, DataFusionError>
fn with_exprs_and_inputs( &self, exprs: Vec<Expr>, inputs: Vec<LogicalPlan>, ) -> Result<Arc<dyn UserDefinedLogicalNode>, DataFusionError>
UserDefinedLogicalNode
with the specified children
and expressions. This function is used during optimization
when the plan is being rewritten and a new instance of the
UserDefinedLogicalNode
must be created. Read moreSource§fn necessary_children_exprs(
&self,
output_columns: &[usize],
) -> Option<Vec<Vec<usize>>>
fn necessary_children_exprs( &self, output_columns: &[usize], ) -> Option<Vec<Vec<usize>>>
Source§fn dyn_eq(&self, other: &dyn UserDefinedLogicalNode) -> bool
fn dyn_eq(&self, other: &dyn UserDefinedLogicalNode) -> bool
fn dyn_ord(&self, other: &dyn UserDefinedLogicalNode) -> Option<Ordering>
Source§fn supports_limit_pushdown(&self) -> bool
fn supports_limit_pushdown(&self) -> bool
true
if a limit can be safely pushed down through this
UserDefinedLogicalNode
node. Read more