Hi All,

I have two tables: t1 and t2 both have a column1 of type t and a column2
that I'm not using
I have a function f: t -> t defined in the catalog

After validation if I print the logical plan I get the following result:

select
  t1.column1,
  t2.column1
from company_data."1" t1
join company_data."2" t2
on t1.column1 = t2.column1

LogicalProject(column1=[$1], column10=[$3])
  LogicalJoin(condition=[=($1, $3)], joinType=[inner])
    LogicalTableScan(table=[[t1]])
    LogicalTableScan(table=[[t2]])


select
  t1.column1,
  t2.column1
from company_data."1" t1
join company_data."2" t2
on lower(t1.column1) = t2.column1

LogicalProject(column1=[$1], column10=[$4])
  LogicalJoin(condition=[=($2, $4)], joinType=[inner])
    LogicalProject(column2=[$0], column1=[$1], $f2=[LOWER($1)])
      LogicalTableScan(table=[[t1]])
    LogicalTableScan(table=[[t2]])


I'm a bit surprise by the second logical plan because it projects column2.

1) I'm wondering if this is a bug.

2) If it's not a bug, let's say it was injected by the validator to
simplify the validation process, is there a way to remove it? It feels a
bit weird, because I would have to rewrite all the offsets when I'm
reconstructing the tree:

LogicalProject(column1=[$0], column10=[$3])
  LogicalJoin(condition=[=($1, $3)], joinType=[inner])
    LogicalProject(column1=[$0], $f2=[LOWER($1)])
      LogicalTableScan(table=[[t1]])
    LogicalTableScan(table=[[t2]])


Thank You!

-- 
Guillaume Massé
[Gee-OHM]
(马赛卫)

Reply via email to