Re: [BUGS] CREATE VIEW interp AS select DISTINCT itemkey from songs;

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Schaefer <schaefer@cys.de>
Cc: "pgsql-bugs@postgreSQL.org" <pgsql-bugs@postgreSQL.org>
Date: 1999-10-13T14:27:22Z
Lists: pgsql-bugs
Peter Schaefer <schaefer@cys.de> writes:
> codiak=> CREATE VIEW interp AS select DISTINCT ON id id from interp;

What version are you using?  The current development sources don't like
the above at all:

regression=> CREATE VIEW interp AS select DISTINCT ON id id from interp;
ERROR:  Relation 'interp' does not exist
regression=> create table interp (id int);
CREATE
regression=> CREATE VIEW interp AS select DISTINCT ON id id from interp;
ERROR:  Relation 'interp' already exists
regression=> CREATE VIEW interp1 AS select DISTINCT ON id id from interp;
ERROR:  DISTINCT not supported in views

The reason for the last point is that DISTINCT requires sorting, and
the current implementation method for views doesn't allow a view to
specify an ordering.  (CREATE VIEW ... SELECT ... ORDER BY doesn't
work either.)

You can work around this to some extent by using GROUP BY:

regression=> CREATE VIEW interp1 AS select id from interp group by id;
CREATE

although I think there may be some restrictions on grouped views too.

			regards, tom lane