I noticed a number of places in the code where the successors of a LogicalRelationalOperator is accessed as "op.successors.get(0)". Is it always the case that logical relational operators (in the new logical optimizer framework) have only 1 successor? Why dont the rules iterate over the successors instead of assuming there is a single successor?
An example which shows an LOFilter having multiple successor (correct me if I am wrong): A1 = Load(..); A2 = Load(..); B = LOFilter(...); C = LOJoin(A1,B); D = LOJoin(A2,B); Thanks! Swati