diff --git a/src/jrd/ini.epp b/src/jrd/ini.epp index 277e6ddab0..78a84bfe6d 100644 --- a/src/jrd/ini.epp +++ b/src/jrd/ini.epp @@ -88,83 +88,83 @@ namespace const jrd_trg triggers[] = { { "RDB$TRIGGER_1", (UCHAR) nam_user_privileges, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger3), trigger3, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_USER_PRIVILEGES_TRIGGER_1_BEFORE_UPDATE), + TRIGGER_BLR_RDB_USER_PRIVILEGES_TRIGGER_1_BEFORE_UPDATE, 0, ODS_8_0 }, { "RDB$TRIGGER_8", (UCHAR) nam_user_privileges, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(trigger2), trigger2, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(TRIGGER_BLR_RDB_USER_PRIVILEGES_TRIGGER_8_BEFORE_DELETE), + TRIGGER_BLR_RDB_USER_PRIVILEGES_TRIGGER_8_BEFORE_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_9", (UCHAR) nam_user_privileges, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_STORE, sizeof(trigger1), trigger1, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_STORE, sizeof(TRIGGER_BLR_RDB_USER_PRIVILEGES_TRIGGER_9_BEFORE_INSERT), + TRIGGER_BLR_RDB_USER_PRIVILEGES_TRIGGER_9_BEFORE_INSERT, 0, ODS_8_0 }, { "RDB$TRIGGER_2", (UCHAR) nam_trgs, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger4), trigger4, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_2_BEFORE_UPDATE), + TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_2_BEFORE_UPDATE, 0, ODS_8_0 }, { "RDB$TRIGGER_3", (UCHAR) nam_trgs, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(trigger4), trigger4, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_3_BEFORE_DELETE), + TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_3_BEFORE_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_26", (UCHAR) nam_rel_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_STORE, sizeof(trigger26), trigger26, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_STORE, sizeof(TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_26_BEFORE_INSERT), + TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_26_BEFORE_INSERT, 0, ODS_8_0 }, { "RDB$TRIGGER_25", (UCHAR) nam_rel_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger25), - trigger25, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_25_BEFORE_UPDATE), + TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_25_BEFORE_UPDATE, 0, ODS_8_0 }, { "RDB$TRIGGER_10", (UCHAR) nam_rel_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(trigger10), trigger10, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_10_BEFORE_DELETE), + TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_10_BEFORE_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_11", (UCHAR) nam_rel_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(trigger11), - trigger11, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_11_AFTER_DELETE), + TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_11_AFTER_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_12", (UCHAR) nam_ref_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_STORE, sizeof(trigger12), trigger12, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_STORE, sizeof(TRIGGER_BLR_RDB_REF_CONSTRAINTS_TRIGGER_12_BEFORE_INSERT), + TRIGGER_BLR_RDB_REF_CONSTRAINTS_TRIGGER_12_BEFORE_INSERT, 0, ODS_8_0 }, { "RDB$TRIGGER_13", (UCHAR) nam_ref_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger13), - trigger13, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_REF_CONSTRAINTS_TRIGGER_13_BEFORE_UPDATE), + TRIGGER_BLR_RDB_REF_CONSTRAINTS_TRIGGER_13_BEFORE_UPDATE, 0, ODS_8_0 }, { "RDB$TRIGGER_14", (UCHAR) nam_chk_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger14), - trigger14, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_14_BEFORE_UPDATE), + TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_14_BEFORE_UPDATE, 0, ODS_8_0 }, { "RDB$TRIGGER_15", (UCHAR) nam_chk_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(trigger15), trigger15, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_15_BEFORE_DELETE), + TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_15_BEFORE_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_16", (UCHAR) nam_chk_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(trigger16), - trigger16, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_16_AFTER_DELETE), + TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_16_AFTER_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_17", (UCHAR) nam_i_segments, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(trigger17), trigger17, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(TRIGGER_BLR_RDB_INDEX_SEGMENTS_TRIGGER_17_BEFORE_DELETE), + TRIGGER_BLR_RDB_INDEX_SEGMENTS_TRIGGER_17_BEFORE_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_18", (UCHAR) nam_i_segments, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger18), - trigger18, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_INDEX_SEGMENTS_TRIGGER_18_BEFORE_UPDATE), + TRIGGER_BLR_RDB_INDEX_SEGMENTS_TRIGGER_18_BEFORE_UPDATE, 0, ODS_8_0 }, { "RDB$TRIGGER_19", (UCHAR) nam_indices, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(trigger19), trigger19, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(TRIGGER_BLR_RDB_INDICES_TRIGGER_19_BEFORE_DELETE), + TRIGGER_BLR_RDB_INDICES_TRIGGER_19_BEFORE_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_20", (UCHAR) nam_indices, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger20), - trigger20, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_INDICES_TRIGGER_20_BEFORE_UPDATE), + TRIGGER_BLR_RDB_INDICES_TRIGGER_20_BEFORE_UPDATE, 0, ODS_8_0 }, { "RDB$TRIGGER_21", (UCHAR) nam_trgs, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(trigger21), trigger21, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_21_BEFORE_DELETE), + TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_21_BEFORE_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_22", (UCHAR) nam_trgs, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger22), - trigger22, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_22_BEFORE_UPDATE), + TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_22_BEFORE_UPDATE, 0, ODS_8_0 }, { "RDB$TRIGGER_23", (UCHAR) nam_r_fields, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(trigger23), trigger23, - 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_ERASE, sizeof(TRIGGER_BLR_RDB_RELATION_FIELDS_TRIGGER_23_BEFORE_DELETE), + TRIGGER_BLR_RDB_RELATION_FIELDS_TRIGGER_23_BEFORE_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_24", (UCHAR) nam_r_fields, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger24), - trigger24, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_RELATION_FIELDS_TRIGGER_24_BEFORE_UPDATE), + TRIGGER_BLR_RDB_RELATION_FIELDS_TRIGGER_24_BEFORE_UPDATE, 0, ODS_8_0 }, { "RDB$TRIGGER_27", (UCHAR) nam_r_fields, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(trigger27), - trigger27, 0, ODS_8_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(TRIGGER_BLR_RDB_RELATION_FIELDS_TRIGGER_27_AFTER_DELETE), + TRIGGER_BLR_RDB_RELATION_FIELDS_TRIGGER_27_AFTER_DELETE, 0, ODS_8_0 }, { "RDB$TRIGGER_34", (UCHAR) nam_rel_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(trigger34), - trigger34, TRG_ignore_perm, ODS_8_1 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_34_AFTER_DELETE), + TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_34_AFTER_DELETE, TRG_ignore_perm, ODS_8_1 }, { "RDB$TRIGGER_35", (UCHAR) nam_chk_constr, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(trigger35), - trigger35, TRG_ignore_perm, ODS_8_1 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.POST_ERASE, sizeof(TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_35_AFTER_DELETE), + TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_35_AFTER_DELETE, TRG_ignore_perm, ODS_8_1 }, { "RDB$TRIGGER_36", (UCHAR) nam_fields, - RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(trigger36), - trigger36, 0, ODS_11_0 }, + RDB$TRIGGERS.RDB$TRIGGER_TYPE.PRE_MODIFY, sizeof(TRIGGER_BLR_RDB_FIELDS_TRIGGER_36_BEFORE_UPDATE), + TRIGGER_BLR_RDB_FIELDS_TRIGGER_36_BEFORE_UPDATE, 0, ODS_11_0 }, { 0, 0, 0, 0, 0, 0 } }; diff --git a/src/jrd/trig.h b/src/jrd/trig.h index c80683474c..47510acb8c 100644 --- a/src/jrd/trig.h +++ b/src/jrd/trig.h @@ -86,2012 +86,1532 @@ static const Jrd::gen generators[] = }; -/* here is trigger 1, along with its messages */ - -/****** -static const TEXT trigger_1_msg_0 [] = "could not find object for GRANT"; -static const TEXT trigger_1_msg_1 [] = "could not find field for GRANT"; -static const TEXT trigger_1_msg_2 [] = "user does not have GRANT privileges for operation"; -static const TEXT trigger_1_msg_3 [] = "object has non-SQL security class defined"; -static const TEXT trigger_1_msg_4 [] = "field has non-SQL security class defined"; -static const TEXT trigger_1_msg_5 [] = "user does not have GRANT privileges on base table/view for operation"; -******/ - -static const UCHAR trigger1[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_missing, - blr_field, 1, 11, 'R','D','B','$','G','R','A','N','T','O','R', - blr_assignment, - blr_user_name, - blr_field, 1, 11, 'R','D','B','$','G','R','A','N','T','O','R', - blr_end, - - blr_if, - blr_eql, - blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', - blr_literal, blr_long, 0, 0,0,0,0, - blr_begin, - blr_for, - blr_rse, 1, - blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 6, - blr_boolean, - blr_eql, - blr_field, 6, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_end, - blr_begin, - blr_if, - blr_or, - blr_and, - blr_eql, - blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_user_name, - blr_and, - blr_eql, - blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_field, 1, 11, 'R','D','B','$','G','R','A','N','T','O','R', - blr_eql, - blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_field, 1, 8, 'R','D','B','$','U','S','E','R', - blr_eql, - blr_sys_function, 20, 'R','D','B','$','S','Y','S','T','E','M','_','P','R','I','V','I','L','E','G','E',1, - blr_literal, blr_short, 0, Jrd::GRANT_REVOKE_ON_ANY_OBJECT,0, - blr_literal, blr_bool, 1, - blr_begin, - blr_end, - blr_if, - blr_neq, - blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_user_name, - blr_begin, - blr_end, - blr_if, - blr_not, - blr_missing, - blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_begin, - blr_for, - blr_rse, 3, - blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 8, - blr_relation, 18, 'R','D','B','$','V','I','E','W','_','R','E','L','A','T','I','O','N','S', 9, - blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 10, - blr_boolean, - blr_and, - blr_eql, - blr_field, 8, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_and, - blr_eql, - blr_field, 8, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_and, - blr_not, - blr_missing, - blr_field, 8, 14, 'R','D','B','$','B','A','S','E','_','F','I','E','L','D', - blr_and, - blr_eql, - blr_field, 9, 13, 'R','D','B','$','V','I','E','W','_','N','A','M','E', - blr_field, 8, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_and, - blr_eql, - blr_field, 9, 16, 'R','D','B','$','V','I','E','W','_','C','O','N','T','E','X','T', - blr_field, 8, 16, 'R','D','B','$','V','I','E','W','_','C','O','N','T','E','X','T', - blr_eql, - blr_field, 9, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 10, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_end, - blr_begin, - blr_if, - blr_and, - blr_neq, - blr_field, 10, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_neq, - blr_sys_function, 20, 'R','D','B','$','S','Y','S','T','E','M','_','P','R','I','V','I','L','E','G','E',1, - blr_literal, blr_short, 0, Jrd::GRANT_REVOKE_ON_ANY_OBJECT,0, - blr_literal, blr_bool, 1, - blr_begin, - blr_if, - blr_not, - blr_any, - blr_rse, 1, - blr_relation, 19, 'R','D','B','$','U','S','E','R','_','P','R','I','V','I','L','E','G','E','S', 11, - blr_boolean, - blr_and, - blr_eql, - blr_field, 11, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 10, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_and, - blr_eql, - blr_field, 11, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', - blr_literal, blr_long, 0, 0,0,0,0, - blr_and, - blr_eql, - blr_field, 11, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', - blr_field, 1, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', - blr_and, - blr_eql, - blr_field, 11, 8, 'R','D','B','$','U','S','E','R', - blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_and, - blr_eql, - blr_field, 11, 13, 'R','D','B','$','U','S','E','R','_','T','Y','P','E', - blr_literal, blr_long, 0, 8,0,0,0, - blr_and, - blr_neq, - blr_field, 11, 16, 'R','D','B','$','G','R','A','N','T','_','O','P','T','I','O','N', - blr_literal, blr_long, 0, 0,0,0,0, - blr_or, - blr_missing, - blr_field, 11, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_eql, - blr_field, 11, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 8, 14, 'R','D','B','$','B','A','S','E','_','F','I','E','L','D', - blr_end, - blr_leave, 5, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_begin, - blr_for, - blr_rse, 2, - blr_relation, 18, 'R','D','B','$','V','I','E','W','_','R','E','L','A','T','I','O','N','S', 12, - blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 13, - blr_boolean, - blr_and, - blr_eql, - blr_field, 12, 13, 'R','D','B','$','V','I','E','W','_','N','A','M','E', - blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_eql, - blr_field, 12, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 13, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_end, - blr_begin, - blr_if, - blr_and, - blr_neq, - blr_field, 13, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_neq, - blr_sys_function, 20, 'R','D','B','$','S','Y','S','T','E','M','_','P','R','I','V','I','L','E','G','E',1, - blr_literal, blr_short, 0, Jrd::GRANT_REVOKE_ON_ANY_OBJECT,0, - blr_literal, blr_bool, 1, - blr_begin, - blr_if, - blr_not, - blr_any, - blr_rse, 1, - blr_relation, 19, 'R','D','B','$','U','S','E','R','_','P','R','I','V','I','L','E','G','E','S', 14, - blr_boolean, - blr_and, - blr_eql, - blr_field, 14, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 13, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_and, - blr_eql, - blr_field, 14, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', - blr_literal, blr_long, 0, 0,0,0,0, - blr_and, - blr_eql, - blr_field, 14, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', - blr_field, 1, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', - blr_and, - blr_eql, - blr_field, 14, 8, 'R','D','B','$','U','S','E','R', - blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', - blr_and, - blr_eql, - blr_field, 14, 13, 'R','D','B','$','U','S','E','R','_','T','Y','P','E', - blr_literal, blr_long, 0, 8,0,0,0, - blr_and, - blr_neq, - blr_field, 14, 16, 'R','D','B','$','G','R','A','N','T','_','O','P','T','I','O','N', - blr_literal, blr_long, 0, 0,0,0,0, - blr_missing, - blr_field, 14, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_end, - blr_leave, 5, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_if, - blr_missing, - blr_field, 6, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_modify, 6, 15, - blr_begin, - blr_assignment, - blr_cast, blr_varying2, CS_METADATA, 0, BLR_WORD(MAX_SQL_IDENTIFIER_LEN), - blr_concatenate, - blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', - blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_literal, blr_long, 0, 1,0,0,0, - blr_field, 15, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_end, - blr_if, - blr_not, - blr_starting, - blr_field, 6, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_cast, blr_varying2, CS_METADATA, 0, BLR_WORD(MAX_SQL_IDENTIFIER_LEN), - blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', - blr_leave, 3, - blr_end, - blr_end, - blr_if, - blr_not, - blr_missing, - blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_for, - blr_rse, 1, - blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 16, - blr_boolean, - blr_and, - blr_eql, - blr_field, 16, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_eql, - blr_field, 16, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_end, - blr_begin, - blr_if, - blr_missing, - blr_field, 16, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_modify, 16, 17, - blr_begin, - blr_assignment, - blr_concatenate, - blr_literal, blr_text, 9,0, 'S','Q','L','$','G','R','A','N','T', - blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_literal, blr_long, 0, 1,0,0,0, - blr_field, 17, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_end, - blr_if, - blr_not, - blr_starting, - blr_field, 16, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_literal, blr_text, 9,0, 'S','Q','L','$','G','R','A','N','T', - blr_leave, 4, - blr_end, - blr_end, - blr_end, - blr_end, - blr_if, - blr_eql, - blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', - blr_literal, blr_long, 0, 5,0,0,0, - blr_for, - blr_rse, 1, - blr_relation, 14, 'R','D','B','$','P','R','O','C','E','D','U','R','E','S', 18, - blr_boolean, - blr_and, - blr_missing, - blr_field, 18, 16, 'R','D','B','$','P','A','C','K','A','G','E','_','N','A','M','E', - blr_eql, - blr_field, 18, 18, 'R','D','B','$','P','R','O','C','E','D','U','R','E','_','N','A','M','E', - blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_end, - blr_begin, - blr_if, - blr_missing, - blr_field, 18, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_modify, 18, 20, - blr_begin, - blr_assignment, - blr_cast, blr_varying2, CS_METADATA, 0, BLR_WORD(MAX_SQL_IDENTIFIER_LEN), - blr_concatenate, - blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', - blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_literal, blr_long, 0, 1,0,0,0, - blr_field, 20, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_end, - blr_if, - blr_not, - blr_starting, - blr_field, 18, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_cast, blr_varying2, CS_METADATA, 0, BLR_WORD(MAX_SQL_IDENTIFIER_LEN), - blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', - blr_leave, 3, - blr_end, - blr_end, - blr_if, - blr_eql, - blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', - blr_literal, blr_long, 0, 15,0,0,0, - blr_for, - blr_rse, 1, - blr_relation, 13, 'R','D','B','$','F','U','N','C','T','I','O','N','S', 26, - blr_boolean, - blr_and, - blr_missing, - blr_field, 26, 16, 'R','D','B','$','P','A','C','K','A','G','E','_','N','A','M','E', - blr_eql, - blr_field, 26, 17, 'R','D','B','$','F','U','N','C','T','I','O','N','_','N','A','M','E', - blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_end, - blr_begin, - blr_if, - blr_missing, - blr_field, 26, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_modify, 26, 28, - blr_begin, - blr_assignment, - blr_cast, blr_varying2, CS_METADATA, 0, BLR_WORD(MAX_SQL_IDENTIFIER_LEN), - blr_concatenate, - blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', - blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_literal, blr_long, 0, 1,0,0,0, - blr_field, 28, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_end, - blr_if, - blr_not, - blr_starting, - blr_field, 26, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_cast, blr_varying2, CS_METADATA, 0, BLR_WORD(MAX_SQL_IDENTIFIER_LEN), - blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', - blr_leave, 3, - blr_end, - blr_end, - blr_if, - blr_eql, - blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', - blr_literal, blr_long, 0, 18,0,0,0, - blr_for, - blr_rse, 1, - blr_relation, 12, 'R','D','B','$','P','A','C','K','A','G','E','S', 22, - blr_boolean, - blr_eql, - blr_field, 22, 16, 'R','D','B','$','P','A','C','K','A','G','E','_','N','A','M','E', - blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_end, - blr_begin, - blr_if, - blr_missing, - blr_field, 22, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_modify, 22, 23, - blr_begin, - blr_assignment, - blr_cast, blr_varying2, CS_METADATA, 0, BLR_WORD(MAX_SQL_IDENTIFIER_LEN), - blr_concatenate, - blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', - blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_literal, blr_long, 0, 1,0,0,0, - blr_field, 23, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_end, - blr_if, - blr_not, - blr_starting, - blr_field, 22, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', - blr_cast, blr_varying2, CS_METADATA, 0, BLR_WORD(MAX_SQL_IDENTIFIER_LEN), - blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', - blr_leave, 3, - blr_end, - blr_end, - blr_end, - blr_end, - blr_eoc -}; - - - -static const UCHAR trigger2[] = -{ +static constexpr UCHAR TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_14_BEFORE_UPDATE[] = { blr_version5, - blr_if, - blr_not, - blr_missing, - blr_field, 0, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_for, - blr_rse, 1, - blr_relation, 19, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'F', 'I', 'E', 'L', 'D', 'S', 3, - blr_boolean, - blr_and, - blr_eql, - blr_field, 3, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 0, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_eql, - blr_field, 3, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_end, blr_begin, - blr_if, - blr_starting, - blr_field, 3, 18, 'R', 'D', 'B', '$', 'S', 'E', 'C', 'U', 'R', 'I', 'T', - 'Y', '_', 'C', 'L', 'A', 'S', 'S', - blr_literal, blr_text, 9, 0, 'S', 'Q', 'L', '$', 'G', 'R', 'A', 'N', 'T', - blr_begin, - blr_for, - blr_rse, 1, - blr_relation, 20, 'R', 'D', 'B', '$', 'S', 'E', 'C', 'U', 'R', 'I', 'T', - 'Y', '_', 'C', 'L', 'A', 'S', 'S', 'E', 'S', 4, - blr_boolean, - blr_eql, - blr_field, 4, 18, 'R', 'D', 'B', '$', 'S', 'E', 'C', 'U', 'R', 'I', 'T', - 'Y', '_', 'C', 'L', 'A', 'S', 'S', - blr_field, 3, 18, 'R', 'D', 'B', '$', 'S', 'E', 'C', 'U', 'R', 'I', 'T', - 'Y', '_', 'C', 'L', 'A', 'S', 'S', - blr_end, - blr_begin, - blr_erase, 4, - blr_end, - blr_modify, 3, 5, - blr_begin, - blr_assignment, - blr_null, - blr_field, 5, 18, 'R', 'D', 'B', '$', 'S', 'E', 'C', 'U', 'R', 'I', 'T', - 'Y', '_', 'C', 'L', 'A', 'S', 'S', - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_and, + blr_not, + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, blr_eoc }; - - -/****** -static const TEXT trigger_3_msg_0 [] = "cannot modify an existing user privilege"; -******/ - -static const UCHAR trigger3[] = -{ - blr_version5, - blr_leave, 0, - blr_eoc -}; - - -/****** -static const TEXT trigger_4_msg_0 [] = "cannot modify or erase a system trigger"; -******/ - -static const UCHAR trigger4[] = -{ - blr_version5, - blr_if, - blr_eql, - blr_field, 0, 15, 'R', 'D', 'B', '$', 'S', 'Y', 'S', 'T', 'E', 'M', - '_', 'F', 'L', 'A', 'G', - blr_literal, blr_short, 0, 1, 0, - blr_leave, 0, - blr_end, - blr_eoc -}; - - -/* define trigger add_constraint for rdb$relation_constraints */ - -/****** -static const TEXT trigger_26_msg_0 [] = "Cannot define constraints on VIEWS"; -static const TEXT trigger_26_msg_1 [] = "internal gds software consistency check (Invalid RDB$CONSTRAINT_TYPE)"; -static const TEXT trigger_26_msg_2 [] = "Attempt to define a second primary key for the same relation"; -******/ - -static const UCHAR trigger26[] = -{ +static constexpr UCHAR TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_15_BEFORE_DELETE[] = { blr_version5, blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 13, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', 'S', 3, - blr_boolean, - blr_and, - blr_eql, - blr_field, 3, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 1, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_not, - blr_missing, - blr_field, 3, 15, 'R', 'D', 'B', '$', 'V', 'I', 'E', 'W', '_', 'S', 'O', - 'U', 'R', 'C', 'E', - blr_end, - blr_leave, 1, - blr_end, - blr_if, - blr_not, - blr_or, - blr_eql, - blr_field, 1, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 6, 0, 'U', 'N', 'I', 'Q', 'U', 'E', - blr_or, - blr_eql, - blr_field, 1, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'P', 'R', 'I', 'M', 'A', 'R', 'Y', 32, 'K', - 'E', 'Y', - blr_or, - blr_eql, - blr_field, 1, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'F', 'O', 'R', 'E', 'I', 'G', 'N', 32, 'K', - 'E', 'Y', - blr_or, - blr_eql, - blr_field, 1, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 8, 0, 'N', 'O', 'T', 32, 'N', 'U', 'L', 'L', - blr_eql, - blr_field, 1, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 5, 0, 'C', 'H', 'E', 'C', 'K', - blr_leave, 2, - blr_end, - blr_if, - blr_eql, - blr_field, 1, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'P', 'R', 'I', 'M', 'A', 'R', 'Y', 32, 'K', - 'E', 'Y', - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_boolean, - blr_and, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'P', 'R', 'I', 'M', 'A', 'R', 'Y', 32, 'K', - 'E', 'Y', - blr_eql, - blr_field, 4, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 1, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_end, - blr_leave, 3, - blr_end, - blr_end, - blr_end, - blr_end, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, blr_eoc }; - - -/* define trigger update_constraint for rdb$relation_constraints */ - -/****** -static const TEXT trigger_25_msg_0 [] = "Can't update constraints (RDB$RELATION_CONSTRAINTS)."; -******/ - -static const UCHAR trigger25[] = -{ +static constexpr UCHAR TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_16_AFTER_DELETE[] = { blr_version5, blr_begin, - blr_leave, 1, - blr_end, + blr_for, + blr_rse, 2, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 4, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_eql, + blr_field, 3, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_modify, 3, 5, + blr_begin, + blr_assignment, + blr_literal, blr_long, 0, 0,0,0,0, + blr_field, 5, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', + blr_end, + blr_end, + blr_for, + blr_rse, 2, + blr_relation, 12, 'R','D','B','$','T','R','I','G','G','E','R','S', 6, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 7, + blr_boolean, + blr_and, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_and, + blr_eql, + blr_field, 6, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 7, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 6, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 6, + blr_end, + blr_end, blr_eoc }; +static constexpr UCHAR TRIGGER_BLR_RDB_CHECK_CONSTRAINTS_TRIGGER_35_AFTER_DELETE[] = { + blr_version5, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 12, 'R','D','B','$','T','R','I','G','G','E','R','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_eql, + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 3, + blr_end, + blr_end, + blr_eoc +}; +static constexpr UCHAR TRIGGER_BLR_RDB_FIELDS_TRIGGER_36_BEFORE_UPDATE[] = { + blr_version5, + blr_begin, + blr_if, + blr_not, + blr_and, + blr_eql, + blr_field, 0, 16, 'R','D','B','$','F','I','E','L','D','_','L','E','N','G','T','H', + blr_field, 1, 16, 'R','D','B','$','F','I','E','L','D','_','L','E','N','G','T','H', + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','T','Y','P','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','T','Y','P','E', + blr_and, + blr_eql, + blr_field, 0, 16, 'R','D','B','$','C','O','L','L','A','T','I','O','N','_','I','D', + blr_field, 1, 16, 'R','D','B','$','C','O','L','L','A','T','I','O','N','_','I','D', + blr_eql, + blr_field, 0, 20, 'R','D','B','$','C','H','A','R','A','C','T','E','R','_','S','E','T','_','I','D', + blr_field, 1, 20, 'R','D','B','$','C','H','A','R','A','C','T','E','R','_','S','E','T','_','I','D', + blr_if, + blr_any, + blr_rse, 4, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 5, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 6, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 6, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 6, 16, 'R','D','B','$','F','I','E','L','D','_','S','O','U','R','C','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_eoc +}; -/* define trigger pre_delete_constraint for rdb$relation_constraints */ +static constexpr UCHAR TRIGGER_BLR_RDB_INDEX_SEGMENTS_TRIGGER_17_BEFORE_DELETE[] = { + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, + blr_eoc +}; -/****** -static const TEXT trigger_10_msg_0 [] = "Cannot delete PRIMARY KEY being used in FOREIGN KEY definition."; -static const TEXT trigger_10_msg_1 [] = "Column used in a PRIMARY constraint must be NOT NULL."; -******/ +static constexpr UCHAR TRIGGER_BLR_RDB_INDEX_SEGMENTS_TRIGGER_18_BEFORE_UPDATE[] = { + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_if, + blr_not, + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 0, 18, 'R','D','B','$','F','I','E','L','D','_','P','O','S','I','T','I','O','N', + blr_field, 1, 18, 'R','D','B','$','F','I','E','L','D','_','P','O','S','I','T','I','O','N', + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_eoc +}; -/*** -create trigger rdb$trigger_10 before delete on rdb$relation_constraints -as -begin - if (old.rdb$constraint_type in ('PRIMARY KEY', 'UNIQUE')) then - begin - if (exists( - select 1 - from rdb$ref_constraints - where rdb$const_name_uq = old.rdb$constraint_name)) then - begin - exit; -- FIXME: blr_leave, 1 - end - end +static constexpr UCHAR TRIGGER_BLR_RDB_INDICES_TRIGGER_19_BEFORE_DELETE[] = { + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, + blr_eoc +}; - if (old.rdb$constraint_type = 'FOREIGN KEY') then - begin - delete from rdb$ref_constraints - where rdb$constraint_name = old.rdb$constraint_name; - end +static constexpr UCHAR TRIGGER_BLR_RDB_INDICES_TRIGGER_20_BEFORE_UPDATE[] = { + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_not, + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 0, 12, 'R','D','B','$','I','N','D','E','X','_','I','D', + blr_field, 1, 12, 'R','D','B','$','I','N','D','E','X','_','I','D', + blr_and, + blr_eql, + blr_field, 0, 17, 'R','D','B','$','S','E','G','M','E','N','T','_','C','O','U','N','T', + blr_field, 1, 17, 'R','D','B','$','S','E','G','M','E','N','T','_','C','O','U','N','T', + blr_eql, + blr_field, 0, 15, 'R','D','B','$','F','O','R','E','I','G','N','_','K','E','Y', + blr_field, 1, 15, 'R','D','B','$','F','O','R','E','I','G','N','_','K','E','Y', + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_for, + blr_rse, 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 5, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 6, + blr_boolean, + blr_and, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 6, 15, 'R','D','B','$','F','O','R','E','I','G','N','_','K','E','Y', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 1, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_literal, blr_long, 0, 1,0,0,0, + blr_or, + blr_eql, + blr_field, 0, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_missing, + blr_field, 0, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_end, + blr_begin, + blr_leave, 2, + blr_end, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 7, + blr_boolean, + blr_and, + blr_eql, + blr_field, 7, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_or, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_or, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 6,0, 'U','N','I','Q','U','E', + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_end, + blr_begin, + blr_if, + blr_and, + blr_eql, + blr_field, 1, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_literal, blr_long, 0, 1,0,0,0, + blr_or, + blr_eql, + blr_field, 0, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_missing, + blr_field, 0, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_begin, + blr_if, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_leave, 2, + blr_leave, 3, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc +}; - if (old.rdb$constraint_type = 'NOT NULL') then - begin - for select idxseg.rdb$index_name - from rdb$check_constraints chkcon, - rdb$relation_fields rfl, - rdb$fields fld, - rdb$indices ind, - rdb$index_segments idxseg - where chkcon.rdb$constraint_name = old.rdb$constraint_name and - rfl.rdb$field_name = chkcon.rdb$trigger_name and - rfl.rdb$relation_name = old.rdb$relation_name and - rfl.rdb$field_name = idxseg.rdb$field_name and - fld.rdb$field_name = rfl.rdb$field_source and - (fld.rdb$null_flag is null or fld.rdb$null_flag = 0) and - ind.rdb$relation_name = old.rdb$relation_name and - ind.rdb$index_name = idxseg.rdb$index_name - as cursor c1 - do - begin - if (exists( - select 1 - from rdb$relation_constraints - where rdb$index_name = :c1.rdb$index_name and - rdb$constraint_type = 'PRIMARY KEY')) then - begin - exit; -- FIXME: blr_leave, 2 - end - end - end -end -***/ +static constexpr UCHAR TRIGGER_BLR_RDB_REF_CONSTRAINTS_TRIGGER_12_BEFORE_INSERT[] = { + blr_version5, + blr_begin, + blr_if, + blr_not, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_end, + blr_leave, 1, + blr_end, + blr_if, + blr_not, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','C','O','N','S','T','_','N','A','M','E','_','U','Q', + blr_or, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 6,0, 'U','N','I','Q','U','E', + blr_end, + blr_leave, 2, + blr_end, + blr_end, + blr_eoc +}; -static const UCHAR trigger10[] = -{ +static constexpr UCHAR TRIGGER_BLR_RDB_REF_CONSTRAINTS_TRIGGER_13_BEFORE_UPDATE[] = { + blr_version5, + blr_begin, + blr_leave, 1, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_10_BEFORE_DELETE[] = { blr_version5, blr_begin, blr_label, 0, - blr_begin, - blr_begin, - blr_if, - blr_or, - blr_eql, - blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', - blr_literal, blr_text2, 0,0, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', - blr_eql, - blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', - blr_literal, blr_text2, 0,0, 6,0, 'U','N','I','Q','U','E', - blr_begin, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 19, 'R','D','B','$','R','E','F','_','C','O','N','S','T','R','A','I','N','T','S', 2, - blr_boolean, - blr_eql, - blr_field, 2, 17, 'R','D','B','$','C','O','N','S','T','_','N','A','M','E','_','U','Q', - blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', - blr_end, - blr_begin, - blr_begin, - blr_leave, 1, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_if, - blr_eql, - blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', - blr_literal, blr_text2, 0,0, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', - blr_begin, - blr_begin, - blr_for, - blr_rse, 1, - blr_relation, 19, 'R','D','B','$','R','E','F','_','C','O','N','S','T','R','A','I','N','T','S', 3, - blr_boolean, - blr_eql, - blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', - blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', - blr_end, - blr_erase, 3, - blr_end, - blr_end, - blr_end, - blr_if, - blr_eql, - blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', - blr_literal, blr_text2, 0,0, 8,0, 'N','O','T',32,'N','U','L','L', - blr_begin, - blr_begin, - blr_label, 1, - blr_for, - blr_rse, 5, - blr_relation2, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', - 9, 'C','1',32,'C','H','K','C','O','N', 4, - blr_relation2, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', - 6, 'C','1',32,'R','F','L', 5, - blr_relation2, 10, 'R','D','B','$','F','I','E','L','D','S', - 6, 'C','1',32,'F','L','D', 6, - blr_relation2, 11, 'R','D','B','$','I','N','D','I','C','E','S', - 6, 'C','1',32,'I','N','D', 7, - blr_relation2, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', - 9, 'C','1',32,'I','D','X','S','E','G', 8, - blr_boolean, - blr_and, - blr_and, - blr_and, - blr_and, - blr_and, - blr_and, - blr_and, - blr_eql, - blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', - blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', - blr_eql, - blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 4, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', - blr_eql, - blr_field, 5, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_eql, - blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 8, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_eql, - blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 5, 16, 'R','D','B','$','F','I','E','L','D','_','S','O','U','R','C','E', - blr_or, - blr_missing, - blr_field, 6, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', - blr_eql, - blr_field, 6, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', - blr_literal, blr_long, 0, 0,0,0,0, - blr_eql, - blr_field, 7, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_eql, - blr_field, 7, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_field, 8, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_end, - blr_begin, - blr_begin, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 9, - blr_boolean, - blr_and, - blr_eql, - blr_field, 9, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_derived_expr, 1, 8, - blr_field, 8, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_eql, - blr_field, 9, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', - blr_literal, blr_text2, 0,0, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', - blr_end, - blr_begin, - blr_begin, - blr_leave, 2, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, + blr_begin, + blr_begin, + blr_if, + blr_or, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 6,0, 'U','N','I','Q','U','E', + blr_begin, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','R','E','F','_','C','O','N','S','T','R','A','I','N','T','S', 2, + blr_boolean, + blr_eql, + blr_field, 2, 17, 'R','D','B','$','C','O','N','S','T','_','N','A','M','E','_','U','Q', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_begin, + blr_begin, + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_begin, + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','R','E','F','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_erase, 3, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 8,0, 'N','O','T',32,'N','U','L','L', + blr_begin, + blr_begin, + blr_label, 1, + blr_for, + blr_rse, 5, + blr_relation2, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', + 9, 'C','1',32,'C','H','K','C','O','N', 4, + blr_relation2, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', + 6, 'C','1',32,'R','F','L', 5, + blr_relation2, 10, 'R','D','B','$','F','I','E','L','D','S', + 6, 'C','1',32,'F','L','D', 6, + blr_relation2, 11, 'R','D','B','$','I','N','D','I','C','E','S', + 6, 'C','1',32,'I','N','D', 7, + blr_relation2, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', + 9, 'C','1',32,'I','D','X','S','E','G', 8, + blr_boolean, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 4, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_eql, + blr_field, 5, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 8, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 5, 16, 'R','D','B','$','F','I','E','L','D','_','S','O','U','R','C','E', + blr_or, + blr_missing, + blr_field, 6, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', + blr_eql, + blr_field, 6, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', + blr_literal, blr_long, 0, 0,0,0,0, + blr_eql, + blr_field, 7, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 7, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 8, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_begin, + blr_begin, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 9, + blr_boolean, + blr_and, + blr_eql, + blr_field, 9, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_derived_expr, 1, 8, + blr_field, 8, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_eql, + blr_field, 9, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_end, + blr_begin, + blr_begin, + blr_leave, 2, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_11_AFTER_DELETE[] = { + blr_version5, + blr_begin, + blr_if, + blr_or, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_or, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 6,0, 'U','N','I','Q','U','E', + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 3, + blr_boolean, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 3, + blr_for, + blr_rse, 1, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 4, + blr_boolean, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 4, + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 5, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 6, + blr_boolean, + blr_and, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 5, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 6, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 5, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 5, + blr_modify, 6, 7, + blr_begin, + blr_assignment, + blr_literal, blr_long, 0, 0,0,0,0, + blr_field, 7, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 8, + blr_boolean, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 8, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 8, + blr_for, + blr_rse, 1, + blr_relation, 12, 'R','D','B','$','T','R','I','G','G','E','R','S', 9, + blr_boolean, + blr_and, + blr_eql, + blr_field, 9, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 8, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_eql, + blr_field, 9, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 9, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_25_BEFORE_UPDATE[] = { + blr_version5, + blr_begin, + blr_leave, 1, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_26_BEFORE_INSERT[] = { + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 3, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_not, + blr_missing, + blr_field, 3, 15, 'R','D','B','$','V','I','E','W','_','S','O','U','R','C','E', + blr_end, + blr_leave, 1, + blr_end, + blr_if, + blr_not, + blr_or, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 6,0, 'U','N','I','Q','U','E', + blr_or, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_or, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_or, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_leave, 2, + blr_end, + blr_if, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_eql, + blr_field, 4, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_leave, 3, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_RELATION_CONSTRAINTS_TRIGGER_34_AFTER_DELETE[] = { + blr_version5, + blr_begin, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 3, + blr_for, + blr_rse, 1, + blr_relation, 12, 'R','D','B','$','T','R','I','G','G','E','R','S', 4, + blr_boolean, + blr_eql, + blr_field, 4, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 4, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_RELATION_FIELDS_TRIGGER_23_BEFORE_DELETE[] = { + blr_version5, + blr_begin, + blr_for, + blr_rse, 3, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 5, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 6, + blr_boolean, + blr_and, + blr_eql, + blr_field, 6, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_neq, + blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_erase, 4, + blr_end, + blr_for, + blr_rse, 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 7, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 8, + blr_relation, 16, 'R','D','B','$','D','E','P','E','N','D','E','N','C','I','E','S', 9, + blr_boolean, + blr_and, + blr_and, + blr_eql, + blr_field, 7, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_and, + blr_eql, + blr_field, 8, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 9, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 9, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 2,0,0,0, + blr_and, + blr_eql, + blr_field, 9, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O','N','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_and, + blr_eql, + blr_field, 9, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 9, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 8, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 16, 'R','D','B','$','D','E','P','E','N','D','E','N','C','I','E','S', 10, + blr_boolean, + blr_and, + blr_eql, + blr_field, 10, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_','N','A','M','E', + blr_field, 8, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 10, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 2,0,0,0, + blr_and, + blr_eql, + blr_field, 10, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O','N','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_and, + blr_eql, + blr_field, 10, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_neq, + blr_field, 10, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_erase, 7, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_RELATION_FIELDS_TRIGGER_24_BEFORE_UPDATE[] = { + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 3, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 5, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_neq, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_leave, 1, + blr_end, + blr_if, + blr_not, + blr_and, + blr_eql, + blr_field, 0, 16, 'R','D','B','$','F','I','E','L','D','_','S','O','U','R','C','E', + blr_field, 1, 16, 'R','D','B','$','F','I','E','L','D','_','S','O','U','R','C','E', + blr_eql, + blr_field, 0, 16, 'R','D','B','$','C','O','L','L','A','T','I','O','N','_','I','D', + blr_field, 1, 16, 'R','D','B','$','C','O','L','L','A','T','I','O','N','_','I','D', + blr_leave, 2, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_RELATION_FIELDS_TRIGGER_27_AFTER_DELETE[] = { + blr_version5, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 4, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_end, + blr_begin, + blr_erase, 4, + blr_erase, 3, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_2_BEFORE_UPDATE[] = { + blr_version5, + blr_if, + blr_eql, + blr_field, 0, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', + blr_literal, blr_short, 0, 1,0, + blr_leave, 0, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_21_BEFORE_DELETE[] = { + blr_version5, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_end, + blr_begin, + blr_leave, 1, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_22_BEFORE_UPDATE[] = { + blr_version5, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_end, + blr_begin, + blr_if, + blr_not, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_equiv, + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 1, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_equiv, + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_equiv, + blr_field, 0, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','S','E','Q','U','E','N','C','E', + blr_field, 1, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','S','E','Q','U','E','N','C','E', + blr_equiv, + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','T','Y','P','E', + blr_field, 1, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','T','Y','P','E', + blr_equiv, + blr_field, 0, 15, 'R','D','B','$','T','R','I','G','G','E','R','_','B','L','R', + blr_field, 1, 15, 'R','D','B','$','T','R','I','G','G','E','R','_','B','L','R', + blr_equiv, + blr_field, 0, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','I','N','A','C','T','I','V','E', + blr_field, 1, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','I','N','A','C','T','I','V','E', + blr_equiv, + blr_field, 0, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', + blr_field, 1, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', + blr_equiv, + blr_field, 0, 9, 'R','D','B','$','F','L','A','G','S', + blr_field, 1, 9, 'R','D','B','$','F','L','A','G','S', + blr_equiv, + blr_field, 0, 14, 'R','D','B','$','D','E','B','U','G','_','I','N','F','O', + blr_field, 1, 14, 'R','D','B','$','D','E','B','U','G','_','I','N','F','O', + blr_begin, + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_TRIGGERS_TRIGGER_3_BEFORE_DELETE[] = { + blr_version5, + blr_if, + blr_eql, + blr_field, 0, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', + blr_literal, blr_short, 0, 1,0, + blr_leave, 0, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_USER_PRIVILEGES_TRIGGER_1_BEFORE_UPDATE[] = { + blr_version5, + blr_leave, 0, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_USER_PRIVILEGES_TRIGGER_8_BEFORE_DELETE[] = { + blr_version5, + blr_if, + blr_not, + blr_missing, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_for, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 3, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 3, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_starting, + blr_field, 3, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_text, 9,0, 'S','Q','L','$','G','R','A','N','T', + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 20, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S','E','S', 4, + blr_boolean, + blr_eql, + blr_field, 4, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_field, 3, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_begin, + blr_erase, 4, + blr_end, + blr_modify, 3, 5, + blr_begin, + blr_assignment, + blr_null, + blr_field, 5, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc +}; + +static constexpr UCHAR TRIGGER_BLR_RDB_USER_PRIVILEGES_TRIGGER_9_BEFORE_INSERT[] = { + blr_version5, + blr_begin, + blr_if, + blr_missing, + blr_field, 1, 11, 'R','D','B','$','G','R','A','N','T','O','R', + blr_assignment, + blr_user_name, + blr_field, 1, 11, 'R','D','B','$','G','R','A','N','T','O','R', + blr_end, + blr_if, + blr_eql, + blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 6, + blr_boolean, + blr_eql, + blr_field, 6, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_or, + blr_and, + blr_eql, + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_user_name, + blr_and, + blr_eql, + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_field, 1, 11, 'R','D','B','$','G','R','A','N','T','O','R', + blr_eql, + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_field, 1, 8, 'R','D','B','$','U','S','E','R', + blr_eql, + blr_sys_function, 20, 'R','D','B','$','S','Y','S','T','E','M','_','P','R','I','V','I','L','E','G','E',1, + blr_literal, blr_short, 0, 21,0, + blr_literal, blr_bool, 1, + blr_begin, + blr_end, + blr_if, + blr_neq, + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_user_name, + blr_begin, + blr_end, + blr_if, + blr_not, + blr_missing, + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_begin, + blr_for, + blr_rse, 3, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 8, + blr_relation, 18, 'R','D','B','$','V','I','E','W','_','R','E','L','A','T','I','O','N','S', 9, + blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 10, + blr_boolean, + blr_and, + blr_eql, + blr_field, 8, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 8, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_not, + blr_missing, + blr_field, 8, 14, 'R','D','B','$','B','A','S','E','_','F','I','E','L','D', + blr_and, + blr_eql, + blr_field, 9, 13, 'R','D','B','$','V','I','E','W','_','N','A','M','E', + blr_field, 8, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 9, 16, 'R','D','B','$','V','I','E','W','_','C','O','N','T','E','X','T', + blr_field, 8, 16, 'R','D','B','$','V','I','E','W','_','C','O','N','T','E','X','T', + blr_eql, + blr_field, 9, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 10, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_and, + blr_neq, + blr_field, 10, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_neq, + blr_sys_function, 20, 'R','D','B','$','S','Y','S','T','E','M','_','P','R','I','V','I','L','E','G','E',1, + blr_literal, blr_short, 0, 21,0, + blr_literal, blr_bool, 1, + blr_begin, + blr_if, + blr_not, + blr_any, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','U','S','E','R','_','P','R','I','V','I','L','E','G','E','S', 11, + blr_boolean, + blr_and, + blr_eql, + blr_field, 11, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 10, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 11, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_and, + blr_eql, + blr_field, 11, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', + blr_field, 1, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', + blr_and, + blr_eql, + blr_field, 11, 8, 'R','D','B','$','U','S','E','R', + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 11, 13, 'R','D','B','$','U','S','E','R','_','T','Y','P','E', + blr_literal, blr_long, 0, 8,0,0,0, + blr_and, + blr_neq, + blr_field, 11, 16, 'R','D','B','$','G','R','A','N','T','_','O','P','T','I','O','N', + blr_literal, blr_long, 0, 0,0,0,0, + blr_or, + blr_missing, + blr_field, 11, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 11, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 8, 14, 'R','D','B','$','B','A','S','E','_','F','I','E','L','D', + blr_end, + blr_leave, 5, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 18, 'R','D','B','$','V','I','E','W','_','R','E','L','A','T','I','O','N','S', 12, + blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 13, + blr_boolean, + blr_and, + blr_eql, + blr_field, 12, 13, 'R','D','B','$','V','I','E','W','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 12, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 13, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_and, + blr_neq, + blr_field, 13, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_neq, + blr_sys_function, 20, 'R','D','B','$','S','Y','S','T','E','M','_','P','R','I','V','I','L','E','G','E',1, + blr_literal, blr_short, 0, 21,0, + blr_literal, blr_bool, 1, + blr_begin, + blr_if, + blr_not, + blr_any, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','U','S','E','R','_','P','R','I','V','I','L','E','G','E','S', 14, + blr_boolean, + blr_and, + blr_eql, + blr_field, 14, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 13, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 14, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_and, + blr_eql, + blr_field, 14, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', + blr_field, 1, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', + blr_and, + blr_eql, + blr_field, 14, 8, 'R','D','B','$','U','S','E','R', + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 14, 13, 'R','D','B','$','U','S','E','R','_','T','Y','P','E', + blr_literal, blr_long, 0, 8,0,0,0, + blr_and, + blr_neq, + blr_field, 14, 16, 'R','D','B','$','G','R','A','N','T','_','O','P','T','I','O','N', + blr_literal, blr_long, 0, 0,0,0,0, + blr_missing, + blr_field, 14, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_leave, 5, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_missing, + blr_field, 6, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 6, 15, + blr_begin, + blr_assignment, + blr_cast, blr_varying2, 4,0, 252,0, + blr_concatenate, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 15, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_if, + blr_not, + blr_starting, + blr_field, 6, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_cast, blr_varying2, 4,0, 252,0, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_leave, 3, + blr_end, + blr_end, + blr_if, + blr_not, + blr_missing, + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_for, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 16, + blr_boolean, + blr_and, + blr_eql, + blr_field, 16, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 16, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_missing, + blr_field, 16, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 16, 17, + blr_begin, + blr_assignment, + blr_concatenate, + blr_literal, blr_text, 9,0, 'S','Q','L','$','G','R','A','N','T', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 17, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_if, + blr_not, + blr_starting, + blr_field, 16, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_text, 9,0, 'S','Q','L','$','G','R','A','N','T', + blr_leave, 4, + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 5,0,0,0, + blr_for, + blr_rse, 1, + blr_relation, 14, 'R','D','B','$','P','R','O','C','E','D','U','R','E','S', 18, + blr_boolean, + blr_and, + blr_missing, + blr_field, 18, 16, 'R','D','B','$','P','A','C','K','A','G','E','_','N','A','M','E', + blr_eql, + blr_field, 18, 18, 'R','D','B','$','P','R','O','C','E','D','U','R','E','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_missing, + blr_field, 18, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 18, 20, + blr_begin, + blr_assignment, + blr_cast, blr_varying2, 4,0, 252,0, + blr_concatenate, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 20, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_if, + blr_not, + blr_starting, + blr_field, 18, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_cast, blr_varying2, 4,0, 252,0, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_leave, 3, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 15,0,0,0, + blr_for, + blr_rse, 1, + blr_relation, 13, 'R','D','B','$','F','U','N','C','T','I','O','N','S', 26, + blr_boolean, + blr_and, + blr_missing, + blr_field, 26, 16, 'R','D','B','$','P','A','C','K','A','G','E','_','N','A','M','E', + blr_eql, + blr_field, 26, 17, 'R','D','B','$','F','U','N','C','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_missing, + blr_field, 26, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 26, 28, + blr_begin, + blr_assignment, + blr_cast, blr_varying2, 4,0, 252,0, + blr_concatenate, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 28, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_if, + blr_not, + blr_starting, + blr_field, 26, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_cast, blr_varying2, 4,0, 252,0, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_leave, 3, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 18,0,0,0, + blr_for, + blr_rse, 1, + blr_relation, 12, 'R','D','B','$','P','A','C','K','A','G','E','S', 22, + blr_boolean, + blr_eql, + blr_field, 22, 16, 'R','D','B','$','P','A','C','K','A','G','E','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_missing, + blr_field, 22, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 22, 23, + blr_begin, + blr_assignment, + blr_cast, blr_varying2, 4,0, 252,0, + blr_concatenate, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 23, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_if, + blr_not, + blr_starting, + blr_field, 22, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_cast, blr_varying2, 4,0, 252,0, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_leave, 3, + blr_end, + blr_end, + blr_end, blr_end, blr_eoc }; -/* define trigger post_delete_constraint for rdb$relation_constraints */ - -static const UCHAR trigger11[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_or, - blr_eql, - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'F', 'O', 'R', 'E', 'I', 'G', 'N', 32, 'K', - 'E', 'Y', - blr_or, - blr_eql, - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'P', 'R', 'I', 'M', 'A', 'R', 'Y', 32, 'K', - 'E', 'Y', - blr_eql, - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 6, 0, 'U', 'N', 'I', 'Q', 'U', 'E', - blr_begin, - blr_for, - blr_rse, 1, - blr_relation, 11, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'I', 'C', 'E', 'S', - 3, - blr_boolean, - blr_eql, - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 3, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_end, - blr_begin, - blr_erase, 3, - blr_for, - blr_rse, 1, - blr_relation, 18, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'S', - 'E', 'G', 'M', 'E', 'N', 'T', 'S', 4, - blr_boolean, - blr_eql, - blr_field, 4, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 3, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_end, - blr_begin, - blr_erase, 4, - blr_end, - blr_end, - blr_end, - blr_end, - blr_if, - blr_eql, - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 8, 0, 'N', 'O', 'T', 32, 'N', 'U', 'L', 'L', - blr_begin, - blr_for, - blr_rse, 2, - blr_relation, 21, 'R', 'D', 'B', '$', 'C', 'H', 'E', 'C', 'K', '_', 'C', - 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 5, - blr_relation, 19, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'F', 'I', 'E', 'L', 'D', 'S', 6, - blr_boolean, - blr_and, - blr_eql, - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 5, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 6, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 0, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_eql, - blr_field, 6, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_field, 5, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_end, - blr_begin, - blr_erase, 5, - blr_modify, 6, 7, - blr_begin, - blr_assignment, - blr_literal, blr_long, 0, 0, 0, 0, 0, - blr_field, 7, 13, 'R', 'D', 'B', '$', 'N', 'U', 'L', 'L', '_', 'F', 'L', - 'A', 'G', - blr_end, - blr_end, - blr_end, - blr_end, - blr_if, - blr_eql, - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 5, 0, 'C', 'H', 'E', 'C', 'K', - blr_begin, - blr_for, - blr_rse, 1, - blr_relation, 21, 'R', 'D', 'B', '$', 'C', 'H', 'E', 'C', 'K', '_', 'C', - 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 8, - blr_boolean, - blr_eql, - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 8, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_end, - blr_begin, - blr_erase, 8, - blr_for, - blr_rse, 1, - blr_relation, 12, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - 'S', 9, - blr_boolean, - blr_and, - blr_eql, - blr_field, 9, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_field, 8, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_eql, - blr_field, 9, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 0, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_end, - blr_begin, - blr_erase, 9, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger add_ref_constraint for rdb$ref_constraints */ - -/****** -static const TEXT trigger_12_msg_0 [] = "Name of Referential Constraint not defined in constraints relation."; -static const TEXT trigger_12_msg_1 [] = "Non-existent Primary or Unique key specifed for Foreign Key."; -******/ - -static const UCHAR trigger12[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_not, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_boolean, - blr_and, - blr_eql, - blr_field, 3, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 1, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_eql, - blr_field, 3, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'F', 'O', 'R', 'E', 'I', 'G', 'N', 32, 'K', - 'E', 'Y', - blr_end, - blr_leave, 1, - blr_end, - blr_if, - blr_not, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_boolean, - blr_and, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 1, 17, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', '_', 'N', - 'A', 'M', 'E', '_', 'U', 'Q', - blr_or, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'P', 'R', 'I', 'M', 'A', 'R', 'Y', 32, 'K', - 'E', 'Y', - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 6, 0, 'U', 'N', 'I', 'Q', 'U', 'E', - blr_end, - blr_leave, 2, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger update_ref_constraint for rdb$ref_constraints */ - -/****** -static const TEXT trigger_13_msg_0 [] = "Can't update constraints (RDB$REF_CONSTRAINTS)."; -******/ - -static const UCHAR trigger13[] = -{ - blr_version5, - blr_begin, - blr_leave, 1, - blr_end, - blr_eoc -}; - - -/* define trigger update_check_constraint for rdb$check_constraints */ - -/****** -static const TEXT trigger_14_msg_0 [] = "Can't update constraints (RDB$CHECK_CONSTRAINTS)."; -******/ - -static const UCHAR trigger14[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 24, - 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', 'N', '_', - 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_boolean, - blr_and, - blr_not, - blr_eql, - blr_field, 3, 19, - 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', '_', - 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 8, 0, 'N', 'O', 'T', 32, 'N', 'U', 'L', 'L', - blr_eql, - blr_field, 3, 19, - 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', '_', - 'N', 'A', 'M', 'E', - blr_field, 0, 19, - 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', '_', - 'N', 'A', 'M', 'E', - blr_end, - blr_leave, 1, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger pre_delete_check_constraint for rdb$check_constraints */ - -/****** -static const TEXT trigger_15_msg_0 [] = "Can't delete CHECK constraint entry (RDB$CHECK_CONSTRAINTS)"; -******/ - -static const UCHAR trigger15[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_boolean, - blr_eql, - blr_field, 3, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_end, - blr_leave, 1, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger post_delete_check_constraint for rdb$check_constraints */ - -static const UCHAR trigger16[] = -{ - blr_version5, - blr_begin, - blr_for, - blr_rse, 2, - blr_relation, 19, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'F', 'I', 'E', 'L', 'D', 'S', 3, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_boolean, - blr_and, - blr_eql, - blr_field, 3, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 4, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 8, 0, 'N', 'O', 'T', 32, 'N', 'U', 'L', 'L', - blr_eql, - blr_field, 3, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_end, - blr_begin, - blr_modify, 3, 5, - blr_begin, - blr_assignment, - blr_literal, blr_long, 0, 0, 0, 0, 0, - blr_field, 5, 13, 'R', 'D', 'B', '$', 'N', 'U', 'L', 'L', '_', 'F', 'L', - 'A', 'G', - blr_end, - blr_end, - blr_for, - blr_rse, 2, - blr_relation, 12, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - 'S', 6, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 7, - blr_boolean, - blr_and, - blr_eql, - blr_field, 7, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 7, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 5, 0, 'C', 'H', 'E', 'C', 'K', - blr_and, - blr_eql, - blr_field, 6, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 7, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_eql, - blr_field, 6, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_field, 0, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_end, - blr_begin, - blr_erase, 6, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger delete_constraint_segs for rdb$index_segments */ - -/****** -static const TEXT trigger_17_msg_0 [] = "Can't delete index segment used by an Integrity Constraint"; -******/ - -static const UCHAR trigger17[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_boolean, - blr_eql, - blr_field, 3, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_end, - blr_leave, 1, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger update_constraint_segs for rdb$index_segments */ - -/****** -static const TEXT trigger_18_msg_0 [] = "Can't update index segment used by an Integrity Constraint"; -******/ - -static const UCHAR trigger18[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_boolean, - blr_eql, - blr_field, 3, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_end, - blr_if, - blr_not, - blr_and, - blr_eql, - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 1, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 0, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_field, 1, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_eql, - blr_field, 0, 18, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'P', - 'O', 'S', 'I', 'T', 'I', 'O', 'N', - blr_field, 1, 18, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'P', - 'O', 'S', 'I', 'T', 'I', 'O', 'N', - blr_leave, 1, - blr_end, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger delete_constraint_idx for rdb$indices */ - -/****** -static const TEXT trigger_19_msg_0 [] = "Can't delete index used by an Integrity Constraint"; -******/ - -static const UCHAR trigger19[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_boolean, - blr_eql, - blr_field, 3, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_end, - blr_leave, 1, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger update_constraint_idx for rdb$indices */ - -/****** -static const TEXT trigger_20_msg_0 [] = "Can't modify index used by an Integrity Constraint"; -static const TEXT trigger_20_msg_1 [] = "Can't deactivate index used by an integrity constraint"; -static const TEXT trigger_20_msg_2 [] = "Can't deactivate index used by a PRIMARY/UNIQUE constraint"; -******/ - -static const UCHAR trigger20[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_boolean, - blr_eql, - blr_field, 3, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_end, - blr_begin, - blr_if, - blr_not, - blr_and, - blr_eql, - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 1, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 0, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 1, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 0, 12, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'I', - 'D', - blr_field, 1, 12, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'I', - 'D', - blr_and, - blr_eql, - blr_field, 0, 17, 'R', 'D', 'B', '$', 'S', 'E', 'G', 'M', 'E', 'N', 'T', - '_', 'C', 'O', 'U', 'N', 'T', - blr_field, 1, 17, 'R', 'D', 'B', '$', 'S', 'E', 'G', 'M', 'E', 'N', 'T', - '_', 'C', 'O', 'U', 'N', 'T', - blr_eql, - blr_field, 0, 15, 'R', 'D', 'B', '$', 'F', 'O', 'R', 'E', 'I', 'G', 'N', - '_', 'K', 'E', 'Y', - blr_field, 1, 15, 'R', 'D', 'B', '$', 'F', 'O', 'R', 'E', 'I', 'G', 'N', - '_', 'K', 'E', 'Y', - blr_leave, 1, - blr_end, - blr_end, - blr_end, - blr_for, - blr_rse, 3, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_relation, 11, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'I', 'C', 'E', 'S', - 5, - blr_relation, 11, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'I', 'C', 'E', 'S', - 6, - blr_boolean, - blr_and, - blr_eql, - blr_field, 4, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 5, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 6, 15, 'R', 'D', 'B', '$', 'F', 'O', 'R', 'E', 'I', 'G', 'N', - '_', 'K', 'E', 'Y', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 1, 18, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'I', - 'N', 'A', 'C', 'T', 'I', 'V', 'E', - blr_literal, blr_long, 0, 1, 0, 0, 0, - blr_or, - blr_eql, - blr_field, 0, 18, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'I', - 'N', 'A', 'C', 'T', 'I', 'V', 'E', - blr_literal, blr_long, 0, 0, 0, 0, 0, - blr_missing, - blr_field, 0, 18, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'I', - 'N', 'A', 'C', 'T', 'I', 'V', 'E', - blr_end, - blr_begin, - blr_leave, 2, - blr_end, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 7, - blr_boolean, - blr_and, - blr_eql, - blr_field, 7, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_or, - blr_eql, - blr_field, 7, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'P', 'R', 'I', 'M', 'A', 'R', 'Y', 32, 'K', - 'E', 'Y', - blr_or, - blr_eql, - blr_field, 7, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 6, 0, 'U', 'N', 'I', 'Q', 'U', 'E', - blr_eql, - blr_field, 7, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'F', 'O', 'R', 'E', 'I', 'G', 'N', 32, 'K', - 'E', 'Y', - blr_end, - blr_begin, - blr_if, - blr_and, - blr_eql, - blr_field, 1, 18, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'I', - 'N', 'A', 'C', 'T', 'I', 'V', 'E', - blr_literal, blr_long, 0, 1, 0, 0, 0, - blr_or, - blr_eql, - blr_field, 0, 18, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'I', - 'N', 'A', 'C', 'T', 'I', 'V', 'E', - blr_literal, blr_long, 0, 0, 0, 0, 0, - blr_missing, - blr_field, 0, 18, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'I', - 'N', 'A', 'C', 'T', 'I', 'V', 'E', - blr_begin, - blr_if, - blr_eql, - blr_field, 7, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'F', 'O', 'R', 'E', 'I', 'G', 'N', 32, 'K', - 'E', 'Y', - blr_leave, 2, - blr_leave, 3, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger delete_constraint_trigger for rdb$triggers */ - -/****** -static const TEXT trigger_21_msg_0 [] = "Can't delete trigger used by a CHECK Constraint"; -******/ - -static const UCHAR trigger21[] = -{ - blr_version5, - blr_begin, - blr_for, - blr_rse, 2, - blr_relation, 21, 'R', 'D', 'B', '$', 'C', 'H', 'E', 'C', 'K', '_', 'C', - 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_boolean, - blr_and, - blr_eql, - blr_field, 3, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_field, 0, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 3, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 5, 0, 'C', 'H', 'E', 'C', 'K', - blr_end, - blr_begin, - blr_leave, 1, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger update_constraint_trigger for rdb$triggers */ - -/****** -static const TEXT trigger_22_msg_0 [] = "Can't update trigger used by a CHECK Constraint"; -******/ - -static const UCHAR trigger22[] = -{ - blr_version5, - blr_begin, - blr_for, - blr_rse, 2, - blr_relation, 21, 'R', 'D', 'B', '$', 'C', 'H', 'E', 'C', 'K', '_', 'C', - 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_boolean, - blr_and, - blr_eql, - blr_field, 3, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_field, 0, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 3, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 5, 0, 'C', 'H', 'E', 'C', 'K', - blr_end, - blr_begin, - // ASF: Instead of always throw error here as before, we now check if any (except - // RDB$DESCRIPTION and RDB$TRIGGER_SOURCE) field was changed. - // We need this to RDB$FIX_METADATA (from metadata charset upgrade script) work. - // Also don't check RDB$VALID_BLR - see CORE-3101. - blr_if, - blr_not, - blr_and, - blr_and, - blr_and, - blr_and, - blr_and, - blr_and, - blr_and, - blr_and, - blr_equiv, - blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', - blr_field, 1, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', - blr_equiv, - blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', - blr_equiv, - blr_field, 0, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','S','E','Q','U','E','N','C','E', - blr_field, 1, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','S','E','Q','U','E','N','C','E', - blr_equiv, - blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','T','Y','P','E', - blr_field, 1, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','T','Y','P','E', - blr_equiv, - blr_field, 0, 15, 'R','D','B','$','T','R','I','G','G','E','R','_','B','L','R', - blr_field, 1, 15, 'R','D','B','$','T','R','I','G','G','E','R','_','B','L','R', - blr_equiv, - blr_field, 0, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','I','N','A','C','T','I','V','E', - blr_field, 1, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','I','N','A','C','T','I','V','E', - blr_equiv, - blr_field, 0, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', - blr_field, 1, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', - blr_equiv, - blr_field, 0, 9, 'R','D','B','$','F','L','A','G','S', - blr_field, 1, 9, 'R','D','B','$','F','L','A','G','S', - blr_equiv, - blr_field, 0, 14, 'R','D','B','$','D','E','B','U','G','_','I','N','F','O', - blr_field, 1, 14, 'R','D','B','$','D','E','B','U','G','_','I','N','F','O', - blr_begin, - blr_leave, 1, - blr_end, - blr_end, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger pre_delete_field for rdb$relation_fields */ - -/****** -static const TEXT trigger_23_msg_0 [] = "Cannot delete field being used in an integrity constraint."; -******/ - -static const UCHAR trigger23[] = -{ - blr_version5, - blr_begin, - blr_for, - blr_rse, 3, - blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 3, - blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C', - 'O','N','S','T','R','A','I','N','T','S', 4, - blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M', - 'E','N','T','S', 5, - blr_boolean, - blr_and, - blr_eql, - blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N', - 'A','M','E', - blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N', - 'A','M','E', - blr_and, - blr_eql, - blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_and, - blr_eql, - blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_eql, - blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_end, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M', - 'E','N','T','S', 6, - blr_boolean, - blr_and, - blr_eql, - blr_field, 6, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', - blr_neq, - blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_end, - blr_leave, 1, - blr_erase, 4, - blr_end, - blr_for, - blr_rse, 3, - blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C', - 'O','N','S','T','R','A','I','N','T','S', 7, - blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S', - 'T','R','A','I','N','T','S', 8, - blr_relation, 16, 'R','D','B','$','D','E','P','E','N','D','E','N','C','I', - 'E','S', 9, - blr_boolean, - blr_and, - blr_and, - blr_eql, - blr_field, 7, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N', - 'A','M','E', - blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N', - 'A','M','E', - blr_and, - blr_eql, - blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T', - '_','T','Y','P','E', - blr_literal, blr_text, 5,0, 'C','H','E','C','K', - blr_and, - blr_eql, - blr_field, 8, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A', - 'M','E', - blr_field, 9, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_', - 'N','A','M','E', - blr_and, - blr_eql, - blr_field, 9, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_', - 'T','Y','P','E', - blr_literal, blr_long, 0, 2,0,0,0, - blr_and, - blr_eql, - blr_field, 9, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O', - 'N','_','T','Y','P','E', - blr_literal, blr_long, 0, 0,0,0,0, - blr_and, - blr_eql, - blr_field, 9, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O', - 'N','_','N','A','M','E', - blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N', - 'A','M','E', - blr_eql, - blr_field, 9, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_eql, - blr_field, 8, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T', - '_','N','A','M','E', - blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T', - '_','N','A','M','E', - blr_end, - blr_begin, - blr_if, - blr_any, - blr_rse, 1, - blr_relation, 16, 'R','D','B','$','D','E','P','E','N','D','E','N','C','I', - 'E','S', 10, - blr_boolean, - blr_and, - blr_eql, - blr_field, 10, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_', - 'N','A','M','E', - blr_field, 8, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A', - 'M','E', - blr_and, - blr_eql, - blr_field, 10, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_', - 'T','Y','P','E', - blr_literal, blr_long, 0, 2,0,0,0, - blr_and, - blr_eql, - blr_field, 10, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O', - 'N','_','T','Y','P','E', - blr_literal, blr_long, 0, 0,0,0,0, - blr_and, - blr_eql, - blr_field, 10, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O', - 'N','_','N','A','M','E', - blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N', - 'A','M','E', - blr_neq, - blr_field, 10, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', - blr_end, - blr_leave, 1, - blr_erase, 7, - blr_end, - blr_end, - blr_eoc -}; - - -/* define trigger pre_modify_field for rdb$relation_fields */ - -/****** -static const TEXT trigger_24_msg_0 [] = "Cannot rename field being used in an integrity constraint."; -******/ - -static const UCHAR trigger24[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_any, - blr_rse, 3, - blr_relation, 11, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'I', 'C', 'E', 'S', - 3, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_relation, 18, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'S', - 'E', 'G', 'M', 'E', 'N', 'T', 'S', 5, - blr_boolean, - blr_and, - blr_eql, - blr_field, 3, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 0, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 3, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 5, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 4, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 5, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_eql, - blr_field, 5, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_end, - blr_begin, - blr_if, - blr_neq, - blr_field, 0, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_field, 1, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_leave, 1, - blr_end, - blr_if, - blr_not, - blr_and, - blr_eql, - blr_field, 0, 16, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'S', - 'O', 'U', 'R', 'C', 'E', - blr_field, 1, 16, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'S', - 'O', 'U', 'R', 'C', 'E', - blr_eql, - blr_field, 0, 16, 'R', 'D', 'B', '$', 'C', 'O', 'L', 'L', 'A', 'T', 'I', - 'O', 'N', '_', 'I', 'D', - blr_field, 1, 16, 'R', 'D', 'B', '$', 'C', 'O', 'L', 'L', 'A', 'T', 'I', - 'O', 'N', '_', 'I', 'D', - blr_leave, 2, - blr_end, - blr_end, - blr_end, - blr_end, - blr_eoc -}; - - - -/* define trigger post_delete_field for rdb$relation_fields */ -static const UCHAR trigger27[] = -{ - blr_version5, - blr_begin, - blr_for, - blr_rse, 2, - blr_relation, 21, 'R', 'D', 'B', '$', 'C', 'H', 'E', 'C', 'K', '_', 'C', - 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_boolean, - blr_and, - blr_eql, - blr_field, 0, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_field, 3, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 3, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 0, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 4, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 8, 0, 'N', 'O', 'T', 32, 'N', 'U', 'L', 'L', - blr_end, - blr_begin, - blr_erase, 4, - blr_erase, 3, - blr_end, - blr_end, - blr_eoc -}; - - -/* ODS 8.1 trigger */ -static const UCHAR trigger34[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_eql, - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'F', 'O', 'R', 'E', 'I', 'G', 'N', 32, 'K', - 'E', 'Y', - blr_begin, - blr_for, - blr_rse, 1, - blr_relation, 21, 'R', 'D', 'B', '$', 'C', 'H', 'E', 'C', 'K', '_', 'C', - 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 3, - blr_boolean, - blr_eql, - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 3, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_end, - blr_begin, - blr_erase, 3, - blr_for, - blr_rse, 1, - blr_relation, 12, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - 'S', 4, - blr_boolean, - blr_eql, - blr_field, 4, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_field, 3, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_end, - blr_begin, - blr_erase, 4, - blr_end, - blr_end, - blr_end, - blr_end, - blr_end, - blr_eoc -}; - -/* ODS 8.1 trigger */ -static const UCHAR trigger35[] = -{ - blr_version5, - blr_begin, - blr_for, - blr_rse, 2, - blr_relation, 12, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - 'S', 3, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_boolean, - blr_and, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_field, 0, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 4, 19, 'R', 'D', 'B', '$', 'C', 'O', 'N', 'S', 'T', 'R', 'A', - 'I', 'N', 'T', '_', 'T', 'Y', 'P', 'E', - blr_literal, blr_text, 11, 0, 'F', 'O', 'R', 'E', 'I', 'G', 'N', 32, 'K', - 'E', 'Y', - blr_eql, - blr_field, 3, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_field, 0, 16, 'R', 'D', 'B', '$', 'T', 'R', 'I', 'G', 'G', 'E', 'R', - '_', 'N', 'A', 'M', 'E', - blr_end, - blr_begin, - blr_erase, 3, - blr_end, - blr_end, - blr_eoc -}; - -/* ODS 11.0 trigger */ -static const UCHAR trigger36[] = -{ - blr_version5, - blr_begin, - blr_if, - blr_not, - blr_and, - blr_eql, - blr_field, 0, 16, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'L', - 'E', 'N', 'G', 'T', 'H', - blr_field, 1, 16, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'L', - 'E', 'N', 'G', 'T', 'H', - blr_and, - blr_eql, - blr_field, 0, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'T', - 'Y', 'P', 'E', - blr_field, 1, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'T', - 'Y', 'P', 'E', - blr_and, - blr_eql, - blr_field, 0, 16, 'R', 'D', 'B', '$', 'C', 'O', 'L', 'L', 'A', 'T', 'I', - 'O', 'N', '_', 'I', 'D', - blr_field, 1, 16, 'R', 'D', 'B', '$', 'C', 'O', 'L', 'L', 'A', 'T', 'I', - 'O', 'N', '_', 'I', 'D', - blr_eql, - blr_field, 0, 20, 'R', 'D', 'B', '$', 'C', 'H', 'A', 'R', 'A', 'C', 'T', - 'E', 'R', '_', 'S', 'E', 'T', '_', 'I', 'D', - blr_field, 1, 20, 'R', 'D', 'B', '$', 'C', 'H', 'A', 'R', 'A', 'C', 'T', - 'E', 'R', '_', 'S', 'E', 'T', '_', 'I', 'D', - blr_if, - blr_any, - blr_rse, 4, - blr_relation, 11, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'I', 'C', 'E', 'S', - 3, - blr_relation, 24, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'C', 'O', 'N', 'S', 'T', 'R', 'A', 'I', 'N', 'T', 'S', 4, - blr_relation, 18, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'S', - 'E', 'G', 'M', 'E', 'N', 'T', 'S', 5, - blr_relation, 19, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'F', 'I', 'E', 'L', 'D', 'S', 6, - blr_boolean, - blr_and, - blr_eql, - blr_field, 3, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_field, 6, 17, 'R', 'D', 'B', '$', 'R', 'E', 'L', 'A', 'T', 'I', 'O', - 'N', '_', 'N', 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 3, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 5, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 4, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_field, 5, 14, 'R', 'D', 'B', '$', 'I', 'N', 'D', 'E', 'X', '_', 'N', - 'A', 'M', 'E', - blr_and, - blr_eql, - blr_field, 5, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_field, 6, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_eql, - blr_field, 6, 16, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'S', - 'O', 'U', 'R', 'C', 'E', - blr_field, 0, 14, 'R', 'D', 'B', '$', 'F', 'I', 'E', 'L', 'D', '_', 'N', - 'A', 'M', 'E', - blr_end, - blr_leave, 1, - blr_end, - blr_end, - blr_end, - blr_eoc -}; - - #endif /* JRD_TRIG_H */