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

thw rewriter and default values, again

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: thw rewriter and default values, again
Date: 2005-05-28 13:25:30
Message-ID: c2d9e70e05052806254304fb14@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-hackers
Hi, here we go again...

As you know there is a problem executing something like:

create table foo (
    col1 serial,
    col2 int
);

create view v_foo as select * from foo;

create rule ins_rule as on insert to v_foo do instead
insert into foo(col1, col2) values (new.col1, new.col2);

insert into v_foo(col2) values (1);

this give an error like:
psql:f:/views.sql:13: ERROR:  null value in column "col1" violates
not-null constraint

----

There is a workaround about this creating default values to the view.
Now, for updateable views we need this happen automatically, attached
there is a solution to this.
The only problem i have found until now is that
update v_foo set col1 = DEFAULT; execute nextval twice per every record.
so there will be a gasp between numbers, but AFAIK nextval has no guarantee
of returning sequential numbers.

Any comments on this?


-- 
regards,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

Attachment: rewriteHandler.patch
Description: text/plain (812 bytes)

Responses

pgsql-hackers by date

Next:From: Jochem van DietenDate: 2005-05-28 13:30:46
Subject: Re: overlaps() does not work as expected?
Previous:From: Tom LaneDate: 2005-05-28 05:11:20
Subject: Re: INOUT/OUT problems with IMMUTABLE

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