Checks that a Concat's two inputs have the same columns, matched by
position (spec §7.10, PLAN §11.5): the same count, which the engine doesn't
check; then the same name at each position, in the same case, a reordering
told apart; then the same precise type at each position, or, converting
types (Q5), types getConcatConvertedType gives one type. A type is named
by its short name, or its path when both share one. Nullability is never
compared. The spec's message comes first, then Cube's for every position
that differs.
Checks that a Concat's two inputs have the same columns, matched by position (spec §7.10, PLAN §11.5): the same count, which the engine doesn't check; then the same name at each position, in the same case, a reordering told apart; then the same precise type at each position, or, converting types (Q5), types
getConcatConvertedTypegives one type. A type is named by its short name, or its path when both share one. Nullability is never compared. The spec's message comes first, then Cube's for every position that differs.