Re: [BUGS] CREATE VIEW interp AS select DISTINCT itemkey from songs; - Mailing list pgsql-bugs

From Tom Lane
Subject Re: [BUGS] CREATE VIEW interp AS select DISTINCT itemkey from songs;
Date
Msg-id 20471.939824842@sss.pgh.pa.us
Whole thread Raw
In response to CREATE VIEW interp AS select DISTINCT itemkey from songs;  (Peter Schaefer <schaefer@cys.de>)
List 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

pgsql-bugs by date:

Previous
From: Peter Schaefer
Date:
Subject: CREATE VIEW interp AS select DISTINCT itemkey from songs;
Next
From: Luciano Santos Cardoso
Date:
Subject: I have problems in Installation and Configuration of Postgres!!!