I am not sure I understand the question, but I do see an issue.

Context: "CalcRel" is an optimized relational operation that is somewhat
like ParDo, with a small snippet of a single-assignment DSL embedded in it.
Calcite will choose to merge all the projects and filters into the node,
and then generates Java bytecode to directly execute the DSL.

Problem: it looks like the CalcRel has output columns with aliases "id" and
"v" where it should have output columns with aliases "id" and "value".

Kenn

On Thu, Jan 19, 2023 at 6:01 PM Ahmet Altay <al...@google.com> wrote:

> Adding: @Andrew Pilloud <apill...@google.com> @Kenneth Knowles
> <k...@google.com>
>
> On Thu, Jan 12, 2023 at 12:31 PM Talat Uyarer via user <
> user@beam.apache.org> wrote:
>
>> 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