* Adaptation of the grammar to make more regular w.r.t reference space
names placement.
* Implemented Type check
* Implemented prediction of the result set cardinality. This assumes:
+ A space is not infinite, this is required to compute complementary
sets as we can compute the whole space volume.
+ Density is mostly uniform, this allows us to assume the number of
results is related with a constant factor to the volume in space
of the selection.
+ The prediction is approximated by using the most pessimistic
resulting cardinality for each operator, in order to keep the
operation simple, and fast, at the expense of the precision.
* Implemented execution, which calls into a DB abstraction layer. That
layer is currently mostly empty. Execution is also implemented in a
naive way, and should most likely be optimised.
29 lines
702 B
TOML
29 lines
702 B
TOML
[package]
|
|
name = "parser"
|
|
version = "0.1.0"
|
|
authors = ["Lionel Sambuc <lionel.sambuc@gmail.com>"]
|
|
edition = "2018"
|
|
build = "build.rs" # LALRPOP preprocessing
|
|
|
|
[lib]
|
|
name = "parser"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "parser-driver"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
lalrpop-util = "0.17.0"
|
|
regex = "0.2.1"
|
|
measure_time = "0.6" # To mesure parsing time, only required by binary
|
|
lazy_static = "1.3.0" # for space.rs, might be removed once the full data model is provided by the use of the crate
|
|
|
|
# Logging macros API
|
|
log = { version = "0.4", features = ["max_level_trace", "release_max_level_debug"] }
|
|
pretty_env_logger = "0.3" # Logger implementation
|
|
|
|
[build-dependencies]
|
|
lalrpop = "0.17.0"
|
|
|