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

Ran Tao edited comment on CALCITE-6063 at 10/20/23 1:00 PM:
------------------------------------------------------------

FYI, before calcite-1.35, array/multiset/map sub-query all only support limited 
query such as {*}select ... from ...{*}, or with optional {*}where{*}.

the array allows *OrderBy* was intrdoced by this 
[https://github.com/apache/calcite/pull/3141] PR by mistake (The processing 
here is just to receive all args to support this 'array()' function form rather 
than support *OrderBy* or {*}LIMIT{*}). It accept all exprs.

and there is no test case to cover it. we need this ticket to refine this if we 
decide to support it.
btw, the sql-standard-2003, 6.36 allows array query with {*}OrderBy{*}:
{code:java}
<array value constructor by query> ::=
   ARRAY <left paren>  <query expression>  [ <order by clause>  ] <right paren> 
{code}


was (Author: lemonjing):
FYI, before calcite-1.35, array/multiset/map sub-query all only supports 
limited query such as *select ... from ...*, or with optional *where*.

the array allows *OrderBy* was intrdoced by this 
[https://github.com/apache/calcite/pull/3141] PR by mistake (The processing 
here is just to receive all args to support this 'array()' function form rather 
than support *OrderBy* or {*}LIMIT{*}). It accept all exprs.



and there is no test case to cover it. we need this ticket to refine this if we 
decide to support it.
btw, the sql-standard-2003, 6.36 allows array query with {*}OrderBy{*}:
{code}
<array value constructor by query> ::=
   ARRAY <left paren>  <query expression>  [ <order by clause>  ] <right paren> 
{code}

> ARRAY sub-query with OrderBy return unexpected results
> ------------------------------------------------------
>
>                 Key: CALCITE-6063
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6063
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.35.0
>            Reporter: Ran Tao
>            Priority: Major
>
> calcite support array query constructor.
> but If we run sub-query with orderby:
> {code:java}
> select array(select x from unnest(array[1,2,3]) as t(x) order by x desc); 
> select array(select x from unnest(array[1,2,3]) as t(x) order by x asc); 
> {code}
> they both return
> {code:java}
> +-----------+
> |  EXPR$0   |
> +-----------+
> | [1, 2, 3] |
> +-----------+
>  {code}
> however, we expect return *[3, 2, 1]* when use {*}order by x desc{*}.
> It seems that the *order by* not works properly in array sub-query.
>  



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

Reply via email to