Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd8e582e

Browse files
committed
Revert rules.out to non-broken state. I will with difficulty hold my
tongue about the sloppiness of (a) submitting and (b) committing thisfile.
1 parent08291f4 commitd8e582e

File tree

1 file changed

+176
-5
lines changed

1 file changed

+176
-5
lines changed

‎src/test/regress/expected/rules.out

Lines changed: 176 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,8 +1084,179 @@ SELECT * FROM shoelace ORDER BY sl_name;
10841084
(8 rows)
10851085

10861086
insert into shoelace_ok select * from shoelace_arrive;
1087-
FATAL 1: The system is shutting down
1088-
pqReadData() -- backend closed the channel unexpectedly.
1089-
This probably means the backend terminated abnormally
1090-
before or while processing the request.
1091-
connection to server was lost
1087+
SELECT * FROM shoelace ORDER BY sl_name;
1088+
sl_name | sl_avail | sl_color | sl_len | sl_unit | sl_len_cm
1089+
------------+----------+------------+--------+----------+-----------
1090+
sl1 | 5 | black | 80 | cm | 80
1091+
sl2 | 6 | black | 100 | cm | 100
1092+
sl3 | 10 | black | 35 | inch | 88.9
1093+
sl4 | 8 | black | 40 | inch | 101.6
1094+
sl5 | 4 | brown | 1 | m | 100
1095+
sl6 | 20 | brown | 0.9 | m | 90
1096+
sl7 | 6 | brown | 60 | cm | 60
1097+
sl8 | 21 | brown | 40 | inch | 101.6
1098+
(8 rows)
1099+
1100+
SELECT * FROM shoelace_log ORDER BY sl_name;
1101+
sl_name | sl_avail | log_who | log_when
1102+
------------+----------+----------+----------
1103+
sl3 | 10 | Al Bundy | epoch
1104+
sl6 | 20 | Al Bundy | epoch
1105+
sl7 | 6 | Al Bundy | epoch
1106+
sl8 | 21 | Al Bundy | epoch
1107+
(4 rows)
1108+
1109+
CREATE VIEW shoelace_obsolete AS
1110+
SELECT * FROM shoelace WHERE NOT EXISTS
1111+
(SELECT shoename FROM shoe WHERE slcolor = sl_color);
1112+
CREATE VIEW shoelace_candelete AS
1113+
SELECT * FROM shoelace_obsolete WHERE sl_avail = 0;
1114+
insert into shoelace values ('sl9', 0, 'pink', 35.0, 'inch', 0.0);
1115+
insert into shoelace values ('sl10', 1000, 'magenta', 40.0, 'inch', 0.0);
1116+
SELECT * FROM shoelace_obsolete;
1117+
sl_name | sl_avail | sl_color | sl_len | sl_unit | sl_len_cm
1118+
------------+----------+------------+--------+----------+-----------
1119+
sl9 | 0 | pink | 35 | inch | 88.9
1120+
sl10 | 1000 | magenta | 40 | inch | 101.6
1121+
(2 rows)
1122+
1123+
SELECT * FROM shoelace_candelete;
1124+
sl_name | sl_avail | sl_color | sl_len | sl_unit | sl_len_cm
1125+
------------+----------+------------+--------+----------+-----------
1126+
sl9 | 0 | pink | 35 | inch | 88.9
1127+
(1 row)
1128+
1129+
DELETE FROM shoelace WHERE EXISTS
1130+
(SELECT * FROM shoelace_candelete
1131+
WHERE sl_name = shoelace.sl_name);
1132+
SELECT * FROM shoelace ORDER BY sl_name;
1133+
sl_name | sl_avail | sl_color | sl_len | sl_unit | sl_len_cm
1134+
------------+----------+------------+--------+----------+-----------
1135+
sl1 | 5 | black | 80 | cm | 80
1136+
sl10 | 1000 | magenta | 40 | inch | 101.6
1137+
sl2 | 6 | black | 100 | cm | 100
1138+
sl3 | 10 | black | 35 | inch | 88.9
1139+
sl4 | 8 | black | 40 | inch | 101.6
1140+
sl5 | 4 | brown | 1 | m | 100
1141+
sl6 | 20 | brown | 0.9 | m | 90
1142+
sl7 | 6 | brown | 60 | cm | 60
1143+
sl8 | 21 | brown | 40 | inch | 101.6
1144+
(9 rows)
1145+
1146+
SELECT * FROM shoe ORDER BY shoename;
1147+
shoename | sh_avail | slcolor | slminlen | slminlen_cm | slmaxlen | slmaxlen_cm | slunit
1148+
------------+----------+------------+----------+-------------+----------+-------------+----------
1149+
sh1 | 2 | black | 70 | 70 | 90 | 90 | cm
1150+
sh2 | 0 | black | 30 | 76.2 | 40 | 101.6 | inch
1151+
sh3 | 4 | brown | 50 | 50 | 65 | 65 | cm
1152+
sh4 | 3 | brown | 40 | 101.6 | 50 | 127 | inch
1153+
(4 rows)
1154+
1155+
SELECT count(*) FROM shoe;
1156+
count
1157+
-------
1158+
4
1159+
(1 row)
1160+
1161+
--
1162+
-- Simple test of qualified ON INSERT ... this did not work in 7.0 ...
1163+
--
1164+
create table foo (f1 int);
1165+
create table foo2 (f1 int);
1166+
create rule foorule as on insert to foo where f1 < 100
1167+
do instead nothing;
1168+
insert into foo values(1);
1169+
insert into foo values(1001);
1170+
select * from foo;
1171+
f1
1172+
------
1173+
1001
1174+
(1 row)
1175+
1176+
drop rule foorule;
1177+
-- this should fail because f1 is not exposed for unqualified reference:
1178+
create rule foorule as on insert to foo where f1 < 100
1179+
do instead insert into foo2 values (f1);
1180+
ERROR: Attribute 'f1' not found
1181+
-- this is the correct way:
1182+
create rule foorule as on insert to foo where f1 < 100
1183+
do instead insert into foo2 values (new.f1);
1184+
insert into foo values(2);
1185+
insert into foo values(100);
1186+
select * from foo;
1187+
f1
1188+
------
1189+
1001
1190+
100
1191+
(2 rows)
1192+
1193+
select * from foo2;
1194+
f1
1195+
----
1196+
2
1197+
(1 row)
1198+
1199+
drop rule foorule;
1200+
drop table foo;
1201+
drop table foo2;
1202+
--
1203+
-- Check that ruleutils are working
1204+
--
1205+
SELECT viewname, definition FROM pg_views ORDER BY viewname;
1206+
viewname | definition
1207+
--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1208+
iexit | SELECT ih.name, ih.thepath, interpt_pp(ih.thepath, r.thepath) AS exit FROM ihighway ih, ramp r WHERE (ih.thepath ## r.thepath);
1209+
pg_indexes | SELECT c.relname AS tablename, i.relname AS indexname, pg_get_indexdef(x.indexrelid) AS indexdef FROM pg_index x, pg_class c, pg_class i WHERE ((c.oid = x.indrelid) AND (i.oid = x.indexrelid));
1210+
pg_rules | SELECT c.relname AS tablename, r.rulename, pg_get_ruledef(r.rulename) AS definition FROM pg_rewrite r, pg_class c WHERE ((r.rulename !~ '^_RET'::text) AND (c.oid = r.ev_class));
1211+
pg_tables | SELECT c.relname AS tablename, pg_get_userbyid(c.relowner) AS tableowner, c.relhasindex AS hasindexes, c.relhasrules AS hasrules, (c.reltriggers > 0) AS hastriggers FROM pg_class c WHERE (((c.relkind = 'r'::"char") OR (c.relkind = 's'::"char")) AND (NOT (EXISTS (SELECT pg_rewrite.rulename FROM pg_rewrite WHERE ((pg_rewrite.ev_class = c.oid) AND (pg_rewrite.ev_type = '1'::"char"))))));
1212+
pg_user | SELECT pg_shadow.usename, pg_shadow.usesysid, pg_shadow.usecreatedb, pg_shadow.usetrace, pg_shadow.usesuper, pg_shadow.usecatupd, '********'::text AS passwd, pg_shadow.valuntil FROM pg_shadow;
1213+
pg_views | SELECT c.relname AS viewname, pg_get_userbyid(c.relowner) AS viewowner, pg_get_viewdef(c.relname) AS definition FROM pg_class c WHERE (c.relhasrules AND (EXISTS (SELECT r.rulename FROM pg_rewrite r WHERE ((r.ev_class = c.oid) AND (r.ev_type = '1'::"char")))));
1214+
rtest_v1 | SELECT rtest_t1.a, rtest_t1.b FROM rtest_t1;
1215+
rtest_vcomp | SELECT x.part, (x.size * y.factor) AS size_in_cm FROM rtest_comp x, rtest_unitfact y WHERE (x.unit = y.unit);
1216+
rtest_vview1 | SELECT x.a, x.b FROM rtest_view1 x WHERE (0 < (SELECT count(*) AS count FROM rtest_view2 y WHERE (y.a = x.a)));
1217+
rtest_vview2 | SELECT rtest_view1.a, rtest_view1.b FROM rtest_view1 WHERE rtest_view1.v;
1218+
rtest_vview3 | SELECT x.a, x.b FROM rtest_vview2 x WHERE (0 < (SELECT count(*) AS count FROM rtest_view2 y WHERE (y.a = x.a)));
1219+
rtest_vview4 | SELECT x.a, x.b, count(y.a) AS refcount FROM rtest_view1 x, rtest_view2 y WHERE (x.a = y.a) GROUP BY x.a, x.b;
1220+
rtest_vview5 | SELECT rtest_view1.a, rtest_view1.b, rtest_viewfunc1(rtest_view1.a) AS refcount FROM rtest_view1;
1221+
shoe | SELECT sh.shoename, sh.sh_avail, sh.slcolor, sh.slminlen, (sh.slminlen * un.un_fact) AS slminlen_cm, sh.slmaxlen, (sh.slmaxlen * un.un_fact) AS slmaxlen_cm, sh.slunit FROM shoe_data sh, unit un WHERE (sh.slunit = un.un_name);
1222+
shoe_ready | SELECT rsh.shoename, rsh.sh_avail, rsl.sl_name, rsl.sl_avail, int4smaller(rsh.sh_avail, rsl.sl_avail) AS total_avail FROM shoe rsh, shoelace rsl WHERE (((rsl.sl_color = rsh.slcolor) AND (rsl.sl_len_cm >= rsh.slminlen_cm)) AND (rsl.sl_len_cm <= rsh.slmaxlen_cm));
1223+
shoelace | SELECT s.sl_name, s.sl_avail, s.sl_color, s.sl_len, s.sl_unit, (s.sl_len * u.un_fact) AS sl_len_cm FROM shoelace_data s, unit u WHERE (s.sl_unit = u.un_name);
1224+
shoelace_candelete | SELECT shoelace_obsolete.sl_name, shoelace_obsolete.sl_avail, shoelace_obsolete.sl_color, shoelace_obsolete.sl_len, shoelace_obsolete.sl_unit, shoelace_obsolete.sl_len_cm FROM shoelace_obsolete WHERE (shoelace_obsolete.sl_avail = 0);
1225+
shoelace_obsolete | SELECT shoelace.sl_name, shoelace.sl_avail, shoelace.sl_color, shoelace.sl_len, shoelace.sl_unit, shoelace.sl_len_cm FROM shoelace WHERE (NOT (EXISTS (SELECT shoe.shoename FROM shoe WHERE (shoe.slcolor = shoelace.sl_color))));
1226+
street | SELECT r.name, r.thepath, c.cname FROM ONLY road r, real_city c WHERE (c.outline ## r.thepath);
1227+
toyemp | SELECT emp.name, emp.age, emp."location", (12 * emp.salary) AS annualsal FROM emp;
1228+
(20 rows)
1229+
1230+
SELECT tablename, rulename, definition FROM pg_rules
1231+
ORDER BY tablename, rulename;
1232+
tablename | rulename | definition
1233+
---------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1234+
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);
1235+
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);
1236+
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);
1237+
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;
1238+
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;
1239+
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);
1240+
rtest_nothn2 | rtest_nothn_r4 | CREATE RULE rtest_nothn_r4 AS ON INSERT TO rtest_nothn2 DO INSTEAD NOTHING;
1241+
rtest_order1 | rtest_order_r1 | CREATE RULE rtest_order_r1 AS ON INSERT TO rtest_order1 DO INSTEAD INSERT INTO rtest_order2 (a, b, c) VALUES (new.a, nextval('rtest_seq'::text), 'rule 1 - this should run 3rd or 4th'::text);
1242+
rtest_order1 | rtest_order_r2 | CREATE RULE rtest_order_r2 AS ON INSERT TO rtest_order1 DO INSERT INTO rtest_order2 (a, b, c) VALUES (new.a, nextval('rtest_seq'::text), 'rule 2 - this should run 1st'::text);
1243+
rtest_order1 | rtest_order_r3 | CREATE RULE rtest_order_r3 AS ON INSERT TO rtest_order1 DO INSTEAD INSERT INTO rtest_order2 (a, b, c) VALUES (new.a, nextval('rtest_seq'::text), 'rule 3 - this should run 3rd or 4th'::text);
1244+
rtest_order1 | rtest_order_r4 | CREATE RULE rtest_order_r4 AS ON INSERT TO rtest_order1 WHERE (new.a < 100) DO INSTEAD INSERT INTO rtest_order2 (a, b, c) VALUES (new.a, nextval('rtest_seq'::text), 'rule 4 - this should run 2nd'::text);
1245+
rtest_person | rtest_pers_del | CREATE RULE rtest_pers_del AS ON DELETE TO rtest_person DO DELETE FROM rtest_admin WHERE (rtest_admin.pname = old.pname);
1246+
rtest_person | rtest_pers_upd | CREATE RULE rtest_pers_upd AS ON UPDATE TO rtest_person DO UPDATE rtest_admin SET pname = new.pname WHERE (rtest_admin.pname = old.pname);
1247+
rtest_system | rtest_sys_del | CREATE RULE rtest_sys_del AS ON DELETE TO rtest_system DO (DELETE FROM rtest_interface WHERE (rtest_interface.sysname = old.sysname); DELETE FROM rtest_admin WHERE (rtest_admin.sysname = old.sysname); );
1248+
rtest_system | rtest_sys_upd | CREATE RULE rtest_sys_upd AS ON UPDATE TO rtest_system DO (UPDATE rtest_interface SET sysname = new.sysname WHERE (rtest_interface.sysname = old.sysname); UPDATE rtest_admin SET sysname = new.sysname WHERE (rtest_admin.sysname = old.sysname); );
1249+
rtest_t4 | rtest_t4_ins1 | CREATE RULE rtest_t4_ins1 AS ON INSERT TO rtest_t4 WHERE ((new.a >= 10) AND (new.a < 20)) DO INSTEAD INSERT INTO rtest_t5 (a, b) VALUES (new.a, new.b);
1250+
rtest_t4 | rtest_t4_ins2 | CREATE RULE rtest_t4_ins2 AS ON INSERT TO rtest_t4 WHERE ((new.a >= 20) AND (new.a < 30)) DO INSERT INTO rtest_t6 (a, b) VALUES (new.a, new.b);
1251+
rtest_t5 | rtest_t5_ins | CREATE RULE rtest_t5_ins AS ON INSERT TO rtest_t5 WHERE (new.a > 15) DO INSERT INTO rtest_t7 (a, b) VALUES (new.a, new.b);
1252+
rtest_t6 | rtest_t6_ins | CREATE RULE rtest_t6_ins AS ON INSERT TO rtest_t6 WHERE (new.a > 25) DO INSTEAD INSERT INTO rtest_t8 (a, b) VALUES (new.a, new.b);
1253+
rtest_v1 | rtest_v1_del | CREATE RULE rtest_v1_del AS ON DELETE TO rtest_v1 DO INSTEAD DELETE FROM rtest_t1 WHERE (rtest_t1.a = old.a);
1254+
rtest_v1 | rtest_v1_ins | CREATE RULE rtest_v1_ins AS ON INSERT TO rtest_v1 DO INSTEAD INSERT INTO rtest_t1 (a, b) VALUES (new.a, new.b);
1255+
rtest_v1 | rtest_v1_upd | CREATE RULE rtest_v1_upd AS ON UPDATE TO rtest_v1 DO INSTEAD UPDATE rtest_t1 SET a = new.a, b = new.b WHERE (rtest_t1.a = old.a);
1256+
shoelace | shoelace_del | CREATE RULE shoelace_del AS ON DELETE TO shoelace DO INSTEAD DELETE FROM shoelace_data WHERE (shoelace_data.sl_name = old.sl_name);
1257+
shoelace | shoelace_ins | CREATE RULE shoelace_ins AS ON INSERT TO shoelace DO INSTEAD INSERT INTO shoelace_data (sl_name, sl_avail, sl_color, sl_len, sl_unit) VALUES (new.sl_name, new.sl_avail, new.sl_color, new.sl_len, new.sl_unit);
1258+
shoelace | shoelace_upd | CREATE RULE shoelace_upd AS ON UPDATE TO shoelace DO INSTEAD UPDATE shoelace_data SET sl_name = new.sl_name, sl_avail = new.sl_avail, sl_color = new.sl_color, sl_len = new.sl_len, sl_unit = new.sl_unit WHERE (shoelace_data.sl_name = old.sl_name);
1259+
shoelace_data | log_shoelace | CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE (new.sl_avail <> old.sl_avail) DO INSERT INTO shoelace_log (sl_name, sl_avail, log_who, log_when) VALUES (new.sl_name, new.sl_avail, 'Al Bundy'::name, "timestamp"('epoch'::text));
1260+
shoelace_ok | shoelace_ok_ins | CREATE RULE shoelace_ok_ins AS ON INSERT TO shoelace_ok DO INSTEAD UPDATE shoelace SET sl_avail = (shoelace.sl_avail + new.ok_quant) WHERE (shoelace.sl_name = new.ok_name);
1261+
(27 rows)
1262+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp