updateable view: message

From: Harald Armin Massa <haraldarminmassa(at)gmail(dot)com>
To: General Postgres Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: updateable view: message
Date: 2009-01-29 12:37:41
Message-ID: 7be3f35d0901290437w3b1f08fei914a72cc2ce0c424@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello,

I am using updateable views to have time-based tables (some status is
valid for some time and has to be preserved after updates, inserts and
deletes)

I created DO INSTEAD rules for update, insert and delete, example:

CREATE OR REPLACE RULE formularfeld_update AS
ON UPDATE TO formularfeld

DO INSTEAD ( UPDATE otformularfeld SET validbis = now(),
letztespeicherung = now()
WHERE otformularfeld.id_formfeld = old.id_formfeld AND
otformularfeld.validbis >= '9999-12-31 00:00:00'::timestamp without
time zone AND otformularfeld.quarant = get_quarant();

INSERT INTO otformularfeld (id_formfeld, id_formular, id_bf,
sortierung, ebene, gruppe, letztespeicherung, einblenden, ausblenden,
drucknr, untergruppe, validvon, validbis, id_user, quarant)
VALUES (new.id_formfeld, new.id_formular, new.id_bf, new.sortierung,
new.ebene, new.gruppe, now(), new.einblenden, new.ausblenden,
new.drucknr, new.untergruppe, now(), 'infinity'::timestamp without
time zone, get_user(), get_quarant());
);

(that is: write "this line is no longer valid", and "from now on this
line is valid instead")

Everything works fine. Just the feedbacks are ... disturbing:
update formularfeld set sortierung=1442 where id_formfeld=13798

leads to:

Query returned successfully: 0 rows affected, 234 ms execution time.

which is correct in one sence:
- within the updateable view there were 0 rows affected - all stuff
is done in otformularfeld; the table "behind the view"

on the other hand: the instead rule "touched" two rows in
otformularfeld. And this is reflected nowhere.

So my question: can I have influence on that query result message, and
if yes, how? My only option so far would be to have some function
"called" within the instead rule that raises "NOTICE" ... which seems
rather hackisch.

Harald
--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Spielberger Straße 49
70435 Stuttgart
0173/9409607
no fx, no carrier pigeon
-
EuroPython 2009 will take place in Birmingham - Stay tuned!

Browse pgsql-general by date

  From Date Subject
Next Message Tommy Gildseth 2009-01-29 13:04:02 Text search segmentation fault
Previous Message Moshe Ben-Shoham 2009-01-29 11:50:11 Encoding problem using pg_dumpall