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

Function gen_compile

src/gpre/languages/pas.cpp:973–1019  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

971//
972
973static void gen_compile( const act* action, int column)
974{
975 const gpre_req* request = action->act_request;
976 const gpre_dbb* db = request->req_database;
977 const gpre_sym* symbol = db->dbb_name;
978
979 if (gpreGlob.sw_auto)
980 {
981 const TEXT* filename = db->dbb_runtime;
982 if (filename || !(db->dbb_flags & DBB_sqlca))
983 {
984 printa(column, "if %s = nil then", symbol->sym_string);
985 make_ready(db, filename, status_vector(action), column + INDENT, 0);
986 }
987 if (action->act_error || (action->act_flags & ACT_sql))
988 printa(column, "if (%s = nil) and (%s <> nil) then",
989 request_trans(action, request), symbol->sym_string);
990 else
991 printa(column, "if %s = nil then", request_trans(action, request));
992 t_start_auto(action, request, status_vector(action), column + INDENT);
993 }
994
995 if ((action->act_error || (action->act_flags & ACT_sql)) && gpreGlob.sw_auto)
996 printa(column, "if (%s = nil) and (%s <> nil) then",
997 request->req_handle, request_trans(action, request));
998 else
999 printa(column, "if %s = nil then", request->req_handle);
1000
1001 column += INDENT;
1002 begin(column);
1003
1004 align(column);
1005 fprintf(gpreGlob.out_file, "GDS__COMPILE_REQUEST%s (%s, %s, %s, %d, gds__%d);\n",
1006 (request->req_flags & REQ_exp_hand) ? "" : "2",
1007 status_vector(action), symbol->sym_string, request->req_handle,
1008 request->req_length, request->req_ident);
1009
1010 set_sqlcode(action, column);
1011 ends(column);
1012 column -= INDENT;
1013
1014 // If blobs are present, zero out all of the blob handles. After this
1015 // point, the handles are the user's responsibility
1016
1017 for (const blb* blob = request->req_blobs; blob; blob = blob->blb_next)
1018 printa(column - INDENT, "gds__%d := nil;", blob->blb_ident);
1019}
1020
1021
1022//____________________________________________________________

Callers 2

gen_s_startFunction · 0.70
gen_storeFunction · 0.70

Calls 9

endsFunction · 0.85
printaFunction · 0.70
make_readyFunction · 0.70
status_vectorFunction · 0.70
request_transFunction · 0.70
t_start_autoFunction · 0.70
beginFunction · 0.70
alignFunction · 0.70
set_sqlcodeFunction · 0.70

Tested by

no test coverage detected