Julian Hyde created CALCITE-6104:
------------------------------------

             Summary: Aggregate function that references outer column should be 
evaluated in outer query
                 Key: CALCITE-6104
                 URL: https://issues.apache.org/jira/browse/CALCITE-6104
             Project: Calcite
          Issue Type: Improvement
            Reporter: Julian Hyde


Aggregate function that references outer column should be evaluated in outer 
query. For example,

{code}
WITH
  aa AS (SELECT 1 AS a UNION ALL SELECT 2 UNION ALL SELECT 3),
  xx AS (SELECT 10 AS x UNION ALL SELECT 20 UNION ALL SELECT 30)
SELECT (SELECT sum(a) FROM xx LIMIT 1) AS sa FROM aa;

# Should return
sa
--
6

# Currently returns
sa
--
3
6
9
{code}

Because {{sum(a)}} references a column from {{aa}} (and no columns from 
{{{}xx{}}}), it should be (per the SQL standard) evaluated in the context of 
the outer query.

Postgres, MySQL and DuckDB have behavior consistent with the standard. Calcite 
and BigQuery do not.

A [blog 
post|https://buttondown.email/jaffray/archive/sql-scoping-is-surprisingly-subtle-and-semantic/]
 describes in more detail.
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to