1#include <stdio.h>
2#include <stdlib.h>
3#include <string.h>
4
5EXEC SQL INCLUDE ../regression;
6
7int main() {
8  EXEC SQL char text[25];
9
10  ECPGdebug(1, stderr);
11  EXEC SQL CONNECT TO REGRESSDB1;
12
13  EXEC SQL SET AUTOCOMMIT TO ON;
14  EXEC SQL WHENEVER SQLWARNING SQLPRINT;
15  EXEC SQL WHENEVER SQLERROR SQLPRINT;
16
17  EXEC SQL CREATE TABLE My_Table ( Item1 int, Item2 text );
18  EXEC SQL CREATE TABLE Log (name text, w text);
19
20  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
28  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
34  EXEC SQL INSERT INTO My_Table VALUES (1234, 'Some random text');
35  EXEC SQL INSERT INTO My_Table VALUES (5678, 'The Quick Brown');
36  EXEC SQL SELECT name INTO :text FROM Log LIMIT 1;
37  printf("Trigger %s fired.\n", text);
38
39  EXEC SQL DROP TRIGGER My_Table_Check_Trigger ON My_Table;
40  EXEC SQL DROP FUNCTION My_Table_Check();
41  EXEC SQL DROP TABLE Log;
42  EXEC SQL DROP TABLE My_Table;
43
44  EXEC SQL DISCONNECT ALL;
45
46  return 0;
47}
48