@@ -27,11 +27,30 @@ DECLARE
27
27
payload TEXT ;
28
28
column_name TEXT ;
29
29
column_value TEXT ;
30
+ pguserval TEXT ;
30
31
payload_items TEXT [];
31
32
uniquecolumn TEXT ;
32
33
logtime TEXT ;
33
34
payloadseqid INTEGER ;
34
35
BEGIN
36
+
37
+
38
+ -- pguserval := (SELECT 1 FROM pg_roles WHERE rolname = 'pgsyncuser');
39
+ pguserval := (SELECT current_user );
40
+ if pguserval = ' pgsyncuser' then
41
+ RAISE notice ' pgsyncuser name : %' , pguserval;
42
+
43
+ CASE TG_OP
44
+ WHEN ' INSERT' , ' UPDATE' THEN
45
+ rec := NEW;
46
+ WHEN ' DELETE' THEN
47
+ rec := OLD;
48
+ ELSE
49
+ RAISE EXCEPTION ' Unknown TG_OP: "%". Should not occur!' , TG_OP;
50
+ END CASE;
51
+ return rec;
52
+ end if;
53
+
35
54
CASE TG_OP
36
55
WHEN ' INSERT' , ' UPDATE' THEN
37
56
rec := NEW;
@@ -99,13 +118,14 @@ BEGIN
99
118
END LOOP;
100
119
-- logtime := (select date_display_tz());
101
120
logtime := (SELECT to_char (now()::timestamptz at time zone ' UTC' , ' YYYY-MM-DD"T"HH24:MI:SS"Z"' ));
121
+
102
122
payloadseqid := (select nextval(' payloadsequence' ::regclass));
103
123
104
124
uniquecolumn := (SELECT c .column_name
105
125
FROM information_schema .key_column_usage AS c
106
126
LEFT JOIN information_schema .table_constraints AS t
107
127
ON t .constraint_name = c .constraint_name
108
- WHERE t .table_name = TG_TABLE_NAME AND t .constraint_type = ' PRIMARY KEY' LIMIT 1 );
128
+ WHERE t .table_name = TG_TABLE_NAME AND t .constraint_type = ' PRIMARY KEY' limit 1 );
109
129
110
130
if (uniquecolumn = ' ' ) IS NOT FALSE then
111
131
uniquecolumn := ' Not-Available' ;
@@ -131,9 +151,10 @@ BEGIN
131
151
PERFORM pg_notify(' test_db_notifications' , payload);
132
152
133
153
RETURN rec;
134
- END;
135
- $body$ LANGUAGE plpgsql;
136
154
155
+ END;
156
+ $body$ LANGUAGE plpgsql
157
+
137
158
CREATE TRIGGER "pg_email_trigger "
138
159
AFTER INSERT OR DELETE OR UPDATE ON email
139
160
FOR EACH ROW
0 commit comments