Maximilian Goisser
1d02098b70
Fix missing GSPO compaction
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
a977adff91
Allows to collect RocksDB statistics
...
Hidden behind the "rocksdb_debug" features
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
6af6c9c0eb
Bulk loader: fixes the progress indicator display
2 years ago
Tpt
7787be6e84
Bulk loader: pre-allocate some buffers
2 years ago
Tpt
13976014e7
Bulk loader: reduces default system parameters
...
Uses by default targets of 1GB of RAM and 2 threads.
Data parsing is in most of the case slower than ingestion so no more than 2 threads are used anyway.
2 years ago
Tpt
fbcbd60c0e
Python: adds Store.bulk_extend
2 years ago
Tpt
26f4e2dc98
Allows to have secondary instances in memory
2 years ago
Tpt
5f68cb3746
Cleans up RocksDB wrapper code and implements backup from read-only and secondary instances
2 years ago
Tpt
b2385509a6
Improves read only and secondary test coverage
...
Adds the missing get method
2 years ago
Tpt
855c39146d
Replaces Store::open_with_options with explicit variants
...
Trades enums and structs for methods
2 years ago
Tpt
9729ec8ed3
Adds features annotations to docs.rs
2 years ago
Tpt
ef2701dc0c
Makes new Clippy happy
2 years ago
Benedikt Seidl
f7637ee5a5
Add option to open database in read-only mode
...
With read-only it's not possible to modify the data. Updates to the data
are possible via a primary instance of oxigraph, but will not be
reflected. The data is frozen at the time the read-only server is
started.
2 years ago
Benedikt Seidl
aa9476b9cc
Add option to open rocksdb in secondary mode
...
The database can be opened once in primary mode, but may be opened
multiple times in secondary mode. It's not possible to write data to the
database in secondary mode.
Secondary mode does not support checkpoints so there might be data
inconsistencies when data is changed while said data is queried. It
might happen that the result data mixes both elements before and after
the change that can not happen in primary mode.
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
2d19a19320
Fixes TriG serialization
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
Tpt
7581d9a6b2
Makes Clippy happy
2 years ago
Tpt
cda6b09d79
Fixes NOW() evaluation
2 years ago
Tpt
59aea75a30
Uses try_into for slice to array conversions
2 years ago
Maximilian Goisser
325dc59f84
Add conversion from spargebra Query into oxigraph Query
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
d16033ba66
Variable should stay not bound in subqueries even if they are bound in the parent query
...
Closes #261
2 years ago
Tpt
eedc4b3a71
Removes unnecessary qualified paths
2 years ago
Tpt
c1d2cf030d
Makes Clippy happy
2 years ago
Tpt
4cea628570
Upgrades to sysinfo 0.26
2 years ago
Tpt
e9bbe8e036
Applies new Clippy suggestions
2 years ago
Tpt
95fd439dc2
Updates dependencies
3 years ago
Tpt
126df03994
Fixes WASM compilation
3 years ago