[ 
https://issues.apache.org/jira/browse/TAJO-939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hyunsik Choi updated TAJO-939:
------------------------------

    Description: 
The main role of the column resolver is to find the exact column in a relation 
or a temporal column to which a variable name points. We have used a monolithic 
column resolver to deal with lots of cases.

But, resolving a name should play different roles according to at which the 
name is placed. 

For example, 1) a column name in select list always points one of fields in 
relations, 2) a column name in WHERE clause can point to one of fields in 
relations or one of aliased temporal fields in select list. If there are 
duplicated, the column name firstly chooses the field in relations. 3) a column 
name in ORDER BY clause is similar to that in WHERE clause, but it firstly 
chooses one of aliased temporal fields in select list.

The current column resolver does not consider the above rules. As a result, it 
works incorrectly in some cases where a sql statement includes the same name 
references, actually indicating one field in relation and one aliased temporal 
field in select list. We should fix it.

  was:
The main role of the column resolver is to find the exact column in a relation 
or a temporal column to which a variable name points. We have used a monolithic 
column resolver to deal with lots of cases.

But, resolving a name should play different roles according to at which the 
name is placed. 

For example, 1) a column name in select list always points one of fields in 
relations, 2) a column name in WHERE clause can point to one of fields in 
relations or one of aliased temporal fields in select list. If there are 
duplicated, the column name firstly chooses the field in relations. 3) a column 
name in ORDER BY clause is similar to that in WHERE clause, but it firstly 
chooses one of aliased temporal fields in select list.


> Refactoring the column resolver in LogicalPlan
> ----------------------------------------------
>
>                 Key: TAJO-939
>                 URL: https://issues.apache.org/jira/browse/TAJO-939
>             Project: Tajo
>          Issue Type: Bug
>          Components: planner/optimizer
>            Reporter: Hyunsik Choi
>            Assignee: Hyunsik Choi
>             Fix For: 0.9.0
>
>
> The main role of the column resolver is to find the exact column in a 
> relation or a temporal column to which a variable name points. We have used a 
> monolithic column resolver to deal with lots of cases.
> But, resolving a name should play different roles according to at which the 
> name is placed. 
> For example, 1) a column name in select list always points one of fields in 
> relations, 2) a column name in WHERE clause can point to one of fields in 
> relations or one of aliased temporal fields in select list. If there are 
> duplicated, the column name firstly chooses the field in relations. 3) a 
> column name in ORDER BY clause is similar to that in WHERE clause, but it 
> firstly chooses one of aliased temporal fields in select list.
> The current column resolver does not consider the above rules. As a result, 
> it works incorrectly in some cases where a sql statement includes the same 
> name references, actually indicating one field in relation and one aliased 
> temporal field in select list. We should fix it.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to