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

Yu Xu commented on CALCITE-7316:
--------------------------------

From: https://sqlite.org/lang_corefunc.html and actual testing, SQLite's 
`instr` function only supports two parameters. 

There are potentially two adaptation solutions: 
 # show an error message for three parameters; 
 # Convert three parameters to a two parameters function plus a shift operator, 
for example, `instr('A', 'ABC', 2)` becomes `instr('A', 'BC') + 1`;      

No other solutions have been considered yet.

> The POSITION function in SQLite is missing the FROM clause
> ----------------------------------------------------------
>
>                 Key: CALCITE-7316
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7316
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.41.0
>            Reporter: Zhen Chen
>            Assignee: Yu Xu
>            Priority: Minor
>
> The original test:
> {code:java}
>   @Test void testPositionFunctionForSqlite() {
>     final String query = "select position('A' IN 'ABC') from \"product\"";
>     final String expected = "SELECT INSTR('ABC', 'A')\n"
>         + "FROM \"foodmart\".\"product\"";
>     sql(query).withSQLite().ok(expected);
>   } {code}
> But I change position('A' IN 'ABC') to position('A' IN 'ABC' FROM 2), this 
> case alse works well.
> {code:java}
>   @Test void testPositionFunctionForSqlite2() {
>     final String query = "select position('A' IN 'ABC' FROM 2) from 
> \"product\"";
>     final String expected = "SELECT INSTR('ABC', 'A')\n"
>         + "FROM \"foodmart\".\"product\"";
>     sql(query).withSQLite().ok(expected);
>   } {code}



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

Reply via email to