The idea is to make the usecase of object filtering like https://github.com/Blazebit/blaze-expression/issues/42 more efficient by implementing an engine that can split a predicate into parts that can be pushed down to act as filters for specific attributes.
A filter like root.name = 'abc' can be split into {"root": "name = 'abc'"}.
A filter like root.collection1.name = 'abc' could be split into {"root": "root.collection1 is not empty", "root.collection1": "name = 'abc'"}.
Maybe it makes sense to also allow empty collections i.e. apply left join semantics to such filters.
The idea is to make the usecase of object filtering like https://github.com/Blazebit/blaze-expression/issues/42 more efficient by implementing an engine that can split a predicate into parts that can be pushed down to act as filters for specific attributes.
A filter like
root.name = 'abc'
can be split into{"root": "name = 'abc'"}
.A filter like
root.collection1.name = 'abc'
could be split into{"root": "root.collection1 is not empty", "root.collection1": "name = 'abc'"}
.Maybe it makes sense to also allow empty collections i.e. apply left join semantics to such filters.