[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Call for testing experimental patch
- Subject: Call for testing experimental patch
- From: "Chris Travers" <..hidden..>
- Date: Mon, 11 Sep 2006 22:49:15 -0700
This patch will hopefully get included with the next version but I want
to put it through some more vetting first. I am testing it on my
production machines.
What it does is install a shadow table with a primary key index which
ensures that transaciton id's are unique across tables. I see no
concerns about integrity of production data.
Ideas and feedback are welcome.
Best Wishes,
Chris Travers
begin;
create table id_tracker (
id int PRIMARY KEY,
table_name text
);
insert into id_tracker (id, table_name) SELECT id, 'ap' FROM ap;
CREATE RULE ap_id_track_i AS ON insert TO ap
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'ap');
CREATE RULE ap_id_track_u AS ON update TO ap
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'business' FROM business;
CREATE RULE business_id_track_i AS ON insert TO business
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'business');
CREATE RULE business_id_track_u AS ON update TO business
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'chart' FROM chart;
CREATE RULE chart_id_track_i AS ON insert TO chart
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'chart');
CREATE RULE chart_id_track_u AS ON update TO chart
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'customer' FROM customer;
CREATE RULE customer_id_track_i AS ON insert TO customer
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'customer');
CREATE RULE customer_id_track_u AS ON update TO customer
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'department' FROM department;
CREATE RULE department_id_track_i AS ON insert TO department
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'department');
CREATE RULE department_id_track_u AS ON update TO department
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'employee' FROM employee;
CREATE RULE employee_id_track_i AS ON insert TO employee
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'employee');
CREATE RULE employee_id_track_u AS ON update TO employee
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'gl' FROM gl;
CREATE RULE gl_id_track_i AS ON insert TO gl
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'gl');
CREATE RULE gl_id_track_u AS ON update TO gl
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'oe' FROM oe;
CREATE RULE oe_id_track_i AS ON insert TO oe
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'oe');
CREATE RULE oe_id_track_u AS ON update TO oe
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'parts' FROM parts;
CREATE RULE parts_id_track_i AS ON insert TO parts
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'parts');
CREATE RULE parts_id_track_u AS ON update TO parts
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'partsgroup' FROM partsgroup;
CREATE RULE partsgroup_id_track_i AS ON insert TO partsgroup
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'partsgroup');
CREATE RULE partsgroup_id_track_u AS ON update TO partsgroup
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'pricegroup' FROM pricegroup;
CREATE RULE pricegroup_id_track_i AS ON insert TO pricegroup
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'pricegroup');
CREATE RULE pricegroup_id_track_u AS ON update TO pricegroup
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'project' FROM project;
CREATE RULE project_id_track_i AS ON insert TO chart
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'project');
CREATE RULE project_id_track_u AS ON update TO project
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'vendor' FROM vendor;
CREATE RULE vendor_id_track_i AS ON insert TO vendor
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'vendor');
CREATE RULE employee_id_track_u AS ON update TO vendor
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
INSERT INTO id_tracker (id, table_name) SELECT id, 'warehouse' FROM warehouse;
CREATE RULE warehouse_id_track_i AS ON insert TO warehouse
DO ALSO INSERT INTO id_tracker (id, table_name) VALUES (new.id, 'employee');
CREATE RULE warehouse_id_track_u AS ON update TO warehouse
DO ALSO UPDATE id_tracker SET id = new.id WHERE id = old.id;
commit;