Skip to content

Commit ccfe373

Browse files
[skip ci]
[skip ci]
1 parent 2500533 commit ccfe373

File tree

1 file changed

+226
-76
lines changed

1 file changed

+226
-76
lines changed

informix-identity-trigger-proc.sql

Lines changed: 226 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
database common_oltp
1+
database common_oltp;
2+
23
DROP PROCEDURE proc_user_update(varchar,decimal);
3-
DROP PROCEDURE proc_user_update;
44
CREATE PROCEDURE informix.proc_user_update(
55
new_handle varchar(50),
66
user_id decimal(10,0))
77
if (USER != 'ifxsyncuser') then
88
UPDATE user SET handle_lower = lower(new_handle), modify_date = current WHERE user.user_id = user_id;
99
End if;
10-
end procedure;
10+
end procedure;
11+
12+
DROP PROCEDURE proc_user_update;
1113
create procedure "informix".proc_user_update(
1214
user_id DECIMAL(10,0),
1315
old_first_name VARCHAR(64),
@@ -25,6 +27,7 @@ new_middle_name VARCHAR(64),
2527
old_timezone_id decimal(5,0),
2628
new_timezone_id decimal(5,0)
2729
)
30+
if (USER != 'ifxsyncuser') then
2831

2932
if ((old_first_name != new_first_name) or (old_last_name != new_last_name ) or (old_middle_name != new_middle_name )) then
3033
insert into audit_user (column_name, old_value, new_value,
@@ -57,10 +60,10 @@ user_id)
5760
user_id)
5861
values ('TIMEZONE_ID', old_timezone_id, new_timezone_id, user_id);
5962
End If;
60-
if (USER != 'ifxsyncuser') then
63+
6164
UPDATE user SET handle_lower = lower(new_handle), modify_date = current WHERE user.user_id = user_id;
6265
End if;
63-
end procedure;
66+
end procedure;
6467

6568
DROP PROCEDURE informix.proc_email_update;
6669
CREATE PROCEDURE informix.proc_email_update(
@@ -76,6 +79,8 @@ old_status_id DECIMAL(3,0),
7679
new_status_id DECIMAL(3,0)
7780
)
7881

82+
if (USER != 'ifxsyncuser') then
83+
7984
if (old_email_type_id != new_email_type_id) then
8085
insert into audit_user (column_name, old_value, new_value, user_id)
8186
values ('EMAIL_TYPE', old_email_type_id, new_email_type_id, user_id);
@@ -95,22 +100,198 @@ new_status_id DECIMAL(3,0)
95100
insert into audit_user (column_name, old_value, new_value, user_id)
96101
values ('EMAIL_PRIMARY_IND', old_primary_ind, new_primary_ind, user_id);
97102
End If;
98-
if (USER != 'ifxsyncuser') then
103+
99104
update email set modify_date = current where email.email_id = email_id;
100105
End if;
101-
end procedure;
106+
end procedure;
107+
108+
DROP PROCEDURE informix.proc_phone_update;
109+
CREATE PROCEDURE informix.proc_phone_update(
110+
phone_id decimal(10,0),
111+
user_id DECIMAL(10,0),
112+
old_phone_type_id DECIMAL(5,0),
113+
new_phone_type_id DECIMAL(5,0),
114+
old_number VARCHAR(64),
115+
new_number VARCHAR(64),
116+
old_primary_ind DECIMAL(1,0),
117+
new_primary_ind DECIMAL(1,0)
118+
)
119+
if (USER != 'ifxsyncuser') then
120+
if (old_phone_type_id != new_phone_type_id) then
121+
insert into audit_user (column_name, old_value, new_value, user_id)
122+
values ('PHONE_TYPE', old_phone_type_id, new_phone_type_id, user_id);
123+
End If;
124+
125+
if (old_number != new_number) then
126+
insert into audit_user (column_name, old_value, new_value, user_id)
127+
values ('PHONE_NUMBER', old_number, new_number, user_id);
128+
End If;
129+
130+
if (old_primary_ind != new_primary_ind) then
131+
insert into audit_user (column_name, old_value, new_value, user_id)
132+
values ('PHONE_PRIMARY_IND', old_primary_ind, new_primary_ind, user_id);
133+
End If;
134+
update phone set modify_date = current where phone.phone_id = phone_id;
135+
End if;
136+
end procedure;
137+
138+
DROP PROCEDURE informix.proc_user_last_login;
139+
CREATE PROCEDURE informix.proc_user_last_login (user_id DECIMAL(10,0), o_last_login DATETIME YEAR TO FRACTION, n_last_login DATETIME YEAR TO FRACTION)
140+
if (USER != 'ifxsyncuser') then
141+
if (o_last_login != n_last_login) then
142+
insert into corona_event (corona_event_type_id,user_id, corona_event_timestamp) values (1, user_id, n_last_login);
143+
end if;
144+
End if;
145+
end procedure;
146+
147+
CREATE PROCEDURE informix.do_auditing2(sessionusername LVARCHAR)
148+
EXTERNAL NAME "$INFORMIXDIR/extend/auditing/auditing.bld(do_auditing2)"
149+
LANGUAGE C;
150+
151+
CREATE TRIGGER "informix".ifxpgsync_user_insert insert on "informix".user for each row
152+
(
153+
execute procedure informix.do_auditing2(USER ));
154+
155+
CREATE TRIGGER "informix".ifxpgsync_user_update update on "informix".user for each row
156+
(
157+
execute procedure "informix".do_auditing2(USER ));
158+
159+
CREATE TRIGGER informix.ifxpgsync_user_delete delete on "informix".user for each row
160+
(
161+
execute procedure "informix".do_auditing2(USER ));
162+
163+
164+
CREATE TRIGGER "informix".ifxpgsync_email_insert insert on "informix".email for each row
165+
(
166+
execute procedure "informix".do_auditing2(USER ));
167+
168+
CREATE TRIGGER informix.ifxpgsync_email_update update on "informix".email for each row
169+
(
170+
execute procedure "informix".do_auditing2(USER ));
171+
172+
CREATE TRIGGER informix.ifxpgsync_email_delete delete on "informix".email for each row
173+
(
174+
execute procedure "informix".do_auditing2(USER ));
175+
176+
177+
CREATE TRIGGER informix.ifxpgsync_security_user_insert insert on "informix".security_user for each row
178+
(
179+
execute procedure "informix".do_auditing2(USER ));
180+
181+
CREATE TRIGGER informix.ifxpgsync_security_user_update update on "informix".security_user for each row
182+
(
183+
execute procedure "informix".do_auditing2(USER ));
184+
185+
CREATE TRIGGER informix.ifxpgsync_security_user_delete delete on "informix".security_user for each row
186+
(
187+
execute procedure "informix".do_auditing2(USER ));
188+
189+
CREATE TRIGGER informix.ifxpgsync_user_achievement_insert insert on "informix".user_achievement for each row
190+
(
191+
execute procedure "informix".do_auditing2(USER ));
192+
193+
CREATE TRIGGER informix.ifxpgsync_user_achievement_update update on "informix".user_achievement for each row
194+
(
195+
execute procedure "informix".do_auditing2(USER ));
196+
197+
CREATE TRIGGER informix.ifxpgsync_user_achievement_delete delete on "informix".user_achievement for each row
198+
(
199+
execute procedure "informix".do_auditing2(USER ));
200+
201+
CREATE TRIGGER informix.ifxpgsync_user_group_xref_insert insert on "informix".user_group_xref for each row
202+
(
203+
execute procedure "informix".do_auditing2(USER ));
204+
205+
CREATE TRIGGER informix.ifxpgsync_user_group_xref_update update on "informix".user_group_xref for each row
206+
(
207+
execute procedure "informix".do_auditing2(USER ));
208+
102209

210+
CREATE TRIGGER informix.ifxpgsync_insert_user_sso_login insert on user_sso_login for each row
211+
(
212+
execute procedure "informix".do_auditing2(USER ));
103213

104-
database informixoltp
105-
DROP PROCEDURE informix.proc_coder_update;
214+
CREATE TRIGGER informix.ifxpgsync_update_user_sso_login update on user_sso_login for each row
215+
(
216+
execute procedure "informix".do_auditing2(USER ));
217+
218+
CREATE TRIGGER informix.ifxpgsync_delete_user_sso_login delete on user_sso_login for each row
219+
(
220+
execute procedure "informix".do_auditing2(USER ));
221+
222+
223+
create trigger informix.ifxpgsync_sso_login_provider_insert insert on informix.sso_login_provider for each row
224+
(execute procedure informix.do_auditing2(USER ));
225+
create trigger informix.ifxpgsync_sso_login_provider_update update on informix.sso_login_provider for each row
226+
(execute procedure informix.do_auditing2(USER ));
227+
create trigger informix.ifxpgsync_sso_login_provider_delete delete on informix.sso_login_provider for each row
228+
(execute procedure informix.do_auditing2(USER ));
229+
230+
create trigger informix.ifxpgsync_social_login_provider_insert insert on informix.social_login_provider for each row
231+
(execute procedure informix.do_auditing2(USER ));
232+
create trigger informix.ifxpgsync_social_login_provider_update update on informix.social_login_provider for each row
233+
(execute procedure informix.do_auditing2(USER ));
234+
create trigger informix.ifxpgsync_social_login_provider_delete delete on informix.social_login_provider for each row
235+
(execute procedure informix.do_auditing2(USER ));
236+
237+
create trigger informix.ifxpgsync_security_groups_insert insert on informix.security_groups for each row
238+
(execute procedure informix.do_auditing2(USER ));
239+
create trigger informix.ifxpgsync_security_groups_update update on informix.security_groups for each row
240+
(execute procedure informix.do_auditing2(USER ));
241+
create trigger informix.ifxpgsync_security_groups_delete delete on informix.security_groups for each row
242+
(execute procedure informix.do_auditing2(USER ));
243+
244+
create trigger informix.ifxpgsync_achievement_type_lu_insert insert on informix.achievement_type_lu for each row
245+
(execute procedure informix.do_auditing2(USER ));
246+
create trigger informix.ifxpgsync_achievement_type_lu_update update on informix.achievement_type_lu for each row
247+
(execute procedure informix.do_auditing2(USER ));
248+
create trigger informix.ifxpgsync_achievement_type_lu_delete delete on informix.achievement_type_lu for each row
249+
(execute procedure informix.do_auditing2(USER ));
250+
251+
create trigger informix.ifxpgsync_country_insert insert on informix.country for each row
252+
(execute procedure informix.do_auditing2(USER ));
253+
create trigger informix.ifxpgsync_country_update update on informix.country for each row
254+
(execute procedure informix.do_auditing2(USER ));
255+
create trigger informix.ifxpgsync_country_delete delete on informix.country for each row
256+
(execute procedure informix.do_auditing2(USER ));
257+
258+
259+
create trigger informix.ifxpgsync_user_social_login_insert insert on informix.user_social_login for each row
260+
(execute procedure informix.do_auditing2(USER ));
261+
create trigger informix.ifxpgsync_user_social_login_update update on informix.user_social_login for each row
262+
(execute procedure informix.do_auditing2(USER ));
263+
create trigger informix.ifxpgsync_user_social_login_delete delete on informix.user_social_login for each row
264+
(execute procedure informix.do_auditing2(USER ));
265+
266+
267+
create trigger informix.ifxpgsync_invalid_handles_insert insert on informix.invalid_handles for each row
268+
(execute procedure informix.do_auditing2(USER ));
269+
create trigger informix.ifxpgsync_invalid_handles_update update on informix.invalid_handles for each row
270+
(execute procedure informix.do_auditing2(USER ));
271+
create trigger informix.ifxpgsync_invalid_handles_delete delete on informix.invalid_handles for each row
272+
(execute procedure informix.do_auditing2(USER ));
273+
274+
create trigger informix.ifxpgsync_audit_user_insert insert on informix.audit_user for each row
275+
(execute procedure informix.do_auditing2(USER )); create trigger informix.ifxpgsync_audit_user_update update on informix.audit_user for each row
276+
(execute procedure informix.do_auditing2(USER )); create trigger informix.ifxpgsync_audit_user_delete delete on informix.audit_user for each row
277+
(execute procedure informix.do_auditing2(USER ));
278+
279+
create trigger informix.ifxpgsync_corona_event_insert insert on informix.corona_event for each row
280+
(execute procedure informix.do_auditing2(USER )); create trigger informix.ifxpgsync_corona_event_update update on informix.corona_event for each row
281+
(execute procedure informix.do_auditing2(USER )); create trigger informix.ifxpgsync_corona_event_delete delete on informix.corona_event for each row
282+
(execute procedure informix.do_auditing2(USER ));
283+
284+
285+
database informixoltp;
286+
drop PROCEDURE proc_coder_update;
106287
CREATE PROCEDURE informix.proc_coder_update(
107288
v_oldcoder_id decimal(10,0),
108289
v_oldquote varchar(255),v_newquote varchar (255),
109290
v_oldlanguage_id decimal(3,0), v_newlanguage_id decimal(3,0),
110291
v_oldcoder_type_id decimal(3,0), v_newcoder_type_id decimal(3,0),
111292
v_oldcomp_country_code varchar(3), v_newcomp_country_code varchar(3)
112293
)
113-
294+
if (USER != 'ifxsyncuser') then
114295
if (v_oldquote != v_newquote) then
115296
insert into audit_coder (column_name, old_value, new_value, user_id)
116297
values ('QUOTE', v_oldquote , v_newquote, v_oldcoder_id);
@@ -130,75 +311,44 @@ v_oldcomp_country_code varchar(3), v_newcomp_country_code varchar(3)
130311
insert into audit_coder (column_name, old_value, new_value, user_id)
131312
values ('COMP_COUNTRY', v_oldcomp_country_code , v_newcomp_country_code, v_oldcoder_id);
132313
End if;
133-
134-
if (USER != 'ifxsyncuser') then
314+
135315
update coder set modify_date = current where coder_id = v_oldcoder_id;
136316
End if;
317+
318+
end procedure;
137319

138-
end procedure;
139-
140-
database tcs_catalog;
141-
DROP PROCEDURE proc_reliability_update;
142-
CREATE PROCEDURE informix.proc_reliability_update(
143-
p_user_id DECIMAL(10,0),
144-
p_phase_id decimal(3,0),
145-
old_rating decimal(5,4),
146-
new_rating decimal(5,4)
147-
)
148-
149-
if (USER != 'ifxsyncuser') then
150-
if (old_rating != new_rating) then
151-
insert into user_reliability_audit (column_name, old_value, new_value, user_id, phase_id)
152-
values ('RATING', old_rating, new_rating, p_user_id, p_phase_id);
153-
End If;
154-
155-
update user_reliability set modify_date = current where user_id = p_user_id and phase_id = p_phase_id;
156-
End if;
157-
end procedure;
158-
159-
DROP PROCEDURE proc_rating_update;
160-
CREATE PROCEDURE informix.proc_rating_update(
161-
p_user_id DECIMAL(10,0),
162-
p_phase_id decimal(3,0),
163-
old_rating decimal(10,0),
164-
new_rating decimal(10,0),
165-
old_vol decimal(10,0),
166-
new_vol decimal(10,0),
167-
old_num_ratings decimal(5,0),
168-
new_num_ratings decimal(5,0),
169-
old_last_rated_project_id decimal(12,0),
170-
new_last_rated_project_id decimal(12,0)
171-
)
172-
if (USER != 'ifxsyncuser') then
173-
if (old_rating != new_rating) then
174-
insert into user_rating_audit (column_name, old_value, new_value, user_id, phase_id)
175-
values ('RATING', old_rating, new_rating, p_user_id, p_phase_id);
176-
End If;
177-
178-
if (old_vol != new_vol) then
179-
insert into user_rating_audit (column_name, old_value, new_value, user_id, phase_id)
180-
values ('VOL', old_vol, new_vol, p_user_id, p_phase_id);
181-
End If;
320+
CREATE PROCEDURE informix.do_auditing2(sessionusername LVARCHAR)
321+
EXTERNAL NAME "$INFORMIXDIR/extend/auditing/auditing.bld(do_auditing2)"
322+
LANGUAGE C;
182323

183-
if (old_num_ratings != new_num_ratings) then
184-
insert into user_rating_audit (column_name, old_value, new_value, user_id, phase_id)
185-
values ('NUM_RATINGS', old_num_ratings, new_num_ratings, p_user_id, p_phase_id);
186-
End If;
324+
CREATE TRIGGER informix.ifxpgsync_insert_coder insert on "informix".coder for each row
325+
(
326+
execute procedure "informix".do_auditing2(USER ));
327+
328+
CREATE TRIGGER informix.ifxpgsync_update_coder update on "informix".coder for each row
329+
(
330+
execute procedure "informix".do_auditing2(USER ));
331+
332+
CREATE TRIGGER informix.ifxpgsync_delete_coder delete on "informix".coder for each row
333+
(
334+
execute procedure "informix".do_auditing2(USER ));
187335

188-
if (old_last_rated_project_id != new_last_rated_project_id) then
189-
insert into user_rating_audit (column_name, old_value, new_value, user_id, phase_id)
190-
values ('LAST_RATED_PROJECT_ID', old_last_rated_project_id, new_last_rated_project_id, p_user_id, p_phase_id);
191-
End If;
336+
CREATE TRIGGER informix.ifxpgsync_insert_algo_rating insert on "informix".algo_rating for each row
337+
(
338+
execute procedure "informix".do_auditing2(USER ));
339+
340+
CREATE TRIGGER informix.ifxpgsync_update_algo_rating update on "informix".algo_rating for each row
341+
(
342+
execute procedure "informix".do_auditing2(USER ));
343+
344+
CREATE TRIGGER informix.ifxpgsync_delete_algo_rating delete on "informix".algo_rating for each row
345+
(
346+
execute procedure "informix".do_auditing2(USER ));
347+
348+
create trigger informix.ifxpgsync_coder_referral_insert insert on informix.coder_referral for each row
349+
(execute procedure informix.do_auditing2(USER ));
350+
create trigger informix.ifxpgsync_coder_referral_update update on informix.coder_referral for each row
351+
(execute procedure informix.do_auditing2(USER ));
352+
create trigger informix.ifxpgsync_coder_referral_delete delete on informix.coder_referral for each row
353+
(execute procedure informix.do_auditing2(USER ));
192354

193-
update user_rating set mod_date_time = current where user_id = p_user_id and phase_id = p_phase_id;
194-
End if;
195-
end procedure;
196-
197-
DROP PROCEDURE proc_contest_creation_update;
198-
CREATE PROCEDURE informix.proc_contest_creation_update (create_user VARCHAR(64), old_project_status_id INT, new_project_status_id INT)
199-
if (USER != 'ifxsyncuser') then
200-
if (old_project_status_id != new_project_status_id and new_project_status_id == 1) then
201-
insert into corona_event (corona_event_type_id,user_id) values (5, TO_NUMBER(create_user));
202-
end if;
203-
End if;
204-
end procedure;

0 commit comments

Comments
 (0)