Closed senderista closed 7 years ago
I changed preorder()
to postorder()
in the NumTuplesPropagation
rule and that fixed tests, so I'm assuming that this fix is correct and the rule should have been using postorder()
to begin with (that seems reasonable since StoreTemp
needs to be visited before its corresponding ScanTemp
and the StoreTemp
is lower in the tree).
fixed by dec7afb
The definition of
Operator.preorder()
at https://github.com/uwescience/raco/blob/master/raco/algebra.py#L92 seems wrong, since the recursion usespostorder()
:Changing
postorder()
topreorder()
in the above code breaks an existing test though (https://github.com/uwescience/raco/blob/cf26abec675cbdc62008bd075bacb5e0d177247d/c_test_environment/grappalang_myrial_tests.py#L200). The problem seems to be that theNumTuplesPropagation
rule (https://github.com/uwescience/raco/blob/cf26abec675cbdc62008bd075bacb5e0d177247d/raco/rules.py#L65) is making invalid assumptions, but I don't have time to investigate this further.