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)

Reply via email to