Hi,
I have found what appears to be a bug in PostgreSQL, or is this a feature?
I don't think it's a feature, because the postgreSQL documentation state it
should work.
When creating delete-rules for views, i have found that only the first
expression is being executed, when
using multiple expressions.
I have managed to do this for Insert, and i think for Update as well...
although i haven't gotten around to testing that yet.
The following is the RULE-definition I use, it's for a View (
bedrijven_view ) which consists of
two tables ( adressen_table and bedrijven_table ).
When I change the sequence (eg. put the delete from bedrijven_table first)
it still only does the first statement.
CREATE RULE delete_bedrijven_view AS ON DELETE
TO bedrijven_view
DO INSTEAD (
DELETE FROM adressen_table
WHERE adres_id = get_adres_nummer(straatnaam,
huisnummer,postcode,land);
DELETE FROM bedrijven_table
WHERE firma_id = firma_id;
);
If you require more information, for instance a full list of statements
that can reproduce the problem,
please let me know, and I'll forward the bug-report I sent in yesterday
morning.
with kind regards,
Joost Roeleveld
PS. this is not a new problem, someone else reported this before, but he
hasn't found out how to solve
this problem either.