SET allow_experimental_analyzer = 1; WITH ('a', 'b')::Tuple(c1 String, c2 String) AS t SELECT t.c1, t.c2; WITH materialize(('a', 'b')::Tuple(c1 String, c2 String)) AS t SELECT t.c1, t.c2; WITH (1, ('a', 'b'))::Tuple(c1 UInt64, t1 Tuple(c1 String, c2 String)) AS t SELECT t.c1, t.t1.c1, t.t1.c2; WITH materialize((1, ('a', 'b'))::Tuple(c1 UInt64, t1 Tuple(c1 String, c2 String))) AS t SELECT t.c1, t.t1.c1, t.t1.c2; WITH [1, 2, 3] AS arr SELECT arr.size0; WITH materialize([1, 2, 3]) AS arr SELECT arr.size0; WITH [1, 2, NULL] AS arr SELECT arr.null; WITH materialize([1, 2, NULL]) AS arr SELECT arr.null; WITH [[1, 2], [], [3]] AS arr SELECT arr.size0, arr.size1; WITH materialize([[1, 2], [], [3]]) AS arr SELECT arr.size0, arr.size1; WITH map('foo', 1, 'bar', 2) AS m SELECT m.keys, m.values; WITH materialize(map('foo', 1, 'bar', 2)) AS m SELECT m.keys, m.values; WITH map('foo', 1, 'bar', 2) AS m SELECT m.*; WITH map('foo', (1, 2), 'bar', (3, 4))::Map(String, Tuple(a UInt64, b UInt64)) AS m SELECT m.keys, m.values, m.values.a, m.values.b; WITH materialize(map('foo', (1, 2), 'bar', (3, 4))::Map(String, Tuple(a UInt64, b UInt64))) AS m SELECT m.keys, m.values, m.values.a, m.values.b; WITH map('foo', (1, 2), 'bar', (3, 4))::Map(String, Tuple(a UInt64, b UInt64)) AS m SELECT m.keys, m.values, m.values.*; WITH materialize(map('foo', (1, 2), 'bar', (3, 4))::Map(String, Tuple(a UInt64, b UInt64))) AS m SELECT m.keys, m.values, m.values.*; WITH [1, 2, 3] AS arr SELECT arr.*; -- { serverError UNSUPPORTED_METHOD } SELECT getSubcolumn([1, 2, 3], 'size0'); SELECT getSubcolumn([1, 2, 3], materialize('size0')); -- { serverError ILLEGAL_COLUMN } SELECT getSubcolumn([1, 2, 3], 'aaa'); -- { serverError ILLEGAL_COLUMN }