postgres.git / summary / log / commit / refs

commit    23ddcd77b72bdbec4f8e5fb618febefa1fea4d2d
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Tue Aug 25 23:12:57 2015 +0000
First released in: 9.6.0, 9.0.23, 9.1.19, 9.2.14, 9.3.10, 9.4.5, 9.5.0

    Docs: be explicit about datatype matching for lead/lag functions.
    
    The default argument, if given, has to be of exactly the same datatype
    as the first argument; but this was not stated in so many words, and
    the error message you get about it might not lead your thought in the
    right direction.  Per bug #13587 from Robert McGehee.
    
    A quick scan says that these are the only two built-in functions with two
    anyelement arguments and no other polymorphic arguments.  There are plenty
    of cases of, eg, anyarray and anyelement, but those seem less likely to
    confuse.  For instance this doesn't seem terribly hard to figure out:
    "function array_remove(integer[], numeric) does not exist".  So I've
    contented myself with fixing these two cases.


doc/src/sgml/func.sgml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 779c368a102..0d614024a78 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -10603,9 +10603,9 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; <primary>lag</primary> </indexterm> <function> - lag(<replaceable class="parameter">value</replaceable> <type>any</> + lag(<replaceable class="parameter">value</replaceable> <type>anyelement</> [, <replaceable class="parameter">offset</replaceable> <type>integer</> - [, <replaceable class="parameter">default</replaceable> <type>any</> ]]) + [, <replaceable class="parameter">default</replaceable> <type>anyelement</> ]]) </function> </entry> <entry> @@ -10615,7 +10615,9 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; returns <replaceable class="parameter">value</replaceable> evaluated at the row that is <replaceable class="parameter">offset</replaceable> rows before the current row within the partition; if there is no such - row, instead return <replaceable class="parameter">default</replaceable>. + row, instead return <replaceable class="parameter">default</replaceable> + (which must be of the same type as + <replaceable class="parameter">value</replaceable>). Both <replaceable class="parameter">offset</replaceable> and <replaceable class="parameter">default</replaceable> are evaluated with respect to the current row. If omitted, @@ -10630,9 +10632,9 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; <primary>lead</primary> </indexterm> <function> - lead(<replaceable class="parameter">value</replaceable> <type>any</> + lead(<replaceable class="parameter">value</replaceable> <type>anyelement</> [, <replaceable class="parameter">offset</replaceable> <type>integer</> - [, <replaceable class="parameter">default</replaceable> <type>any</> ]]) + [, <replaceable class="parameter">default</replaceable> <type>anyelement</> ]]) </function> </entry> <entry> @@ -10642,7 +10644,9 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; returns <replaceable class="parameter">value</replaceable> evaluated at the row that is <replaceable class="parameter">offset</replaceable> rows after the current row within the partition; if there is no such - row, instead return <replaceable class="parameter">default</replaceable>. + row, instead return <replaceable class="parameter">default</replaceable> + (which must be of the same type as + <replaceable class="parameter">value</replaceable>). Both <replaceable class="parameter">offset</replaceable> and <replaceable class="parameter">default</replaceable> are evaluated with respect to the current row. If omitted, [parent: 7c57449fc585]