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

Function act_include

src/gpre/sql.cpp:3370–3411  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3368//
3369
3370static act* act_include()
3371{
3372 PAR_get_token();
3373 MSC_match(KW_SEMI_COLON);
3374
3375 act* action = (act*) MSC_alloc(ACT_LEN);
3376 action->act_type = ACT_b_declare;
3377 gpreGlob.cur_routine = action; // Hmm, global var
3378
3379 if (!gpreGlob.isc_databases)
3380 {
3381 // allocate database block and link to db chain
3382
3383 gpreGlob.isc_databases = (gpre_dbb*) MSC_alloc_permanent(DBB_LEN);
3384
3385 // allocate symbol block
3386
3387 gpre_sym* symbol = (gpre_sym*) MSC_alloc_permanent(SYM_LEN);
3388
3389 // make it a database, specifically this one
3390
3391 symbol->sym_type = SYM_database;
3392 symbol->sym_object = (gpre_ctx*) gpreGlob.isc_databases;
3393 symbol->sym_string = gpreGlob.database_name;
3394
3395 // database block points to the symbol block
3396
3397 gpreGlob.isc_databases->dbb_name = symbol;
3398 gpreGlob.isc_databases->dbb_filename = NULL;
3399 gpreGlob.isc_databases->dbb_flags = DBB_sqlca;
3400 gpreGlob.isc_databases->dbb_c_lc_ctype = gpreGlob.module_lc_ctype;
3401 if (gpreGlob.sw_external)
3402 gpreGlob.isc_databases->dbb_scope = DBB_EXTERN;
3403 }
3404 else
3405 // Load the symbol (hash) table with relation names from this database.
3406 MET_load_hash_table(gpreGlob.isc_databases);
3407
3408 HSH_insert(gpreGlob.isc_databases->dbb_name);
3409
3410 return action;
3411}
3412
3413
3414//____________________________________________________________

Callers 1

SQL_actionFunction · 0.85

Calls 6

PAR_get_tokenFunction · 0.85
MSC_matchFunction · 0.85
MSC_allocFunction · 0.85
MSC_alloc_permanentFunction · 0.85
MET_load_hash_tableFunction · 0.85
HSH_insertFunction · 0.85

Tested by

no test coverage detected