Minor cleanup. Combine the children of a scope and their names into a list of pairs.
Remove SetOpRel's over-ride of isDistinct(). It's possible that a set-op would have distinct rows even if ALL is not specified.
Array tables now sort themselves on the first unique column they find. That column is likely to be the target of many-to-one joins; if the table is sorted, we can in future save the effort of building a hash table.