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

Egor Ryashin updated CALCITE-6170:
----------------------------------
    Summary:  DruidException: Illegal use of dynamic parameter with 'LOWER(?)'  
(was:  DruidException: Illegal use of dynamic parameter )

>  DruidException: Illegal use of dynamic parameter with 'LOWER(?)'
> -----------------------------------------------------------------
>
>                 Key: CALCITE-6170
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6170
>             Project: Calcite
>          Issue Type: Bug
>          Components: avatica-go
>    Affects Versions: 1.23.0
>            Reporter: Egor Ryashin
>            Assignee: Francis Chuang
>            Priority: Major
>
> Apache Druid with Calcite and Avatica-Protobuf integration doesn't correctly 
> validate 'LOWER(?)'
> The current workaround: 'LOWER(CAST(? AS VARCHAR))'
> Versions:
> {code:java}
> <calcite.version>1.35.0</calcite.version> 
> <avatica.version>1.23.0</avatica.version> {code}
>  
> The following Go code will produce an exception:
> {code:java}
> package main
> import (
>   "context"
>   "database/sql"
>   "fmt"
>   _ "github.com/apache/calcite-avatica-go/v5"
> )
> func main() {
>   jdbcUrl := "http://localhost:8082/druid/v2/sql/avatica-protobuf";
>   db, err := sql.Open("avatica", jdbcUrl)
>   if err != nil {
>     panic(err)
>   }
>   defer func() {
>     err = db.Close()
>     if err != nil {
>       fmt.Println(err)
>       panic(err)
>     }
>   }()
>   sql := "select any_value(browser) from test where (lower(browser) like 
> lower(?)) limit 10"
>   rows, err := db.QueryContext(context.Background(), sql, "%a%")
>   if err != nil {
>     panic(err)
>   }
>   rows.Close()
> }{code}
> {code:java}
> panic: An error was encountered while processing your request: 
> QueryInterruptedException: Illegal use of dynamic parameter (line [1], column 
> [73]) -> DruidException: Illegal use of dynamic parameter (line [1], column 
> [73]) -> ValidationException: 
> org.apache.calcite.runtime.CalciteContextException: At line 1, column 73: 
> Illegal use of dynamic parameter -> CalciteContextException: At line 1, 
> column 73: Illegal use of dynamic parameter -> SqlValidatorException: Illegal 
> use of dynamic parameter {code}



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

Reply via email to