If set to true, duplicate definitions are combined into a single one. This
must not be used in the top-level Bind because the definitions have to match the top-level
type (which is used later in createResultSetMapping). Any duplicates there will be
eliminated in hoistClientOps. It is also disabled directly under a Union because the
columns on both sides have to match up.
Split a path into the shortest part with a NominalType and the rest on
top of it. Returns None if there is no NominalType with one of the
candidate TypeSymbols in the path, otherwise returns Some(base, rest, tsym)
where tsym is the symbol that was found and base is the Node in the path
which has a NominalType of that symbol. rest is a (possibly empty) path of
symbols on top of base.
Split a path into the shortest part with a NominalType and the rest on
top of it. Returns None if there is no NominalType with one of the
candidate TypeSymbols in the path, otherwise returns Some(base, rest, tsym)
where tsym is the symbol that was found and base is the Node in the path
which has a NominalType of that symbol. rest is a (possibly empty) path of
symbols on top of base.