[
https://issues.apache.org/jira/browse/FLINK-19950?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
jackylau updated FLINK-19950:
-----------------------------
Description:
{code:java}
// code placeholder
val sql0 = "create view v1 AS SELECT * FROM user_table"
val sql = "SELECT T.id, T.len, T.content, D.name FROM src AS T JOIN v1 " +
"for system_time as of T.proctime AS D ON T.id = D.id"
val sink = new TestingAppendSink
tEnv.executeSql(sql0)
tEnv.sqlQuery(sql).toAppendStream[Row].addSink(sink)
env.execute()
{code}
{code:java}
// code placeholder
private void convertTemporalTable(Blackboard bb, SqlCall call) {
final SqlSnapshot snapshot = (SqlSnapshot) call;
final RexNode period = bb.convertExpression(snapshot.getPeriod());
// convert inner query, could be a table name or a derived table
SqlNode expr = snapshot.getTableRef();
convertFrom(bb, expr);
final TableScan scan = (TableScan) bb.root;
final RelNode snapshotRel = relBuilder.push(scan).snapshot(period).build();
bb.setRoot(snapshotRel, false);
}
{code}
it will exist cast Exception at final TableScan scan = (TableScan) bb.root;
java.lang.ClassCastException:
class org.apache.calcite.rel.logical.LogicalProject cannot be cast to class
org.apache.calcite.rel.core.TableScan
(org.apache.calcite.rel.logical.LogicalProject and
org.apache.calcite.rel.core.TableScan are in unnamed module of loader 'app')
was:
{code:java}
// code placeholder
val sql0 = "create view v1 AS SELECT * FROM user_table"
val sql = "SELECT T.id, T.len, T.content, D.name FROM src AS T JOIN v1 " +
"for system_time as of T.proctime AS D ON T.id = D.id"
val sink = new TestingAppendSink
tEnv.executeSql(sql0)
tEnv.sqlQuery(sql).toAppendStream[Row].addSink(sink)
env.execute()
{code}
{code:java}
// code placeholder
private void convertTemporalTable(Blackboard bb, SqlCall call) {
final SqlSnapshot snapshot = (SqlSnapshot) call;
final RexNode period = bb.convertExpression(snapshot.getPeriod());
// convert inner query, could be a table name or a derived table
SqlNode expr = snapshot.getTableRef();
convertFrom(bb, expr);
final TableScan scan = (TableScan) bb.root;
final RelNode snapshotRel = relBuilder.push(scan).snapshot(period).build();
bb.setRoot(snapshotRel, false);
}
{code}
it will exist cast Exception at final TableScan scan = (TableScan) bb.root;
> LookupJoin can not support view or subquery and so on. o
> --------------------------------------------------------
>
> Key: FLINK-19950
> URL: https://issues.apache.org/jira/browse/FLINK-19950
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 1.11.0
> Reporter: jackylau
> Priority: Major
> Fix For: 1.12.0
>
>
> {code:java}
> // code placeholder
> val sql0 = "create view v1 AS SELECT * FROM user_table"
> val sql = "SELECT T.id, T.len, T.content, D.name FROM src AS T JOIN v1 " +
> "for system_time as of T.proctime AS D ON T.id = D.id"
> val sink = new TestingAppendSink
> tEnv.executeSql(sql0)
> tEnv.sqlQuery(sql).toAppendStream[Row].addSink(sink)
> env.execute()
> {code}
> {code:java}
> // code placeholder
> private void convertTemporalTable(Blackboard bb, SqlCall call) {
> final SqlSnapshot snapshot = (SqlSnapshot) call;
> final RexNode period = bb.convertExpression(snapshot.getPeriod());
> // convert inner query, could be a table name or a derived table
> SqlNode expr = snapshot.getTableRef();
> convertFrom(bb, expr);
> final TableScan scan = (TableScan) bb.root;
> final RelNode snapshotRel = relBuilder.push(scan).snapshot(period).build();
> bb.setRoot(snapshotRel, false);
> }
> {code}
> it will exist cast Exception at final TableScan scan = (TableScan) bb.root;
>
> java.lang.ClassCastException:
> class org.apache.calcite.rel.logical.LogicalProject cannot be cast to class
> org.apache.calcite.rel.core.TableScan
> (org.apache.calcite.rel.logical.LogicalProject and
> org.apache.calcite.rel.core.TableScan are in unnamed module of loader 'app')
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)