Skip site navigation (1) Skip section navigation (2)

Re: TODO items for window functions

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Hitoshi Harada" <umi(dot)tanuki(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: TODO items for window functions
Date: 2008-12-29 16:59:51
Message-ID: 8930.1230569991@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-hackers
I wrote:
> * Support creation of user-defined window functions.  I think this is
> a "must have" for 8.4 --- we are not in the habit of building
> nonextensible basic features.  It doesn't seem that hard either.
> I think all we need do is to allow "WINDOW" as an attribute keyword
> in CREATE FUNCTION.  Does anyone have an objection or a better idea?

What I had in mind when I wrote that was something like

	create [or replace] function mywindow(...) returns ...
		as 'mymodule, 'mywindow'
		language c
		window;

but on reflection there seems to be a case also for

	create [or replace] window function mywindow(...) returns ...
		as 'mymodule, 'mywindow'
		language c;

The main argument in favor of the latter is that window-ness will need
to be a fixed property of a function that you can't change except by
dropping and recreating it, because any existing views calling the
function will have its window-ness embedded in them in the form of
whether they use a FuncExpr or WindowFunc node to call it.  So it
doesn't feel quite like an optional attribute.

However, if we do that then for consistency we'd have to invent
DROP WINDOW FUNCTION, ALTER WINDOW FUNCTION, RENAME WINDOW FUNCTION,
COMMENT ON WINDOW FUNCTION, yadda yadda, and insist that you refer
to a function properly (with or without WINDOW) in each one of these
commands.  Which would be a real PITA to implement and document,
and I can't see that it's doing anything much for users either.

So I'm still leaning to the first way.  Comments?

			regards, tom lane

In response to

Responses

pgsql-hackers by date

Next:From: Pavel StehuleDate: 2008-12-29 17:10:17
Subject: Re: plpgsql: numeric assignment to an integer variable errors out
Previous:From: Tom LaneDate: 2008-12-29 16:47:58
Subject: Re: About CMake (was Re: [COMMITTERS] pgsql: Append major version number and for libraries soname major)

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group