[
https://issues.apache.org/jira/browse/CALCITE-6023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17768690#comment-17768690
]
Jordan Hannel edited comment on CALCITE-6023 at 9/27/23 11:32 AM:
------------------------------------------------------------------
Thanks both for the quick responses! I have updated the issue subject and body
as requested.
Re. "calling the parser and sql-to-rel-converter by hand", could you elaborate
on this? I've updated the issue description above to include the code I'm using
to call the parser and converter, is there a different recommended way?
Thanks for the attempted repro, I wonder if the issue has something to do with
a subquery in the from clause - maybe the below query might repro the issue?
{code:java}
SELECT "dim4" AS "dim7", LEAD(COUNT( * ), -1) OVER (ORDER BY "dim4") AS
"measure10"
FROM (
SELECT "deptno" AS "dim4" FROM emp) AS "t0"
GROUP BY "dim4"{code}
was (Author: JIRAUSER302326):
Thanks both for the quick responses! I have updated the issue subject and body
as requested.
Re. "calling the parser and sql-to-rel-converter by hand", could you elaborate
on this? I've updated the issue description above to include the code I'm using
to call the parser and converter, is there a different recommended way?
Thanks for the attempted repro, I wonder if the issue has something to do with
a subquery in the from clause - maybe the below query might repro the
issue?{{{{}}{}}}
{{SELECT "dim4" AS "dim7", LEAD(COUNT( * ), -1) OVER (ORDER BY "dim4") AS
"measure10"}}
{{FROM (}}
{{ SELECT "deptno" AS "dim4" FROM emp) AS "t0"}}
{{GROUP BY "dim4"}}
> Error in SqlToRelConverter.convertQuery, possibly due to unqualified column
> reference
> -------------------------------------------------------------------------------------
>
> Key: CALCITE-6023
> URL: https://issues.apache.org/jira/browse/CALCITE-6023
> Project: Calcite
> Issue Type: Bug
> Affects Versions: 1.35.0
> Reporter: Jordan Hannel
> Priority: Major
> Attachments: stacktrace.txt
>
>
> Hello all, I believe I have found a bug in SqlToRelConverter. The symptom and
> repro are outlined below, and the full stacktrace is attached. This is on
> calcite version 1.35.0. Any insight would be much appreciated, thanks!
> When I parse the below SQL string to get a SqlNode, and call
> SqlToRelConverter.convertQuery on this SqlNode, I get error:
> {noformat}UnsupportedOperationException: class
> org.apache.calcite.sql.SqlBasicCall: LEAD(COUNT( * )) OVER (ORDER BY `dim4`)
> {noformat}
> SQL:
> {code}
> SELECT "dim4" AS "dim7", LEAD(COUNT( * ), -1) OVER (ORDER BY "dim4") AS
> "measure10"
> FROM (
> SELECT "timestamp" AS "dim4" FROM "Shared.factDataset") AS "t0"
> GROUP BY "dim4"
> {code}
> I have confirmed that my SqlToRelConverter instance seems generally ok,
> because it is able to convert many other SqlNodes to RelNodes. After some
> experimentation, I noticed that just changing `ORDER BY "dim4"` to `ORDER BY
> "t0"."dim4"` fixes the issue - after that, the SqlNode successfully is
> translated to a RelNode.
>
> Below is the way I am invoking convertQuery. The error comes in the last
> line, on invocation of convertQuery
> {code}
> var config = Frameworks.newConfigBuilder()
> .operatorTable(getOperatorTable())
> .parserConfig(defaultParserConfig().build())
> .build();
> var sqlNode = Frameworks.getPlanner(config).parse(sqlString);
> var typeFactory = new JavaTypeFactoryImpl();
> var calciteSchema = buildCalciteSchema(typeFactory, schema);
> var catalogReader = new CalciteCatalogReader(
> calciteSchema,
> List.of(),
> typeFactory,
> CalciteConnectionConfig.DEFAULT);
> var validator = new SqlValidatorImpl(
> getOperatorTable(),
> catalogReader,
> typeFactory,
> SqlValidator.Config.DEFAULT.withCallRewrite(false)) {};
> var vol = new VolcanoPlanner();
> vol.addRelTraitDef(ConventionTraitDef.INSTANCE);
> var cluster = RelOptCluster.create(vol, new RexBuilder(typeFactory));
> var sqlToRel = new SqlToRelConverter(
> NOOP_EXPANDER,
> validator,
> catalogReader,
> cluster,
> StandardConvertletTable.INSTANCE,
> SqlToRelConverter.config());
> return sqlToRel.convertQuery(sqlNode, true, true);
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)