Tisya Bhatia created CALCITE-7597:
-------------------------------------

             Summary: Support ORDER BY ALL
                 Key: CALCITE-7597
                 URL: https://issues.apache.org/jira/browse/CALCITE-7597
             Project: Calcite
          Issue Type: New Feature
          Components: core
            Reporter: Tisya Bhatia


ORDER BY ALL: when ORDER BY ALL appears with no order items, the query sorts by 
every expression in the SELECT clause, in select-list order. An optional 
trailing ASC/DESC and NULLS FIRST/LAST applies to all keys.

Example:
  SELECT name, hire_date
  FROM emp
  ORDER BY ALL;                  -- equivalent to ORDER BY name, hire_date

  SELECT name, hire_date
  FROM emp
  ORDER BY ALL DESC NULLS LAST;  -- direction applies to every key

Motivation: keeps the ORDER BY in sync with the SELECT list automatically and 
removes boilerplate when sorting by every projected column. It is an emerging 
convergence across warehouse dialects (DuckDB, Databricks, Snowflake, Spark, 
Trino), and a natural companion to GROUP BY ALL (CALCITE-7594).

Compatibility: purely additive. ORDER BY ALL does not parse today, so enabling 
it cannot change the meaning of any existing query. Unlike GROUP BY, ALL has no 
existing meaning after ORDER BY, so there is no set-quantifier collision.

Proposed behaviour:
- ALL must stand alone (no trailing order items).
- The parser emits a marker that the validator expands into the SELECT 
expressions during validateOrderList, before the base validation runs, so the 
converter/optimizer never see a marker.
- SELECT * with ORDER BY ALL is rejected with a clear error for now (the star 
is not expanded at validation time); may be revisited later.

Scope:
- ORDER BY ALL only. Positional ORDER BY <ordinal> is already supported via 
SqlConformance.isSortByOrdinal and is out of scope.

A working prototype (parser + validator + tests + reference docs) is ready. PR 
will be up.

A discussion will be raised on [email protected].



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

Reply via email to