'on delete' rule: bug or feature...

Поиск
Список
Период
Сортировка
От Dmitry Tkach
Тема 'on delete' rule: bug or feature...
Дата
Msg-id 3D666C40.3060908@openratings.com
обсуждение исходный текст
Список pgsql-bugs
Hi, everybody!

I was wonderring if anyone could help me with this...
I have created two tables and a view that joins them together, then I add a rule, that is supposed to
delete an entry from both tables, when I am deleting it from the view.
That does not work for some reason - it only deletes the row from one of the tables, but not from the other one...
Looks like a bug to me... Or am I doing something wrong here?

Here is the SQL (I have removed the prompts, and commented out the responses, so that you can just cut and paste this
inpsql): 


-- First, create two tables, the view, and the 'on delete' rule:

create table x (xx int);
-- CREATE
create table y (yy int);
-- CREATE
create view xy as select * from x, y where xx=yy;
-- CREATE
create rule xy_delete as on delete to xy do instead
(
  delete from x where xx=old.xx;
  delete from y where yy=old.yy;
);
-- CREATE

-- Insert a row into each table:

insert into x values (1);
-- INSERT 812084785 1
insert into y values (1);
-- INSERT 812084786 1

-- Did it work?

select * from xy;
--  xx | yy
-- ----+----
--   1 |  1
-- (1 row)

-- Great! Now delete it:

delete from xy where xx=1;
-- DELETE 0
select * from xy;
-- (No rows)

-- Looks good so far - it's gone from the view

select * from x;
-- (No rows)

-- Gone from x too - still OK, BUT:

select * from y;
--  yy
-- ----
--   1
-- (1 row)

OOPS! How come it is still here???

Any ideas?

Your help will be greatly appreciated!

Thanks a lot!

Dima


В списке pgsql-bugs по дате отправления:

Предыдущее
От: pgsql-bugs@postgresql.org
Дата:
Сообщение: Bug #745: PL/Perl function fails if not called first, under solaris
Следующее
От: Dmitry Tkach
Дата:
Сообщение: Re: [GENERAL] 'on delete' rule: bug or feature...