|
|
@ -7,7 +7,7 @@ use std::collections::btree_map::Entry; |
|
|
|
use std::collections::{BTreeMap, BTreeSet}; |
|
|
|
use std::collections::{BTreeMap, BTreeSet}; |
|
|
|
use std::rc::Rc; |
|
|
|
use std::rc::Rc; |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub enum PlanNode { |
|
|
|
pub enum PlanNode { |
|
|
|
StaticBindings { |
|
|
|
StaticBindings { |
|
|
|
tuples: Vec<EncodedTuple>, |
|
|
|
tuples: Vec<EncodedTuple>, |
|
|
@ -372,21 +372,21 @@ impl PlanNode { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub enum PatternValue { |
|
|
|
pub enum PatternValue { |
|
|
|
Constant(EncodedTerm), |
|
|
|
Constant(EncodedTerm), |
|
|
|
Variable(usize), |
|
|
|
Variable(usize), |
|
|
|
Triple(Box<TriplePatternValue>), |
|
|
|
Triple(Box<TriplePatternValue>), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub struct TriplePatternValue { |
|
|
|
pub struct TriplePatternValue { |
|
|
|
pub subject: PatternValue, |
|
|
|
pub subject: PatternValue, |
|
|
|
pub predicate: PatternValue, |
|
|
|
pub predicate: PatternValue, |
|
|
|
pub object: PatternValue, |
|
|
|
pub object: PatternValue, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub enum PlanExpression { |
|
|
|
pub enum PlanExpression { |
|
|
|
Constant(EncodedTerm), |
|
|
|
Constant(EncodedTerm), |
|
|
|
Variable(usize), |
|
|
|
Variable(usize), |
|
|
@ -590,14 +590,14 @@ impl PlanExpression { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub struct PlanAggregation { |
|
|
|
pub struct PlanAggregation { |
|
|
|
pub function: PlanAggregationFunction, |
|
|
|
pub function: PlanAggregationFunction, |
|
|
|
pub parameter: Option<PlanExpression>, |
|
|
|
pub parameter: Option<PlanExpression>, |
|
|
|
pub distinct: bool, |
|
|
|
pub distinct: bool, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub enum PlanAggregationFunction { |
|
|
|
pub enum PlanAggregationFunction { |
|
|
|
Count, |
|
|
|
Count, |
|
|
|
Sum, |
|
|
|
Sum, |
|
|
@ -608,7 +608,7 @@ pub enum PlanAggregationFunction { |
|
|
|
GroupConcat { separator: Rc<String> }, |
|
|
|
GroupConcat { separator: Rc<String> }, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub enum PlanPropertyPath { |
|
|
|
pub enum PlanPropertyPath { |
|
|
|
Path(EncodedTerm), |
|
|
|
Path(EncodedTerm), |
|
|
|
Reverse(Rc<Self>), |
|
|
|
Reverse(Rc<Self>), |
|
|
@ -620,20 +620,20 @@ pub enum PlanPropertyPath { |
|
|
|
NegatedPropertySet(Rc<Vec<EncodedTerm>>), |
|
|
|
NegatedPropertySet(Rc<Vec<EncodedTerm>>), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub enum Comparator { |
|
|
|
pub enum Comparator { |
|
|
|
Asc(PlanExpression), |
|
|
|
Asc(PlanExpression), |
|
|
|
Desc(PlanExpression), |
|
|
|
Desc(PlanExpression), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub struct TripleTemplate { |
|
|
|
pub struct TripleTemplate { |
|
|
|
pub subject: TripleTemplateValue, |
|
|
|
pub subject: TripleTemplateValue, |
|
|
|
pub predicate: TripleTemplateValue, |
|
|
|
pub predicate: TripleTemplateValue, |
|
|
|
pub object: TripleTemplateValue, |
|
|
|
pub object: TripleTemplateValue, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Clone, Hash)] |
|
|
|
#[derive(Debug, Clone)] |
|
|
|
pub enum TripleTemplateValue { |
|
|
|
pub enum TripleTemplateValue { |
|
|
|
Constant(EncodedTerm), |
|
|
|
Constant(EncodedTerm), |
|
|
|
BlankNode(usize), |
|
|
|
BlankNode(usize), |
|
|
|