You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "galaxy yang (Jira)" <ji...@apache.org> on 2022/04/01 07:51:00 UTC
[jira] (CALCITE-5076) errors happen when i define materializations use sql with Lex.MYSQL
[ https://issues.apache.org/jira/browse/CALCITE-5076 ]
galaxy yang deleted comment on CALCITE-5076:
--------------------------------------
was (Author: tobbi):
I created a pull request there [https://github.com/apache/calcite/pull/2759/files]
would you please review [~julianhyde]
> errors happen when i define materializations use sql with Lex.MYSQL
> -------------------------------------------------------------------
>
> Key: CALCITE-5076
> URL: https://issues.apache.org/jira/browse/CALCITE-5076
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.30.0
> Reporter: galaxy yang
> Priority: Major
> Labels: pull-request-available
> Attachments: image-2022-03-31-23-44-44-916.png, image-2022-03-31-23-45-01-468.png, image-2022-03-31-23-45-33-979.png, image-2022-03-31-23-46-46-939.png, image-2022-03-31-23-47-12-377.png
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> i have setted the CalciteConnectionConfig use the properties lex = MYSQL, errors happen when i define the materializations use sql with mysql syntax, but the query is ok
> {code:java}
> @Test void testScan() {
> CalciteAssert.that()
> .with(Lex.MYSQL)
> .withMaterializations(
> "{\n"
> + " version: '1.0',\n"
> + " defaultSchema: 'SCOTT_CLONE',\n"
> + " schemas: [ {\n"
> + " name: 'SCOTT_CLONE',\n"
> + " type: 'custom',\n"
> + " factory: 'org.apache.calcite.adapter.clone.CloneSchema$Factory',\n"
> + " operand: {\n"
> + " jdbcDriver: '" + JdbcTest.SCOTT.driver + "',\n"
> + " jdbcUser: '" + JdbcTest.SCOTT.username + "',\n"
> + " jdbcPassword: '" + JdbcTest.SCOTT.password + "',\n"
> + " jdbcUrl: '" + JdbcTest.SCOTT.url + "',\n"
> + " jdbcSchema: 'SCOTT'\n"
> + " } } ]\n"
> + "}",
> "m0",
> "select empno, deptno from `emp` order by deptno")
> .query(
> "select empno, deptno from `emp`")
> .enableMaterializations(true)
> .explainContains("EnumerableTableScan(table=[[SCOTT_CLONE, m0]])")
> .sameResultWithMaterializationsDisabled();
> }
> {code}
> it throws such error:
> Caused by: org.apache.calcite.sql.validate.SqlValidatorException: Object 'emp' not found within 'SCOTT_CLONE'; did you mean 'EMP'?
> i setted the lex with Lex.MYSQL, but the materialization's sql seems only support the default Lex.ORACLE, errors happen when i use back-quotes. but the query sql is ok when i use mysql syntax.
> it is not a graceful thing that the materialization's sql and query sql are two different sql syntax when i changed the default syntax from oracle to others
--
This message was sent by Atlassian Jira
(v8.20.1#820001)