-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Labels
Description
For physical operators, __repr__ persists all constructor args, so we can round-trip between repr() and eval() for physical plans. For logical plans, this doesn't work because the implementation of __repr__ for logical operators only persists the name of the class in the constructor call, with no args.
raco.myrial.myrial_test.MyrialTestCase.get_plan() always round-trips the generated plan through repr() and eval() to exercise this codepath, but that always fails for logical plans as described above. For now, I've disabled the round-tripping for logical plans (it still happens for physical plans).
The proper fix is to override __repr__ on all logical operators just as we do for physical operators.