Line data Source code
1 : #include <stdio.h>
2 : #include <stdlib.h>
3 : #include <string.h>
4 :
5 : EXEC SQL INCLUDE ../regression;
6 :
7 0 : int main() {
8 0 : EXEC SQL char text[25];
9 :
10 0 : ECPGdebug(1, stderr);
11 0 : EXEC SQL CONNECT TO REGRESSDB1;
12 :
13 0 : EXEC SQL SET AUTOCOMMIT TO ON;
14 : EXEC SQL WHENEVER SQLWARNING SQLPRINT;
15 : EXEC SQL WHENEVER SQLERROR SQLPRINT;
16 :
17 0 : EXEC SQL CREATE TABLE My_Table ( Item1 int, Item2 text );
18 0 : EXEC SQL CREATE TABLE Log (name text, w text);
19 0 :
20 0 : EXEC SQL CREATE FUNCTION My_Table_Check() RETURNS trigger
21 : AS $test$
22 : BEGIN
23 : INSERT INTO Log VALUES(TG_NAME, TG_WHEN);
24 : RETURN NEW;
25 : END; $test$
26 : LANGUAGE plpgsql;
27 0 :
28 0 : EXEC SQL CREATE TRIGGER My_Table_Check_Trigger
29 : BEFORE INSERT
30 : ON My_Table
31 : FOR EACH ROW
32 : EXECUTE PROCEDURE My_Table_Check();
33 0 :
34 0 : EXEC SQL INSERT INTO My_Table VALUES (1234, 'Some random text');
35 0 : EXEC SQL INSERT INTO My_Table VALUES (5678, 'The Quick Brown');
36 0 : EXEC SQL SELECT name INTO :text FROM Log LIMIT 1;
37 0 : printf("Trigger %s fired.\n", text);
38 :
39 0 : EXEC SQL DROP TRIGGER My_Table_Check_Trigger ON My_Table;
40 0 : EXEC SQL DROP FUNCTION My_Table_Check();
41 0 : EXEC SQL DROP TABLE Log;
42 0 : EXEC SQL DROP TABLE My_Table;
43 0 :
44 0 : EXEC SQL DISCONNECT ALL;
45 0 :
46 0 : return 0;
47 0 : }
|