Skip to content

Commit f947d0b

Browse files
committed
Replace individual public functions by moment/type execute categories.
1 parent ff16556 commit f947d0b

File tree

3 files changed

+154
-127
lines changed

3 files changed

+154
-127
lines changed

src/jrd/SystemTriggers.epp

Lines changed: 126 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "../jrd/SystemTriggers.h"
2727
#include "../jrd/constants.h"
2828
#include "../jrd/ids.h"
29+
#include "../jrd/ini.h"
2930
#include "../jrd/req.h"
3031
#include "../jrd/dpm_proto.h"
3132
#include "../jrd/err_proto.h"
@@ -41,7 +42,10 @@ using namespace Firebird;
4142
using namespace Jrd;
4243

4344

44-
void SystemTriggers::beforeDeleteCheckConstraint(thread_db* tdbb, Record* record)
45+
namespace
46+
{
47+
48+
void beforeDeleteCheckConstraint(thread_db* tdbb, Record* record)
4549
{
4650
const auto transaction = tdbb->getTransaction();
4751

@@ -62,7 +66,7 @@ void SystemTriggers::beforeDeleteCheckConstraint(thread_db* tdbb, Record* record
6266
END_FOR
6367
}
6468

65-
void SystemTriggers::afterDeleteCheckConstraint(thread_db* tdbb, Record* record)
69+
void afterDeleteCheckConstraint(thread_db* tdbb, Record* record)
6670
{
6771
const auto transaction = tdbb->getTransaction();
6872
dsc desc;
@@ -122,7 +126,7 @@ void SystemTriggers::afterDeleteCheckConstraint(thread_db* tdbb, Record* record)
122126
END_FOR
123127
}
124128

125-
void SystemTriggers::beforeUpdateCheckConstraint(thread_db* tdbb, Record* orgRecord, Record* newRecord)
129+
void beforeUpdateCheckConstraint(thread_db* tdbb, Record* orgRecord, Record* newRecord)
126130
{
127131
const auto transaction = tdbb->getTransaction();
128132

@@ -144,7 +148,7 @@ void SystemTriggers::beforeUpdateCheckConstraint(thread_db* tdbb, Record* orgRec
144148
END_FOR
145149
}
146150

147-
void SystemTriggers::beforeDeleteIndex(thread_db* tdbb, Record* record)
151+
void beforeDeleteIndex(thread_db* tdbb, Record* record)
148152
{
149153
const auto transaction = tdbb->getTransaction();
150154

@@ -165,7 +169,7 @@ void SystemTriggers::beforeDeleteIndex(thread_db* tdbb, Record* record)
165169
END_FOR
166170
}
167171

168-
void SystemTriggers::beforeUpdateIndex(thread_db* tdbb, Record* orgRecord, Record* newRecord)
172+
void beforeUpdateIndex(thread_db* tdbb, Record* orgRecord, Record* newRecord)
169173
{
170174
const auto transaction = tdbb->getTransaction();
171175

@@ -267,7 +271,7 @@ void SystemTriggers::beforeUpdateIndex(thread_db* tdbb, Record* orgRecord, Recor
267271
}
268272
}
269273

270-
void SystemTriggers::beforeDeleteIndexSegment(thread_db* tdbb, Record* record)
274+
void beforeDeleteIndexSegment(thread_db* tdbb, Record* record)
271275
{
272276
const auto transaction = tdbb->getTransaction();
273277

@@ -288,7 +292,7 @@ void SystemTriggers::beforeDeleteIndexSegment(thread_db* tdbb, Record* record)
288292
END_FOR
289293
}
290294

291-
void SystemTriggers::beforeUpdateIndexSegment(thread_db* tdbb, Record* orgRecord, Record* newRecord)
295+
void beforeUpdateIndexSegment(thread_db* tdbb, Record* orgRecord, Record* newRecord)
292296
{
293297
const auto transaction = tdbb->getTransaction();
294298

@@ -334,7 +338,7 @@ void SystemTriggers::beforeUpdateIndexSegment(thread_db* tdbb, Record* orgRecord
334338
END_FOR
335339
}
336340

337-
void SystemTriggers::beforeUpdateField(thread_db* tdbb, Record* orgRecord, Record* newRecord)
341+
void beforeUpdateField(thread_db* tdbb, Record* orgRecord, Record* newRecord)
338342
{
339343
const auto transaction = tdbb->getTransaction();
340344

@@ -397,7 +401,7 @@ void SystemTriggers::beforeUpdateField(thread_db* tdbb, Record* orgRecord, Recor
397401
}
398402
}
399403

400-
void SystemTriggers::beforeInsertRefConstraint(thread_db* tdbb, Record* record)
404+
void beforeInsertRefConstraint(thread_db* tdbb, Record* record)
401405
{
402406
const auto transaction = tdbb->getTransaction();
403407

@@ -444,7 +448,7 @@ void SystemTriggers::beforeInsertRefConstraint(thread_db* tdbb, Record* record)
444448
ERR_post(Arg::Gds(isc_foreign_key_notfound));
445449
}
446450

447-
void SystemTriggers::beforeDeleteRelationConstraint(thread_db* tdbb, Record* record)
451+
void beforeDeleteRelationConstraint(thread_db* tdbb, Record* record)
448452
{
449453
const auto transaction = tdbb->getTransaction();
450454
dsc desc;
@@ -525,7 +529,7 @@ void SystemTriggers::beforeDeleteRelationConstraint(thread_db* tdbb, Record* rec
525529
}
526530
}
527531

528-
void SystemTriggers::afterDeleteRelationConstraint(thread_db* tdbb, Record* record)
532+
void afterDeleteRelationConstraint(thread_db* tdbb, Record* record)
529533
{
530534
const auto transaction = tdbb->getTransaction();
531535
dsc desc;
@@ -649,7 +653,7 @@ void SystemTriggers::afterDeleteRelationConstraint(thread_db* tdbb, Record* reco
649653
}
650654
}
651655

652-
void SystemTriggers::beforeInsertRelationConstraint(thread_db* tdbb, Record* record)
656+
void beforeInsertRelationConstraint(thread_db* tdbb, Record* record)
653657
{
654658
const auto transaction = tdbb->getTransaction();
655659
dsc desc;
@@ -693,7 +697,7 @@ void SystemTriggers::beforeInsertRelationConstraint(thread_db* tdbb, Record* rec
693697
}
694698
}
695699

696-
void SystemTriggers::beforeDeleteRelationField(thread_db* tdbb, Record* record)
700+
void beforeDeleteRelationField(thread_db* tdbb, Record* record)
697701
{
698702
const auto transaction = tdbb->getTransaction();
699703
dsc desc;
@@ -772,7 +776,7 @@ void SystemTriggers::beforeDeleteRelationField(thread_db* tdbb, Record* record)
772776
END_FOR
773777
}
774778

775-
void SystemTriggers::afterDeleteRelationField(thread_db* tdbb, Record* record)
779+
void afterDeleteRelationField(thread_db* tdbb, Record* record)
776780
{
777781
const auto transaction = tdbb->getTransaction();
778782
dsc desc;
@@ -804,7 +808,7 @@ void SystemTriggers::afterDeleteRelationField(thread_db* tdbb, Record* record)
804808
END_FOR
805809
}
806810

807-
void SystemTriggers::beforeUpdateRelationField(thread_db* tdbb, Record* orgRecord, Record* newRecord)
811+
void beforeUpdateRelationField(thread_db* tdbb, Record* orgRecord, Record* newRecord)
808812
{
809813
const auto transaction = tdbb->getTransaction();
810814

@@ -860,7 +864,7 @@ void SystemTriggers::beforeUpdateRelationField(thread_db* tdbb, Record* orgRecor
860864
}
861865
}
862866

863-
void SystemTriggers::beforeDeleteTrigger(thread_db* tdbb, Record* record)
867+
void beforeDeleteTrigger(thread_db* tdbb, Record* record)
864868
{
865869
const auto transaction = tdbb->getTransaction();
866870
dsc desc;
@@ -887,7 +891,7 @@ void SystemTriggers::beforeDeleteTrigger(thread_db* tdbb, Record* record)
887891
END_FOR
888892
}
889893

890-
void SystemTriggers::beforeUpdateTrigger(thread_db* tdbb, Record* orgRecord, Record* newRecord)
894+
void beforeUpdateTrigger(thread_db* tdbb, Record* orgRecord, Record* newRecord)
891895
{
892896
const auto transaction = tdbb->getTransaction();
893897
dsc desc;
@@ -961,7 +965,7 @@ void SystemTriggers::beforeUpdateTrigger(thread_db* tdbb, Record* orgRecord, Rec
961965
END_FOR
962966
}
963967

964-
void SystemTriggers::beforeDeleteUserPrivilege(thread_db* tdbb, Record* record)
968+
void beforeDeleteUserPrivilege(thread_db* tdbb, Record* record)
965969
{
966970
const auto transaction = tdbb->getTransaction();
967971
dsc desc;
@@ -998,7 +1002,7 @@ void SystemTriggers::beforeDeleteUserPrivilege(thread_db* tdbb, Record* record)
9981002
END_FOR
9991003
}
10001004

1001-
void SystemTriggers::beforeInsertUserPrivilege(thread_db* tdbb, Record* record)
1005+
void beforeInsertUserPrivilege(thread_db* tdbb, Record* record)
10021006
{
10031007
const auto attachment = tdbb->getAttachment();
10041008
const auto transaction = tdbb->getTransaction();
@@ -1273,3 +1277,106 @@ void SystemTriggers::beforeInsertUserPrivilege(thread_db* tdbb, Record* record)
12731277
}
12741278
}
12751279
}
1280+
1281+
} // anonymous
1282+
1283+
1284+
void SystemTriggers::executeBeforeDeleteTriggers(thread_db* tdbb, jrd_rel* relation, Record* record)
1285+
{
1286+
switch ((RIDS) relation->rel_id)
1287+
{
1288+
case rel_ccon:
1289+
beforeDeleteCheckConstraint(tdbb, record);
1290+
break;
1291+
1292+
case rel_indices:
1293+
beforeDeleteIndex(tdbb, record);
1294+
break;
1295+
1296+
case rel_priv:
1297+
beforeDeleteUserPrivilege(tdbb, record);
1298+
break;
1299+
1300+
case rel_rcon:
1301+
beforeDeleteRelationConstraint(tdbb, record);
1302+
break;
1303+
1304+
case rel_rfr:
1305+
beforeDeleteRelationField(tdbb, record);
1306+
break;
1307+
1308+
case rel_segments:
1309+
beforeDeleteIndexSegment(tdbb, record);
1310+
break;
1311+
1312+
case rel_triggers:
1313+
beforeDeleteTrigger(tdbb, record);
1314+
break;
1315+
}
1316+
}
1317+
1318+
void SystemTriggers::executeAfterDeleteTriggers(thread_db* tdbb, jrd_rel* relation, Record* record)
1319+
{
1320+
switch ((RIDS) relation->rel_id)
1321+
{
1322+
case rel_ccon:
1323+
afterDeleteCheckConstraint(tdbb, record);
1324+
break;
1325+
1326+
case rel_rcon:
1327+
afterDeleteRelationConstraint(tdbb, record);
1328+
break;
1329+
1330+
case rel_rfr:
1331+
afterDeleteRelationField(tdbb, record);
1332+
break;
1333+
}
1334+
}
1335+
1336+
void SystemTriggers::executeBeforeInsertTriggers(thread_db* tdbb, jrd_rel* relation, Record* record)
1337+
{
1338+
switch ((RIDS) relation->rel_id)
1339+
{
1340+
case rel_priv:
1341+
beforeInsertUserPrivilege(tdbb, record);
1342+
break;
1343+
1344+
case rel_rcon:
1345+
beforeInsertRelationConstraint(tdbb, record);
1346+
break;
1347+
1348+
case rel_refc:
1349+
beforeInsertRefConstraint(tdbb, record);
1350+
break;
1351+
}
1352+
}
1353+
1354+
void SystemTriggers::executeBeforeUpdateTriggers(thread_db* tdbb, jrd_rel* relation, Record* orgRecord, Record* newRecord)
1355+
{
1356+
switch ((RIDS) relation->rel_id)
1357+
{
1358+
case rel_ccon:
1359+
beforeUpdateCheckConstraint(tdbb, orgRecord, newRecord);
1360+
break;
1361+
1362+
case rel_fields:
1363+
beforeUpdateField(tdbb, orgRecord, newRecord);
1364+
break;
1365+
1366+
case rel_indices:
1367+
beforeUpdateIndex(tdbb, orgRecord, newRecord);
1368+
break;
1369+
1370+
case rel_rfr:
1371+
beforeUpdateRelationField(tdbb, orgRecord, newRecord);
1372+
break;
1373+
1374+
case rel_segments:
1375+
beforeUpdateIndexSegment(tdbb, orgRecord, newRecord);
1376+
break;
1377+
1378+
case rel_triggers:
1379+
beforeUpdateTrigger(tdbb, orgRecord, newRecord);
1380+
break;
1381+
}
1382+
}

src/jrd/SystemTriggers.h

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,31 +27,17 @@
2727

2828
namespace Jrd
2929
{
30+
class jrd_rel;
3031
class thread_db;
3132
class Record;
3233
} // namespace Jrd
3334

3435
namespace Jrd::SystemTriggers
3536
{
36-
void beforeDeleteCheckConstraint(thread_db* tdbb, Record* record);
37-
void afterDeleteCheckConstraint(thread_db* tdbb, Record* record);
38-
void beforeUpdateCheckConstraint(thread_db* tdbb, Record* orgRecord, Record* newRecord);
39-
void beforeDeleteIndex(thread_db* tdbb, Record* record);
40-
void beforeUpdateIndex(thread_db* tdbb, Record* orgRecord, Record* newRecord);
41-
void beforeDeleteIndexSegment(thread_db* tdbb, Record* record);
42-
void beforeUpdateIndexSegment(thread_db* tdbb, Record* orgRecord, Record* newRecord);
43-
void beforeUpdateField(thread_db* tdbb, Record* orgRecord, Record* newRecord);
44-
void beforeInsertRefConstraint(thread_db* tdbb, Record* record);
45-
void beforeDeleteRelationConstraint(thread_db* tdbb, Record* record);
46-
void afterDeleteRelationConstraint(thread_db* tdbb, Record* record);
47-
void beforeInsertRelationConstraint(thread_db* tdbb, Record* record);
48-
void beforeDeleteRelationField(thread_db* tdbb, Record* record);
49-
void afterDeleteRelationField(thread_db* tdbb, Record* record);
50-
void beforeUpdateRelationField(thread_db* tdbb, Record* orgRecord, Record* newRecord);
51-
void beforeDeleteTrigger(thread_db* tdbb, Record* record);
52-
void beforeUpdateTrigger(thread_db* tdbb, Record* orgRecord, Record* newRecord);
53-
void beforeDeleteUserPrivilege(thread_db* tdbb, Record* record);
54-
void beforeInsertUserPrivilege(thread_db* tdbb, Record* record);
37+
void executeBeforeDeleteTriggers(thread_db* tdbb, jrd_rel* relation, Record* record);
38+
void executeAfterDeleteTriggers(thread_db* tdbb, jrd_rel* relation, Record* record);
39+
void executeBeforeInsertTriggers(thread_db* tdbb, jrd_rel* relation, Record* record);
40+
void executeBeforeUpdateTriggers(thread_db* tdbb, jrd_rel* relation, Record* orgRecord, Record* newRecord);
5541
} // namespace Jrd::SystemTriggers
5642

5743
#endif // JRD_SYSTEM_TRIGGERS_H

0 commit comments

Comments
 (0)