[
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)