Window functions can be created with defaults, but they don't work - Mailing list pgsql-hackers

From Tom Lane
Subject Window functions can be created with defaults, but they don't work
Date
Msg-id 21130.1377900876@sss.pgh.pa.us
Whole thread Raw
Responses Re: Window functions can be created with defaults, but they don't work  (Robert Haas <robertmhaas@gmail.com>)
Re: Window functions can be created with defaults, but they don't work  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
I noticed this while poking at the variadic-aggregates issue:

regression=# create function nth_value_def(anyelement, integer = 1) returns anyelement language internal window
immutablestrict as 'window_nth_value';
 
CREATE FUNCTION
regression=# SELECT nth_value_def(ten) OVER (PARTITION BY four), ten, four
FROM (SELECT * FROM tenk1 WHERE unique2 < 10 ORDER BY four, ten)s;
The connection to the server was lost. Attempting reset: Failed.

The reason this crashes is that the planner doesn't apply
default-insertion to WindowFunc nodes, only to FuncExprs.  We could make
it do that, probably, but that seems to me like a feature addition.
I think a more reasonable approach for back-patching is to fix function
creation to disallow attaching defaults to window functions (or
aggregates, for that matter, which would have the same issue if CREATE
AGGREGATE had the syntax option to specify defaults).  ProcedureCreate
seems like an appropriate place, since it already contains a lot of sanity
checks of this sort.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: INSERT...ON DUPLICATE KEY IGNORE
Next
From: Robert Haas
Date:
Subject: Re: Window functions can be created with defaults, but they don't work