On Tue, Jul 11, 2023 at 07:31:26AM -0700, David G. Johnston wrote:
> On Tue, Jul 11, 2023 at 7:19 AM Laurenz Albe <[email protected]> wrote:
>
> On Fri, 2023-07-07 at 07:36 +0000, PG Doc comments form wrote:
> > i have a discussion in [email protected] about this and it
> is
> > mentioned in the answers that it is documented and a "feature" of
> Postgres
> > that this can be done.
> > If this is wanted the documentation
> > (https://www.postgresql.org/docs/current/sql-select.html) that
> mentioned:
> > [execution order of SELECT that says that GROUP BY is before SELECT]
> > isn't correct because how can 4.) be done and the alias from 5.) is
> used?
> > Here is a hint important that there is an exception for alias used in
> group
> > by
>
> I think that is already documented:
>
>
>
> I think the complaint is that someone seeing the behavior in the wild comes to
> this order-of-operations and doesn't see that the observed behavior is
> documented. Sure, they can go into the GROUP BY section and figure out that
> there is a "oh, by the way" comment within there that output columns/aliases
> are indeed allowed. But I tend to agree that a mention in the "order of
> operations" section that output columns from step 5 can be seen in step 4
> seems
> like an improvement if we really want the order of operations to be the main
> reference entry point for people trying to work out query behavior. Something
> like: "(while unadvised it is possible for the aliases defined in the next
> step to be used here as well)".
How is the attached patch?
--
Bruce Momjian <[email protected]> https://momjian.us
EDB https://enterprisedb.com
Only you can decide what is important to you.
diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml
index 0ee0cc7e64..9c354f7033 100644
--- a/doc/src/sgml/ref/select.sgml
+++ b/doc/src/sgml/ref/select.sgml
@@ -130,7 +130,9 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
If the <literal>HAVING</literal> clause is present, it
eliminates groups that do not satisfy the given condition. (See
<xref linkend="sql-groupby"/> and
- <xref linkend="sql-having"/> below.)
+ <xref linkend="sql-having"/> below.) Names and ordinal numbers of
+ output columns, computed in the next step, can also be referenced
+ by <literal>GROUP BY</literal>.
</para>
</listitem>