Sorry, I meant "I am not sure if Calcite does it" (likely not).

-Rui

On Wed, May 27, 2020 at 10:31 AM Rui Wang <amaliu...@apache.org> wrote:

> Hello,
>
> This topic was discussed in
> https://issues.apache.org/jira/browse/CALCITE-1584.
>
> I am sure if Calcite does it, but in another SQL parser/analyzer
> implementation I have saw, each logical plan has a top attribute about
>  final output column names, so even nodes might be merged/removed, at least
> there are still output column names that we can get.
>
> -Rui
>
> On Wed, May 27, 2020 at 5:38 AM 董 一峰 <donga...@outlook.com> wrote:
>
>> Hello everyone,
>>
>>      When we run the following test case:
>>                 SQL:
>> WITH T_CTE (i1_cte, i2_cte) AS (
>>    SELECT
>>        i1,
>>        d3
>>    FROM
>>        t1
>> )
>> SELECT
>>    *
>> FROM
>>    t2
>>    JOIN T_CTE ON (t2.i1 = T_CTE.i1_cte)
>>
>>
>>                 Logical Plan(After ProjectRemoveRule):
>> LogicalJoin(condition=[=($0, $14)], joinType=[inner])
>> :- LogicalTableScan(table=[[default, db1, t2]])
>>        +- LogicalCalc(expr#0..13=[{inputs}], i1=[$t0], d3=[$t2])
>>        +- LogicalTableScan(table=[[default, db1, t1]])
>>
>>
>> We wish the output column name contain i1_cte, i2_cte, but calcite just
>> drop it.
>> After analysisinp the calcite code, we found the rule named
>> ProjectRemoveRule, it will remove the project if project and its input has
>> same size and type, but it confused me, why this rule dose not consider the
>> field name when remove project?
>>
>> Best Regards
>> Axis
>>
>>

Reply via email to