[ 
https://issues.apache.org/jira/browse/CALCITE-7081?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17986907#comment-17986907
 ] 

Yu Xu commented on CALCITE-7081:
--------------------------------

Custom formats are not supported in SqlCollectionTypeNameSpec and 
SqlMapTypeNameSpec. Maybe we need to support this capability(developer can 
specify name, open and close more easy), facilitates subsequent adaptation to 
various dialect styles.

> 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
>            Priority: Major
>              Labels: pull-request-available
>             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