From 7c0c4d07e777957a5fad54e81b4f42f420031060 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 25 Aug 2015 19:11:17 -0400 Subject: [PATCH] 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 452ea6d832..d63b1081ac 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -13606,9 +13606,9 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; lag - lag(value any + lag(value anyelement [, offset integer - [, default any ]]) + [, default anyelement ]]) @@ -13618,7 +13618,9 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; returns value evaluated at the row that is offset rows before the current row within the partition; if there is no such - row, instead return default. + row, instead return default + (which must be of the same type as + value). Both offset and default are evaluated with respect to the current row. If omitted, @@ -13633,9 +13635,9 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; lead - lead(value any + lead(value anyelement [, offset integer - [, default any ]]) + [, default anyelement ]]) @@ -13645,7 +13647,9 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; returns value evaluated at the row that is offset rows after the current row within the partition; if there is no such - row, instead return default. + row, instead return default + (which must be of the same type as + value). Both offset and default are evaluated with respect to the current row. If omitted,