--On Donnerstag, August 07, 2008 08:03:52 -0400 Robert Haas <[EMAIL PROTECTED]> wrote:

Here's a patch that allows CREATE OR REPLACE VIEW to add new columns
to an existing view.

Any feedback would be appreciated, especially if it meant that I could
fix any problems before the next commitfest.

I had a deeper look at this now. The patch looks clean and applies without any problems, regression tests passes. However, ATRewriteTables() has a problem when adding columns with domains and constraints. Consider this small test case:

CREATE TABLE bar (id INTEGER);
CREATE OR REPLACE VIEW vbar AS SELECT * FROM bar;
CREATE DOMAIN person AS TEXT CHECK(value IN ('haas', 'helmle'));
ALTER TABLE bar ADD COLUMN name person;
CREATE OR REPLACE VIEW vbar AS SELECT * FROM bar;

The last command confuses ATRewriteTable(), which wants to scan the relation leading to this error:
ERROR:  could not open relation base/16384/16476:

I see that ATRewriteTable() errors out on heap_beginscan(), since needscan is set to TRUE. One solution would be to teach ATRewriteTable(s) to handle view alteration differently in this case.

Opinions?

--
 Thanks

                   Bernd

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to