summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2015-08-25 23:12:46 +0000
committerTom Lane2015-08-25 23:12:46 +0000
commit31934dd3ddc8efe1066fcc39137a142749556479 (patch)
tree41ac570e7e4e873b51899606ed611bc4a02c851b
parent87b8c9e12f3025b70bd040c42d7d5f39ef9314bc (diff)
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.
-rw-r--r--doc/src/sgml/func.sgml16
1 files changed, 10 insertions, 6 deletions
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 48ddb317b3c..44a8a814501 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -11395,9 +11395,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>
@@ -11407,7 +11407,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,
@@ -11422,9 +11424,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>
@@ -11434,7 +11436,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,