Vik Fearing <vik@postgresfriends.org> writes:
> postgres=# SELECT LAG(n, 1, -99) OVER (ORDER BY n)
> postgres-# FROM (VALUES (1.1), (2.2), (3.3)) AS v (n)
> postgres-# ORDER BY n;
> ERROR: function lag(numeric, integer, integer) does not exist
> LINE 1: SELECT LAG(n, 1, -99) OVER (ORDER BY n)
> ^
Yeah, we have similar issues elsewhere.
> Attached is a patch that fixes this issue using the new anycompatible
> pseudotype. I am hoping this can be slipped into 13 even though it
> requires a catversion bump after BETA1.
When the anycompatible patch went in, I thought for a little bit about
trying to use it with existing built-in functions, but didn't have the
time to investigate the issue in detail. I'm not in favor of hacking
things one-function-at-a-time here; we should look through the whole
library and see what we've got.
The main thing that makes this perhaps-not-trivial is that an
anycompatible-ified function will match more cases than it would have
before, possibly causing conflicts if the function or operator name
is overloaded. We'd have to look at such cases and decide what we
want to do --- one answer would be to drop some of the alternatives
and rely on the parser to add casts, but that might slow things down.
Anyway, I agree that this is a good direction to pursue, but not in
a last-minute-hack-for-v13 way.
regards, tom lane