[ 
https://issues.apache.org/jira/browse/CALCITE-7055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yu Xu updated CALCITE-7055:
---------------------------
    Description: 
Based on the Array type, Calcite currently converts it as {*}varchar array{*}, 
but some database systems do not support this syntax, such as StarRocks,test 
sql:

 
{code:java}
select cast([1,2,3] as integer array); {code}
error as:

 
{code:java}
[1064] [42000]: Getting syntax error at line 1, column 95. Detail message: 
Unexpected input 'array', the most similar input is {')'}.
    at 
org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:133)
    at 
org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeStatement(SQLQueryJob.java:582)
    at 
org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.lambda$1(SQLQueryJob.java:491)
    at 
org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:190)
    at 
org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeSingleQuery(SQLQueryJob.java:498)
    at 
org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.extractData(SQLQueryJob.java:934)
    at 
org.jkiss.dbeaver.ui.editors.sql.SQLEditor$QueryResultsContainer.readData(SQLEditor.java:3937)
    at 
org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.lambda$0(ResultSetJobDataRead.java:123)
    at 
org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:190)
    at 
org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:121)
{code}
 

should convert to this way:
{code:java}
select cast([1,2,3] as array<integer>) {code}
execute is ok:
{code:java}
[1,2,3] {code}
so maybe we need to fix it for StarRocks.

 

  was:
Based on the Array type, Calcite currently converts it as varchar array, but 
some database systems do not support this syntax, such as StarRocks,test sql:

 
{code:java}
select cast([1,2,3] as integer array); {code}
error as:

 
{code:java}
[1064] [42000]: Getting syntax error at line 1, column 95. Detail message: 
Unexpected input 'array', the most similar input is {')'}.
    at 
org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:133)
    at 
org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeStatement(SQLQueryJob.java:582)
    at 
org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.lambda$1(SQLQueryJob.java:491)
    at 
org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:190)
    at 
org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeSingleQuery(SQLQueryJob.java:498)
    at 
org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.extractData(SQLQueryJob.java:934)
    at 
org.jkiss.dbeaver.ui.editors.sql.SQLEditor$QueryResultsContainer.readData(SQLEditor.java:3937)
    at 
org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.lambda$0(ResultSetJobDataRead.java:123)
    at 
org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:190)
    at 
org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:121)
{code}
 

should convert to this way:
{code:java}
select cast([1,2,3] as array<integer>) {code}
execute is ok:
{code:java}
[1,2,3] {code}
so maybe we need to fix it for StarRocks.

 


> Invalid unparse for cast to array type in StarRocks
> ---------------------------------------------------
>
>                 Key: CALCITE-7055
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7055
>             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
>
>
> Based on the Array type, Calcite currently converts it as {*}varchar 
> array{*}, but some database systems do not support this syntax, such as 
> StarRocks,test sql:
>  
> {code:java}
> select cast([1,2,3] as integer array); {code}
> error as:
>  
> {code:java}
> [1064] [42000]: Getting syntax error at line 1, column 95. Detail message: 
> Unexpected input 'array', the most similar input is {')'}.
>     at 
> org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:133)
>     at 
> org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeStatement(SQLQueryJob.java:582)
>     at 
> org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.lambda$1(SQLQueryJob.java:491)
>     at 
> org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:190)
>     at 
> org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeSingleQuery(SQLQueryJob.java:498)
>     at 
> org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.extractData(SQLQueryJob.java:934)
>     at 
> org.jkiss.dbeaver.ui.editors.sql.SQLEditor$QueryResultsContainer.readData(SQLEditor.java:3937)
>     at 
> org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.lambda$0(ResultSetJobDataRead.java:123)
>     at 
> org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:190)
>     at 
> org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:121)
> {code}
>  
> should convert to this way:
> {code:java}
> select cast([1,2,3] as array<integer>) {code}
> execute is ok:
> {code:java}
> [1,2,3] {code}
> so maybe we need to fix it for StarRocks.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to