Thomas
da6120e4c9
SPARQL: Removes intermediate query plan representation
...
Covered by the optimizer plan
2 years ago
Thomas
c31ba0e823
Makes sparopt figure out good join keys
2 years ago
Thomas
501f9ce6f9
Makes profiler independent from query plan
2 years ago
Thomas
24a1dd2556
Applies some recent Clippy lints
2 years ago
Tpt
69d8ce6b4e
Migrates RDF/XML parser from Rio
2 years ago
Tpt
71b1768d28
New N3/Turtle/TriG/N-Triple/N-Quad parsers and serializers
...
- Compatible with async IO
- Turtle/TriG parser recovery on simple errors
2 years ago
Tpt
a1cbfdf67d
Improves some code style details
2 years ago
Tpt
01caaa5d70
calendar subtraction: it should return xsd:dayTimeDuration following XPath
2 years ago
Tpt
40b10cdabc
Adds a naive standalone query optimizer
...
This drops some left join optimizations
2 years ago
Tpt
7c0563cb1b
XSD type structs: use by-value instead of by-ref in methods
...
They are small types
2 years ago
Tpt
a8abf26913
Enables some extra Clippy lints
2 years ago
Tpt
c016116b09
Makes Clippy 1.65 happy
2 years ago
Tpt
acf83d4a31
Fixes || evaluation when all alternatives are false
...
It should return false and not fail...
2 years ago
Tpt
1c1531f640
Simplifies some rust doc links
2 years ago
Tpt
8c68cf4041
Makes SPARQL AVG aggregate function simpler
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
7b9e9f9694
SPARQL: Makes average function works with yearMonthDuration and dayTimeDuration
2 years ago
Tpt
63945638ea
XSD: Adds checked_neg operation
2 years ago
Tpt
d24461fc42
XSD: Improves arithmetic computations
...
Avoids internal overflow inside some decimal operations
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
Thomas
704440538d
Adds EXISTS operation to the profiler output
2 years ago
Tpt
79c5e3918e
SPARQL plan: fixes used variable lookup in quoted triple patterns
2 years ago
Tpt
86bbebf93c
Fixes evaluation of empty aggregation without GROUP BY
...
Aggregators should return their default value (0 for COUNT...) and not an empty row
2 years ago
Tpt
60ffd99ad8
Exposes the query profiler to the CLI app
2 years ago
Tpt
dcd59ac4dd
Adds a way to add profiling to the evaluator
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
ef2701dc0c
Makes new Clippy happy
2 years ago
Tpt
afdb1f76e8
Adds a typo linter as part of the CI
2 years ago
Tpt
8684b82893
Properly expose oxigraph::sparql::QueryDataset
2 years ago
Tpt
07e105e1be
Property path: faster eval for closed path
2 years ago
Tpt
0a78eacfcd
SPARQL: Makes sure there are no duplicates when evaluating (a|b) property paths
2 years ago
Tpt
a7bc31b446
SPARQL regex: compile ahead of time if possible
2 years ago
Tpt
5c055e0d12
Removes Eq derive on query plan
...
Unused anywhere
2 years ago
Tpt
1fa0633db3
Library: adds basic WASI support
...
Adds tests for WASM+JS and WASI to the CI
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
3485833875
Makes Datetime.checked_sub return DayTimeDuration
...
Allows to be consistent with XPath and SPARQL 1.2 SEP 0002
This change is not replicated yet into the SPARQL evaluator to avoid a breaking change
https://www.w3.org/TR/xpath-functions/#func-subtract-dateTimes
https://github.com/w3c/sparql-12/blob/main/SEP/SEP-0002/sep-0002.md
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
854e29ee38
Makes XSD datatypes a standalone crate
...
Allows other crates to reuse Oxigraph XSD datatypes implementation
2 years ago
Tpt
1ded5ac4b4
SPARQL eval: Makes sure to avoid overflow when estimating result size upper bound
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
d65e587756
Property evaluates property paths with unknown graphs
2 years ago
Tpt
b6c9a5b429
Fixes ZeroOrX path evaluation on terms that are not in the dataset but only in the query
2 years ago
Tpt
6b02ac3c10
SPARQL UPDATE: Fixes Halloween problem
...
Buffers all SPARQL UPDATE operation for DELETE/INSERT in order to avoid this problem.
This is quite heavy but RocksDB transaction already stay in memory, hence it won't change a lot the operation complexity.
The unit test for this problem was bad because the optimizer was hiding the problem.
2 years ago