mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Fix rule rewriter so that new ordering of ON INSERT actions applies
in cases of qualified rules as well as unqualified ones. Tweak rules test to avoid cluttering output with dummy SELECT results. Update documentation to match code.
This commit is contained in:
@ -107,7 +107,7 @@ create table rtest_nothn2 (a int4, b text);
|
||||
create table rtest_nothn3 (a int4, b text);
|
||||
create table rtest_nothn4 (a int4, b text);
|
||||
create rule rtest_nothn_r1 as on insert to rtest_nothn1
|
||||
where new.a >= 10 and new.a < 20 do instead (select 1);
|
||||
where new.a >= 10 and new.a < 20 do instead nothing;
|
||||
create rule rtest_nothn_r2 as on insert to rtest_nothn1
|
||||
where new.a >= 30 and new.a < 40 do instead nothing;
|
||||
create rule rtest_nothn_r3 as on insert to rtest_nothn2
|
||||
@ -1313,7 +1313,7 @@ SELECT tablename, rulename, definition FROM pg_rules
|
||||
rtest_emp | rtest_emp_del | CREATE RULE rtest_emp_del AS ON DELETE TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (old.ename, "current_user"(), 'fired '::bpchar, '$0.00'::money, old.salary);
|
||||
rtest_emp | rtest_emp_ins | CREATE RULE rtest_emp_ins AS ON INSERT TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'hired '::bpchar, new.salary, '$0.00'::money);
|
||||
rtest_emp | rtest_emp_upd | CREATE RULE rtest_emp_upd AS ON UPDATE TO rtest_emp WHERE (new.salary <> old.salary) DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'honored '::bpchar, new.salary, old.salary);
|
||||
rtest_nothn1 | rtest_nothn_r1 | CREATE RULE rtest_nothn_r1 AS ON INSERT TO rtest_nothn1 WHERE ((new.a >= 10) AND (new.a < 20)) DO INSTEAD SELECT 1;
|
||||
rtest_nothn1 | rtest_nothn_r1 | CREATE RULE rtest_nothn_r1 AS ON INSERT TO rtest_nothn1 WHERE ((new.a >= 10) AND (new.a < 20)) DO INSTEAD NOTHING;
|
||||
rtest_nothn1 | rtest_nothn_r2 | CREATE RULE rtest_nothn_r2 AS ON INSERT TO rtest_nothn1 WHERE ((new.a >= 30) AND (new.a < 40)) DO INSTEAD NOTHING;
|
||||
rtest_nothn2 | rtest_nothn_r3 | CREATE RULE rtest_nothn_r3 AS ON INSERT TO rtest_nothn2 WHERE (new.a >= 100) DO INSTEAD INSERT INTO rtest_nothn3 (a, b) VALUES (new.a, new.b);
|
||||
rtest_nothn2 | rtest_nothn_r4 | CREATE RULE rtest_nothn_r4 AS ON INSERT TO rtest_nothn2 DO INSTEAD NOTHING;
|
||||
|
@ -131,7 +131,7 @@ create table rtest_nothn3 (a int4, b text);
|
||||
create table rtest_nothn4 (a int4, b text);
|
||||
|
||||
create rule rtest_nothn_r1 as on insert to rtest_nothn1
|
||||
where new.a >= 10 and new.a < 20 do instead (select 1);
|
||||
where new.a >= 10 and new.a < 20 do instead nothing;
|
||||
|
||||
create rule rtest_nothn_r2 as on insert to rtest_nothn1
|
||||
where new.a >= 30 and new.a < 40 do instead nothing;
|
||||
|
Reference in New Issue
Block a user