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

Function gen_compile

src/gpre/languages/ftn.cpp:1086–1125  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1084//
1085
1086static void gen_compile(const act* action)
1087{
1088 const gpre_req* request = action->act_request;
1089 const gpre_dbb* db = request->req_database;
1090 const gpre_sym* symbol = db->dbb_name;
1091
1092 // generate automatic ready if appropriate
1093
1094 if (gpreGlob.sw_auto)
1095 t_start_auto(request, status_vector(), action, true);
1096
1097 // always generate a compile, a test for the success of the compile,
1098 // and an end to the 'if not compiled test
1099
1100 // generate an 'if not compiled'
1101
1102 if (gpreGlob.sw_auto && (action->act_error || (action->act_flags & ACT_sql)))
1103 printa(COLUMN, "IF (%s .EQ. 0 .AND. %s .NE. 0) THEN",
1104 request->req_handle, request_trans(action, request));
1105 else
1106 printa(COLUMN, "IF (%s .EQ. 0) THEN", request->req_handle);
1107
1108 sprintf(output_buffer, "%sCALL ISC_COMPILE_REQUEST%s (%s, %s, %s, %s%d%s, %sisc_%d%s)\n",
1109 COLUMN, (request->req_flags & REQ_exp_hand) ? "" : "2",
1110 status_vector(), symbol->sym_string, request->req_handle,
1111 I2CONST_1, request->req_length, I2CONST_2, REF_1,
1112 request->req_ident, REF_2);
1113 FTN_print_buffer(output_buffer);
1114 status_and_stop(action);
1115 printa(COLUMN, "END IF");
1116
1117 // If blobs are present, zero out all of the blob handles. After this
1118 // point, the handles are the user's responsibility
1119
1120 for (const blb* blob = request->req_blobs; blob; blob = blob->blb_next)
1121 {
1122 sprintf(output_buffer, "%sisc_%d = 0\n", COLUMN, blob->blb_ident);
1123 FTN_print_buffer(output_buffer);
1124 }
1125}
1126
1127
1128

Callers 2

gen_s_startFunction · 0.70
gen_storeFunction · 0.70

Calls 6

FTN_print_bufferFunction · 0.85
status_and_stopFunction · 0.85
t_start_autoFunction · 0.70
status_vectorFunction · 0.70
printaFunction · 0.70
request_transFunction · 0.70

Tested by

no test coverage detected