Hi hackers, Please find the attached patch, to implement the ORDER BY ALL clause. Commit ef38a4d97, implemented GROUP BY ALL clause, and this feature follows the same pattern.
ORDER BY ALL is a form of ORDER BY that automatically adds all non-junk columns from the SELECT target list to the ORDER BY clause. This implementation supports: - ORDER BY ALL (default ascending order) - ORDER BY ALL ASC - ORDER BY ALL DESC - ORDER BY ALL NULLS FIRST/LAST - ORDER BY ALL ASC/DESC NULLS FIRST/LAST The syntax works by creating a marker SortBy node with a NULL node pointer that carries the sort direction and nulls ordering. During query transformation, this marker is detected and expanded to order by all non-junk columns in the target list with the specified direction. Implementation details: - gram.y: Added ORDER BY ALL grammar with optional ASC/DESC and NULLS in both main sort_clause and PLpgSQL_Expr rules - parse_clause.c: Implemented ORDER BY ALL expansion logic that iterates over target list columns - analyze.c: Updated to pass orderByAll flag through transformation - parsenodes.h: Added orderByAll boolean to SelectStmt and Query - ruleutils.c: Added deparsing support for ORDER BY ALL that preserves sort direction and NULLS ordering in view definitions, including proper handling of implicit vs explicit ordering Please take a look at the attached patch and let me know your thoughts. Thanks, Rushabh Lathia www.EnterpriseDB.com
0001-Add-ORDER-BY-ALL-with-ASC-DESC-NULLS-support.patch
Description: Binary data
0002-Add-documentation-and-tests-for-ORDER-BY-ALL.patch
Description: Binary data
