pub struct RdfFusionLogicalPlanBuilder { /* private fields */ }
Expand description
A convenient builder for programmatically creating SPARQL queries.
§Example
let subject = Variable::new_unchecked("s");
let predicate = Variable::new_unchecked("p");
let object = Variable::new_unchecked("o");
let pattern = TriplePattern {
subject: TermPattern::Variable(subject.clone()),
predicate: NamedNodePattern::Variable(predicate),
object: TermPattern::Variable(object),
};
let builder_context = RdfFusionLogicalPlanBuilderContext::new(rdf_fusion_context);
let plan: LogicalPlan = builder_context
.create_pattern(ActiveGraph::DefaultGraph, None, pattern)
.project(&[subject])
.unwrap()
.build()
.unwrap();
Implementations§
Source§impl RdfFusionLogicalPlanBuilder
impl RdfFusionLogicalPlanBuilder
Sourcepub fn project(
self,
variables: &[Variable],
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn project( self, variables: &[Variable], ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Projects the current plan to a new set of variables.
Sourcepub fn filter(
self,
expression: Expr,
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn filter( self, expression: Expr, ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Applies a filter using expression
.
The filter expression is evaluated for each solution. If the effective boolean value of the
expression is true
, the solution is kept; otherwise, it is discarded.
If the expression does not evaluate to a boolean, its effective boolean value is determined according to SPARQL rules.
§Relevant Resources
Sourcepub fn extend(
self,
variable: Variable,
expr: Expr,
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn extend( self, variable: Variable, expr: Expr, ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Extends the current plan with a new variable binding.
Sourcepub fn join(
self,
rhs: LogicalPlan,
join_type: SparqlJoinType,
filter: Option<Expr>,
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn join( self, rhs: LogicalPlan, join_type: SparqlJoinType, filter: Option<Expr>, ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Creates a join node of two logical plans that contain encoded RDF Terms.
§Relevant Resources
Sourcepub fn slice(
self,
start: usize,
length: Option<usize>,
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn slice( self, start: usize, length: Option<usize>, ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Creates a limit node that applies skip (start
) and fetch (length
) to inner
.
Sourcepub fn order_by(
self,
exprs: &[Sort],
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn order_by( self, exprs: &[Sort], ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Sorts the current plan by a given set of expressions.
Sourcepub fn union(
self,
rhs: LogicalPlan,
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn union( self, rhs: LogicalPlan, ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Creates a union of the current plan and another plan.
Sourcepub fn minus(
self,
rhs: LogicalPlan,
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn minus( self, rhs: LogicalPlan, ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Subtracts the results of another plan from the current plan.
Sourcepub fn group(
self,
variables: &[Variable],
aggregates: &[(Variable, Expr)],
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn group( self, variables: &[Variable], aggregates: &[(Variable, Expr)], ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Groups the current plan by a set of variables and applies aggregate expressions.
Sourcepub fn distinct(self) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn distinct(self) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Removes duplicate solutions from the current plan.
Sourcepub fn distinct_with_sort(
self,
sorts: Vec<Sort>,
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn distinct_with_sort( self, sorts: Vec<Sort>, ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Removes duplicate solutions from the current plan, with additional sorting.
Sourcepub fn pattern(
self,
pattern: Vec<Option<TermPattern>>,
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn pattern( self, pattern: Vec<Option<TermPattern>>, ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Removes duplicate solutions from the current plan.
Sourcepub fn with_plain_terms(
self,
) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
pub fn with_plain_terms( self, ) -> Result<RdfFusionLogicalPlanBuilder, DataFusionError>
Ensures all columns are encoded as plain terms.
Sourcepub fn context(&self) -> &RdfFusionLogicalPlanBuilderContext
pub fn context(&self) -> &RdfFusionLogicalPlanBuilderContext
Returns the builder context.
Sourcepub fn into_inner(self) -> LogicalPlanBuilder
pub fn into_inner(self) -> LogicalPlanBuilder
Consumes the builder and returns the inner LogicalPlanBuilder
.
Sourcepub fn build(self) -> Result<LogicalPlan, DataFusionError>
pub fn build(self) -> Result<LogicalPlan, DataFusionError>
Builds the LogicalPlan
.
Sourcepub fn expr_builder_root(&self) -> RdfFusionExprBuilderContext<'_>
pub fn expr_builder_root(&self) -> RdfFusionExprBuilderContext<'_>
Returns a new RdfFusionExprBuilderContext.
Sourcepub fn expr_builder(
&self,
expr: Expr,
) -> Result<RdfFusionExprBuilder<'_>, DataFusionError>
pub fn expr_builder( &self, expr: Expr, ) -> Result<RdfFusionExprBuilder<'_>, DataFusionError>
Returns a new RdfFusionExprBuilder for a given expression.
Trait Implementations§
Source§impl Clone for RdfFusionLogicalPlanBuilder
impl Clone for RdfFusionLogicalPlanBuilder
Source§fn clone(&self) -> RdfFusionLogicalPlanBuilder
fn clone(&self) -> RdfFusionLogicalPlanBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for RdfFusionLogicalPlanBuilder
impl !RefUnwindSafe for RdfFusionLogicalPlanBuilder
impl Send for RdfFusionLogicalPlanBuilder
impl Sync for RdfFusionLogicalPlanBuilder
impl Unpin for RdfFusionLogicalPlanBuilder
impl !UnwindSafe for RdfFusionLogicalPlanBuilder
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<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