From: | "Tomislav Karastojkovic" <karastojko(at)gmail(dot)com> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #2857: Sequence and table partitioning |
Date: | 2006-12-22 09:16:59 |
Message-ID: | 200612220916.kBM9GxKX032351@wwwmaster.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 2857
Logged by: Tomislav Karastojkovic
Email address: karastojko(at)gmail(dot)com
PostgreSQL version: 8.1.4, 8.2.0
Operating system: Linux
Description: Sequence and table partitioning
Details:
Sequence does not increase by 1 when tables is partitioned!
For example, let define 'parent' and 'child' tables, with column 'id' of
type 'serial':
CREATE TABLE parent(id serial, message text);
CREATE TABLE child() INHERITS(parent);
ALTER TABLE child ALTER id DROP DEFAULT;
Default value is dropped from the child table, so sequence is used only in
the 'parent' table.
If we set a rule
CREATE OR REPLACE RULE r AS ON INSERT TO parent DO INSTEAD INSERT INTO child
VALUES(NEW.id, NEW.message);
then each inserting into table 'parent' increases sequence 'parent_id_seq'
by 1, as it should. But if we add a condition for 'id' when setting the rule
like
CREATE OR REPLACE RULE r AS ON INSERT TO parent WHERE id>=1 AND id <= 100 DO
INSTEAD INSERT INTO child VALUES(NEW.id, NEW.message);
then the sequence is increasing by 5 when inserting into 'parent' table.
This seems to be a bug.
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Locke | 2006-12-22 10:39:19 | BUG #2858: postgres periodically restarts (problem with MemoryContextAllocZeroAligned)... |
Previous Message | Steve Langridge | 2006-12-22 08:35:55 | BUG #2856: Jdbc 4 connector running on JDK 1.6 should not raise exception for getClientInfo/setClientInfo |