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

Re: patch: Add columns via CREATE OR REPLACE VIEW

From: Bernd Helmle <mailings(at)oopsware(dot)de>
To: Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL-development Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: patch: Add columns via CREATE OR REPLACE VIEW
Date: 2008-11-27 13:34:56
Message-ID: EC7E967B3307C67C3DD714D1@teje (view raw or flat)
Thread:
Lists: pgsql-hackers
--On Donnerstag, August 07, 2008 08:03:52 -0400 Robert Haas 
<robertmhaas(at)gmail(dot)com> 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

In response to

Responses

pgsql-hackers by date

Next:From: Andrew ChernowDate: 2008-11-27 13:43:32
Subject: Re: Thread safety
Previous:From: Gregory StarkDate: 2008-11-27 13:31:04
Subject: Re: Fwd: [PATCHES] Auto Partitioning Patch - WIP version 1

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