Does Clara do better with [Object (= n ?n) (odd? n)] than [Object (= n ?n)] [:test (odd? n)]? (In other words, does it filter before working memory in the previous case?)
I believe that the first example would compile the odd? constraint into the alpha node, where as the second would have test node after the AlphaNode.
I don’t believe that either of these nodes add anything to working memory, following nodes might though.
Hmm, I omitted that I expect there to be another hash-join field on Object.
with the hashJoin between the alpha and the test, then i would expect moving the odd? constraint to the alpha node to likely reduce some of the objects being placed into working memory. How much savings it would produce I cannot say.