Re: [HACKERS] Heads up: does RULES regress test still work for you? - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] Heads up: does RULES regress test still work for you?
Date
Msg-id 2968.927643077@sss.pgh.pa.us
Whole thread Raw
In response to Re: [HACKERS] Heads up: does RULES regress test still work for you?  (jwieck@debis.com (Jan Wieck))
List pgsql-hackers
jwieck@debis.com (Jan Wieck) writes:
>> This is so weird, I can't even explain it.

>     I can reproduce it - yes totally weird :-)

>>>> Does the following indicate a bug? It sure is wierd. Maybe some of these
>>>> statements aren't supported by postgresql (??), but the outcome doesn't
>>>> make sense to me.
>>>> 
>>>> httpd=> CREATE TABLE x (y text);
>>>> CREATE
>>>> httpd=> CREATE VIEW z AS select * from x;
>>>> CREATE
>>>> httpd=> CREATE TABLE a (b text) INHERITS(z);
>>>> CREATE
>>>> httpd=> INSERT INTO x VALUES ('foo');
>>>> INSERT 168602 1
>>>> httpd=> select * from z*;
>>>> y
>>>> ---
>>>> foo
>>>> foo
>>>> (2 rows)
>>>> 
>>>> How did we suddenly get two rows??

Is it a bug?  It looks to me like a inherited z's view of x (and thus
when you selected from both a and z by using "z*", you got x's contents
twice).  Is that wrong?  If so, why?

If inheriting from a view is allowed at all (maybe it shouldn't be),
then I'd *expect* the view-ness to be inherited.

Offhand, given that tables and views are different kinds of things,
allowing a table to inherit from a view seems like a bad idea.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] 6.5 cvs: can't drop table
Next
From: Tom Lane
Date:
Subject: INSERT INTO view means what exactly?