Introduce Label for search within id

This allows to define a volume using an indexed object.
This commit is contained in:
2019-11-18 11:21:44 +01:00
parent 0dc31c65c6
commit e2ea5c9ba4
8 changed files with 128 additions and 60 deletions

View File

@@ -1,3 +1,4 @@
use mercator_db::space;
use mercator_db::DataBase;
use super::expressions::Predictor;
@@ -17,7 +18,10 @@ impl Predictor for Bag {
match self {
Bag::ViewPort(bag) => bag.predict(db),
Bag::Distinct(bag) => bag.predict(db),
Bag::Filter(_, bag) => bag.predict(db),
Bag::Filter(_, bag) => match bag {
None => Ok(db.space(space::Space::universe().name())?.volume()),
Some(b) => b.predict(db),
},
Bag::Complement(bag) => Ok(db.space(bag.space())?.volume() - bag.predict(db)?),
Bag::Intersection(lh, rh) => {
let l = lh.predict(db)?;