[ 
https://issues.apache.org/jira/browse/CALCITE-754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14580941#comment-14580941
 ] 

Julian Hyde commented on CALCITE-754:
-------------------------------------

It struck me as strange that you needed to qualify a column name when a 
namespace was also passed along. Then I noticed this comment in 
SqlWindow.isTableSorted:

```java
    // REVIEW: jhyde, 2007/11/7: This is the only use of
    // findAllColumnNames. Find a better way to detect monotonicity, then
    // remove that method.
```

Basically, we shouldn't be using SqlMoniker. Monotonicity detection should be 
using column name and namespace, like the rest of the validator code. A 
namespace represents a table, and it may map to single or multiple strings: 
EMP, SCHEMA.EMP, DB.SCHEMA.EMP, T1 are all examples.

That comment basically predicted this problem, so now it's time to fix it.

> Failure to resolve a column in OVER-CLAUSE if that column is produced by a 
> JOIN
> -------------------------------------------------------------------------------
>
>                 Key: CALCITE-754
>                 URL: https://issues.apache.org/jira/browse/CALCITE-754
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Sean Hsuan-Yi Chu
>            Assignee: Sean Hsuan-Yi Chu
>
> A query such as :
> select sum(t1.deptno) over(partition by t1.deptno)
> from emp t1, emp t2
> would raise exception:
> org.apache.calcite.sql.validate.SqlValidatorException: Column 'EMPNO' is 
> ambiguous.
> Calcite cannot point the column in OVER-CLAUSE to the JOINed table.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to