Hi All,

I am using Beam 2.43 with Calcite SQL with Java.

I have a query with a WITH clause and some aliasing. Looks like Beam Query
optimizer after optimizing my query, it drops Select statement's aliases.
Can you help me to identify where the problem is ?

This is my query
INFO: SQL:
WITH `tempTable` (`id`, `v`) AS (SELECT
`PCOLLECTION`.`f_nestedRow`.`f_nestedInt` AS `id`,
`PCOLLECTION`.`f_nestedRow`.`f_nestedString` AS `v`
FROM `beam`.`PCOLLECTION` AS `PCOLLECTION`) (SELECT `tempTable`.`id` AS
`id`, `tempTable`.`v` AS `value`
FROM `tempTable` AS `tempTable`
WHERE `tempTable`.`v` <> '11')

This is Calcite Plan look at LogicalProject(id=[$0], value=[$1]) in SQL
plan.

Jan 12, 2023 12:19:08 PM
org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner convertToBeamRel
INFO: SQLPlan>
LogicalProject(id=[$0], value=[$1])
  LogicalFilter(condition=[<>($1, '11')])
    LogicalProject(id=[$1.f_nestedInt], v=[$1.f_nestedString])
      BeamIOSourceRel(table=[[beam, PCOLLECTION]])

But Beam Plan does not have a LogicalProject(id=[$0], value=[$1]) or
similar.

Jan 12, 2023 12:19:08 PM
org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner convertToBeamRel
INFO: BEAMPlan>
BeamCalcRel(expr#0..1=[{inputs}], expr#2=[$t1.f_nestedInt],
expr#3=[$t1.f_nestedString], expr#4=['11':VARCHAR], expr#5=[<>($t3, $t4)],
id=[$t2], v=[$t3], $condition=[$t5])
  BeamIOSourceRel(table=[[beam, PCOLLECTION]])


Thanks

Reply via email to