| From: | Gene <genekhart(at)gmail(dot)com> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Partitioning: CREATE OR REPLACE RULE freezes. |
| Date: | 2006-07-29 18:59:35 |
| Message-ID: | 430d92a20607291159y4dd29fbfxf7820d1ca5569928@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
I have created a function that I use to help automate the creation of
partition tables. Basically it:
1. Creates a new table inherited from the parent table (which is empty)
2. creates or replaces a sole rule on the parent table to insert into
the new table:
EXECUTE 'CREATE OR REPLACE RULE parent_insert_rule AS ON INSERT TO parent'
|| ' DO INSTEAD '
|| ' INSERT INTO ' || new_child_table;
3. Update constraints on last child table and new one for constraint exclusion.
It seems to work if I run it once or if I stop all inserts/updates to
the parent table. If I run it a second time it freezes during the
create or replace rule step. The parent table receives about 10
inserts per second so it must be some sort of deadlock but I don't
know where to start to fix the problem. I've tried locking the entire
table but that didn't seem to help. Any suggestions would be greatly
appreciated. I would prefer not to have to stop everything just to
create a new partition table.
Thanks,
--
Eugene Hart
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Eisentraut | 2006-07-29 19:10:48 | Re: Auto Installation |
| Previous Message | Habib Seifzadeh | 2006-07-29 17:00:40 | Auto Installation |