You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #409 enabled the conversion of single union type hive field schema, such as uniontype<array<string>>, to array<string> in Coral's SqlNode & RelNode representation.
However, it breaks extract_union contract of returning only structs, 2- manages this new contract in another unrelated operator (DOT) with a method to guess the context as reported here . Hence, it needs to be revisited & should support the following scenarios across engines:
for a table foo: {a - int, b - uniontype<string>, c - uniontype<c1 - int, c2 - string, c3 - uniontype<string>>}
(1) select b from foo; // string
(2) select extract_union(b) from foo; // {tag_0:string}
(3) select extract_union(a) from foo; // {tag_0:string}
(4) select extract_union(c) from foo; // {c1: int, c2: string, c3: string}
(5) select extract_union(c).c3 from foo; // string
(6) select extract_union(c.c3) from foo; // {tag_0:string}
The text was updated successfully, but these errors were encountered:
PR #409 enabled the conversion of single union type hive field schema, such as
uniontype<array<string>>
, toarray<string>
in Coral's SqlNode & RelNode representation.However, it breaks
extract_union
contract of returning only structs, 2- manages this new contract in another unrelated operator (DOT) with a method to guess the context as reported here . Hence, it needs to be revisited & should support the following scenarios across engines:for a table
foo: {a - int, b - uniontype<string>, c - uniontype<c1 - int, c2 - string, c3 - uniontype<string>>}
(1) select b from foo; // string
(2) select extract_union(b) from foo; // {tag_0:string}
(3) select extract_union(a) from foo; // {tag_0:string}
(4) select extract_union(c) from foo; // {c1: int, c2: string, c3: string}
(5) select extract_union(c).c3 from foo; // string
(6) select extract_union(c.c3) from foo; // {tag_0:string}
The text was updated successfully, but these errors were encountered: