Thomas
c31ba0e823
Makes sparopt figure out good join keys
2 years ago
Tpt
40b10cdabc
Adds a naive standalone query optimizer
...
This drops some left join optimizations
2 years ago
Tpt
c016116b09
Makes Clippy 1.65 happy
2 years ago
Tpt
adda2d2d7e
Makes hash join into for loop join optimization more aggressive
2 years ago
Tpt
22f990344f
Fixes hash left join into for loop left join optimization
...
It can inject variables into projections
2 years ago
Tpt
4cc9e4008b
Fixes empty IN expression optimization
2 years ago
Tpt
0a064a8704
SPARQL: Prevents ForLoopLeftJoin with MINUS
...
It can flip the MINUS operation out of the "disjoint" case
2 years ago
Tpt
e96672a2a8
SPARQL plan: allows AND and OR to have more than 2 children
...
Adds tests on VALUES cardinality validation
2 years ago
Tpt
7175784356
Improves Clippy lint list
2 years ago
Tpt
81793bc221
Makes nested PlanNode easy to clone
2 years ago
Tpt
9dc1106b9a
SPARQL query plan: attach original RDF terms
...
Helps debugging
2 years ago
Tpt
afdb1f76e8
Adds a typo linter as part of the CI
2 years ago
Tpt
a7bc31b446
SPARQL regex: compile ahead of time if possible
2 years ago
Tpt
719cde2eac
Implements SEP-0002 ADJUST function
...
ADJUST is now only implemented when a new timezone is given. I am not sure "" for no timezone is the best way to go.
It is behind a sep-0002 feature in spargebra and sparql-smith and enabled by default in oxigraph.
2 years ago
Tpt
76dd879ea6
Implements LATERAL join
...
Follows SPARQL 1.2 SEP 0006. It is behind a sep-0006 feature in spargebra and sparql-smith and enabled by default in oxigraph.
Apache Jena tests are passing.
SEP 0006: https://github.com/w3c/sparql-12/blob/main/SEP/SEP-0006/sep-0006.md
2 years ago
Tpt
808c9db007
String formatting: uses inline syntax
2 years ago
Tpt
d7e4d5583f
SPARQL: Adds an option to disable the optimizer
...
Provides a plain evaluator without any trick
2 years ago
Tpt
2ca8bd19d3
PlanBuilder: no need for &mut references
2 years ago
Tpt
865f1dac8d
Uses the same key space inside and outside of aggregate evaluation
...
There is a project node just alongside aggregates so the key space is already bounded by it
2 years ago
Tpt
c1d2cf030d
Makes Clippy happy
3 years ago
Tpt
e9bbe8e036
Applies new Clippy suggestions
3 years ago
Tpt
967dbacad7
Spargebra: Uses oxrdf terms
3 years ago
Tpt
f5545f1948
Makes Oxigraph model standalone as oxrdf
...
Allows to reuse it in other crates like spargebra
3 years ago
Tpt
72a17c4f72
Avoids using std::io::Error where possible
3 years ago
Tpt
cfb3be6d34
Adds custom functions support
3 years ago
Tpt
f6dbb96327
Makes Clippy happy
3 years ago
Tpt
6d4bb36425
Uses Reduced everywhere cardinality is not important
...
Allows avoiding dumb downstream duplicated work and should hopefully unlock optimizations in the future.
4 years ago
Tpt
505980f026
Implements reduced operation during evaluation
...
Cheap streaming implementation (no malloc needed)
4 years ago
Tpt
4673cd7979
Takes care of VALUES when choosing joins
4 years ago
Tpt
32660ecfba
Use HashJoin in BGP if no shared variables
...
Allows avoiding reading multiple times the same table
4 years ago
Tpt
836a7ad4a1
Push filters as deep as possible
...
Allows to remove some possible bindings as soon as possible
4 years ago
Tpt
4453235b90
Removes unused Rc in PlanNode
4 years ago
Tpt
57123ed42c
Uses for loop joins in more cases like BGP with property path
4 years ago
Tpt
ba98e2d1f8
Makes left join variable bad variable set smaller
...
Removes from it some safe cases
4 years ago
Tpt
27d73f7ee2
Removes GraphPattern::Sequence
...
Redundant with GraphPattern::Join.
Let's keep optimization related structs in the evaluation plan.
4 years ago
Tpt
bb5431b545
Removes PlanExpression::In
...
Can be expressed with Or and Equals
4 years ago
Tpt
4f7e396af0
Introduces PlanNode::ForLoopJoin
...
Makes for loop join more explicit and usable in more places
4 years ago
Tpt
aa9afe4641
spargebra: Renamings to move closer to SPARQLAlgebra.js
4 years ago
Tpt
5f79c408bc
Adds GraphPattern::Sequence
...
Safe version of GraphPattern::Join
4 years ago
Tpt
a653506f4c
Fixes variables scoping for EXISTS
...
Do not expose them outside in case they are reused
4 years ago
Tpt
f084cfe332
Enables more Clippy lints and enforces them
4 years ago
Tpt
f9d9530a1b
Makes SPARQL string storage insertion infallible
4 years ago
Tpt
7e9e3a0743
Implements SPARQL-star nested triple patterns evaluation
4 years ago
Tpt
ae0422d21c
Updates join reordering to take care of nested triples
4 years ago
Tpt
10ee6e17f0
Adds SPARQL* support to the SPARQL parser
...
Nested triple patterns query evaluation is not implemented yet
Annotation syntax is not implemented yet
4 years ago
Tpt
dcaf3793d5
Adds RDF-star SPARQL functions
4 years ago
Tpt
bc27a298fa
Simplifies spargebra basic patterns naming
4 years ago
Tpt
e2bbc29198
Makes encoded term not copy
4 years ago
Tpt
e6e83ff369
Makes SPARQL algebra more strict
...
Removes some invalid but encodable states
4 years ago
Tpt
0efc5b4654
Renames SledStore to Store and cleans up files hierarchy
4 years ago