[
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)