MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / act_set_transaction

Function act_set_transaction

src/gpre/sql.cpp:4377–4457  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4375//
4376
4377static act* act_set_transaction()
4378{
4379 gpre_tra* trans = (gpre_tra*) MSC_alloc(TRA_LEN);
4380
4381 if (MSC_match(KW_NAME))
4382 trans->tra_handle = PAR_native_value(false, true);
4383
4384 // Get all the transaction parameters
4385
4386 while (true)
4387 {
4388 if (MSC_match(KW_ISOLATION))
4389 {
4390 MSC_match(KW_LEVEL);
4391 if (!par_transaction_modes(trans, true))
4392 CPR_s_error("SNAPSHOT");
4393
4394 continue;
4395 }
4396
4397 if (par_transaction_modes(trans, false))
4398 continue;
4399
4400 if (MSC_match(KW_NO))
4401 {
4402 if (MSC_match(KW_WAIT))
4403 {
4404 trans->tra_flags |= TRA_nw;
4405 continue;
4406 }
4407 CPR_s_error("WAIT");
4408 }
4409
4410 if (MSC_match(KW_WAIT))
4411 continue;
4412
4413#ifdef DEV_BUILD
4414 if (MSC_match(KW_AUTOCOMMIT))
4415 {
4416 trans->tra_flags |= TRA_autocommit;
4417 continue;
4418 }
4419#endif
4420
4421 if (MSC_match(KW_NO_AUTO_UNDO))
4422 {
4423 trans->tra_flags |= TRA_no_auto_undo;
4424 continue;
4425 }
4426
4427 if (MSC_match(KW_AUTO_RELEASE_TEMP_BLOBID))
4428 {
4429 trans->tra_flags |= TRA_auto_release_temp_blobid;
4430 continue;
4431 }
4432
4433 break;
4434 }

Callers 1

act_setFunction · 0.85

Calls 9

MSC_allocFunction · 0.85
MSC_matchFunction · 0.85
PAR_native_valueFunction · 0.85
par_transaction_modesFunction · 0.85
CPR_s_errorFunction · 0.85
PAR_reservingFunction · 0.85
PAR_using_dbFunction · 0.85
CMP_t_startFunction · 0.85
gen_wheneverFunction · 0.70

Tested by

no test coverage detected