On Tue, Nov 11, 2014 at 5:26 PM, Marti Raudsepp <[email protected]> wrote:
> Perhaps should be:
> <command>SELECT</> and <literal>HAVING</> clauses are evaluated.
>
> Other than that, looks good to me.
Let's do so then and mark that as ready for committer.
Thanks,
--
Michael
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index b58cfa5..2d5e0d3 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -11254,6 +11254,25 @@ SELECT NULLIF(value, '(none)') ...
all are NULL.
</para>
</sect2>
+
+ <sect2 id="functions-conditional-implementation">
+ <title>Implementation Notes</title>
+ <para>
+ When a conditional expression depends on the results of aggregate
+ functions in a <command>SELECT</> or <literal>HAVING</> clause, then all
+ the aggregate functions are always evaluated prior to determining which
+ branch the conditional should take. For example, the following query can
+ cause a division-by-zero error despite only using division in a branch
+ that requires positive values:
+
+<programlisting>
+SELECT CASE WHEN min(employees) > 0
+ THEN average(expenses / employees)
+ END
+ FROM departments;
+</programlisting>
+ </para>
+ </sect2>
</sect1>
<sect1 id="functions-array">
diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml
index 473939a..7001ea6 100644
--- a/doc/src/sgml/ref/select.sgml
+++ b/doc/src/sgml/ref/select.sgml
@@ -111,9 +111,11 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
<para>
If the <literal>GROUP BY</literal> clause is specified, the
output is combined into groups of rows that match on one or more
- values. If the <literal>HAVING</literal> clause is present, it
- eliminates groups that do not satisfy the given condition. (See
- <xref linkend="sql-groupby" endterm="sql-groupby-title"> and
+ values. All aggregate functions and their argument expressions
+ in <command>SELECT</literal> and <literal>HAVING</literal> clauses
+ are evaluated. If the <literal>HAVING</literal> clause is present,
+ it eliminates groups that do not satisfy the given condition. (See
+ <xref linkend="sql-groupby" endterm="sql-groupby-title">, and
<xref linkend="sql-having" endterm="sql-having-title"> below.)
</para>
</listitem>
--
Sent via pgsql-docs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs