You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 27, 2019. It is now read-only.
Refactoring + full tree rebuilding (at least 2 levels work)
What still doesn't work/don't care about yet/not done
- proper memory management (terrier uses shared_ptr anyways)
- other 1-level rewrites, multi-layer rewrites, other expr rewrites
- how can we define a grammar to programmatically create these rewrites?
(the one we have is way too static...)
- in relation to logical equivalence:
(1) how do we generate logically equivalent expressions:
- multi-pass using generating rules (similar to ApplyRule) OR
- from Pattern A, generate logically equivalent set of patterns P OR
- transform input expression to match certain specification OR
- ???
(2) what operators do we support translating?
- probably (a AND b) ====> (b AND a)
- probably (a OR b) ====> (b OR a)
- probably (a = b) ====> (b = a)
- maybe more???
(3) do we want multi level translations?
- i.e (a AND b) AND c ====> (a AND (b AND c))
- what order do we do these in?
May have to modify these operations:
- Some assertions in TopDownRewrite/BottomUpRewrite w.r.t to the iterator
- Possibly binding.cpp / optimizer_metadata.h / optimizer_task.cpp
Issues still pending:
- Comparing Values (Matt email/discussion)
- r.rule->Check (terrier issue #332)
0 commit comments