File: triggers_10.out

package info (click to toggle)
postgresql-pllua 1%3A2.0.10-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,316 kB
  • sloc: ansic: 14,369; sql: 2,181; makefile: 163; sh: 59; javascript: 38
file content (102 lines) | stat: -rw-r--r-- 2,958 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
--
\set VERBOSITY terse
\set QUIET 0
-- Test pg10+ trigger functionality.
create table trigtst2 (
  id integer primary key,
  name text,
  flag boolean,
  qty integer,
  weight numeric
);
CREATE TABLE
create function ttrig1() returns trigger language pllua
as $$
  print(trigger.name,...)
  print(trigger.when, trigger.level, trigger.operation, trigger.relation.name)
  for r in spi.rows([[ select * from newtab ]]) do print(r) end
$$;
CREATE FUNCTION
create function ttrig2() returns trigger language pllua
as $$
  print(trigger.name,...)
  print(trigger.when, trigger.level, trigger.operation, trigger.relation.name)
  for r in spi.rows([[ select 'old', * from oldtab union all select 'new', * from newtab ]]) do print(r) end
$$;
CREATE FUNCTION
create function ttrig3() returns trigger language pllua
as $$
  print(trigger.name,...)
  print(trigger.when, trigger.level, trigger.operation, trigger.relation.name)
  for r in spi.rows([[ select * from oldtab ]]) do print(r) end
$$;
CREATE FUNCTION
create trigger t1
  after insert on trigtst2
  referencing new table as newtab
  for each statement
  execute procedure ttrig1('t1 insert');
CREATE TRIGGER
create trigger t2
  after update on trigtst2
  referencing old table as oldtab
              new table as newtab
  for each statement
  execute procedure ttrig2('t2 update');
CREATE TRIGGER
create trigger t3
  after delete on trigtst2
  referencing old table as oldtab
  for each statement
  execute procedure ttrig3('t3 delete');
CREATE TRIGGER
insert into trigtst2
  values (1, 'fred', true, 23, 1.73),
  	 (2, 'jim', false, 11, 3.1),
	 (3, 'sheila', false, 9, 1.3),
  	 (4, 'dougal', false, 1, 9.3),
 	 (5, 'brian', false, 31, 51.5),
	 (6, 'ermintrude', true, 91, 52.7),
	 (7, 'dylan', false, 35, 12.1),
	 (8, 'florence', false, 23, 5.4),
	 (9, 'zebedee', false, 199, 7.4);
INFO:  t1	t1 insert
INFO:  after	statement	insert	trigtst2
INFO:  (1,fred,t,23,1.73)
INFO:  (2,jim,f,11,3.1)
INFO:  (3,sheila,f,9,1.3)
INFO:  (4,dougal,f,1,9.3)
INFO:  (5,brian,f,31,51.5)
INFO:  (6,ermintrude,t,91,52.7)
INFO:  (7,dylan,f,35,12.1)
INFO:  (8,florence,f,23,5.4)
INFO:  (9,zebedee,f,199,7.4)
INSERT 0 9
update trigtst2 set qty = qty + 1;
INFO:  t2	t2 update
INFO:  after	statement	update	trigtst2
INFO:  (old,1,fred,t,23,1.73)
INFO:  (old,2,jim,f,11,3.1)
INFO:  (old,3,sheila,f,9,1.3)
INFO:  (old,4,dougal,f,1,9.3)
INFO:  (old,5,brian,f,31,51.5)
INFO:  (old,6,ermintrude,t,91,52.7)
INFO:  (old,7,dylan,f,35,12.1)
INFO:  (old,8,florence,f,23,5.4)
INFO:  (old,9,zebedee,f,199,7.4)
INFO:  (new,1,fred,t,24,1.73)
INFO:  (new,2,jim,f,12,3.1)
INFO:  (new,3,sheila,f,10,1.3)
INFO:  (new,4,dougal,f,2,9.3)
INFO:  (new,5,brian,f,32,51.5)
INFO:  (new,6,ermintrude,t,92,52.7)
INFO:  (new,7,dylan,f,36,12.1)
INFO:  (new,8,florence,f,24,5.4)
INFO:  (new,9,zebedee,f,200,7.4)
UPDATE 9
delete from trigtst2 where name = 'sheila';
INFO:  t3	t3 delete
INFO:  after	statement	delete	trigtst2
INFO:  (3,sheila,f,10,1.3)
DELETE 1
--