Yu Xu created CALCITE-7081: ------------------------------ Summary: Invalid unparse for cast to nested type in ClickHouse Key: CALCITE-7081 URL: https://issues.apache.org/jira/browse/CALCITE-7081 Project: Calcite Issue Type: Bug Components: core Affects Versions: 1.40.0 Reporter: Yu Xu Assignee: Yu Xu Fix For: 1.41.0
Sql in ClickHouse: {code:java} select cast(array['a','b','c'] as varchar array;{code} in ClickHouse would error: {code:java} Code: 62. DB::Exception: Syntax error: failed at position 258 ('(') (line 5, col 12): (array['a','b','c'] as varchar array;. Unmatched parentheses: ( {code} should convert to: {code:java} SELECT CAST(array('a', 'b', 'c') AS Array(`String`));{code} result: {code:java} ['a','b','c'] {code} Map also can not convert right. sql: {code:java} select cast(array[MAP['a','1'],MAP['b','2'],MAP['c','3']] as MAP<varchar,varchar> array); {code} in ClickHouse would error: {code:java} Code: 62. DB::Exception: Syntax error: failed at position 383 (',') (line 9, col 26): ,'1'],MAP['b','2'],MAP['c','3']] as MAP<varchar,varchar> array); . Expected one of: DoubleColon, LIKE, GLOBAL NOT IN, end of query, AS, DIV, IS, OR, QuestionMark, BETWEEN, NOT LIKE, MOD, AND, alias, IN, ILIKE, NOT ILIKE, NOT, token, NOT IN, GLOBAL IN {code} should convert to: {code:java} SELECT CAST(array(map('a', '1'), map('b', '2'), map('c', '3')) AS Array(Map(`String`, `Nullable(String)`))) ;{code} result: {code:java} [{'a':'1'},{'b':'2'},{'c':'3'}] {code} we can find that in such like ClickHouse databasesystem, {*}Map/Array are c{*}{*}ase sensitive{*},we need to write the words accurately. we can refer: [https://clickhouse.com/docs/sql-reference/data-types/array] https://clickhouse.com/docs/sql-reference/data-types/map -- This message was sent by Atlassian Jira (v8.20.10#820010)