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

Function gen_function

src/gpre/c_cxx.cpp:2281–2387  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2279//
2280
2281static void gen_function( const act* function, int column)
2282{
2283 const ref* reference;
2284
2285 const act* action = (const act*) function->act_object;
2286
2287 if (action->act_type != ACT_any)
2288 {
2289 CPR_error("can't generate function");
2290 return;
2291 }
2292
2293 const gpre_req* request = action->act_request;
2294
2295 fprintf(gpreGlob.out_file, "static %s_r (request, transaction ", request->req_handle);
2296
2297 TEXT s[MAX_REF_SIZE];
2298 gpre_port* port = request->req_vport;
2299 if (port)
2300 for (reference = port->por_references; reference; reference = reference->ref_next)
2301 {
2302 fprintf(gpreGlob.out_file, ", %s", gen_name(s, reference->ref_source, true));
2303 }
2304
2305 fprintf(gpreGlob.out_file,
2306 ")\n isc_req_handle\trequest;\n isc_tr_handle\ttransaction;\n");
2307
2308 if (port)
2309 for (reference = port->por_references; reference; reference = reference->ref_next)
2310 {
2311 const TEXT* dtype;
2312 gpre_fld* field = reference->ref_field;
2313 switch (field->fld_dtype)
2314 {
2315 case dtype_short:
2316 dtype = "short";
2317 break;
2318
2319 case dtype_long:
2320 dtype = DCL_LONG;
2321 break;
2322
2323 case dtype_cstring:
2324 case dtype_text:
2325 dtype = "char*";
2326 break;
2327
2328 case dtype_quad:
2329 dtype = DCL_QUAD;
2330 break;
2331
2332 // Begin date/time/timestamp
2333 case dtype_sql_date:
2334 dtype = "ISC_DATE";
2335 break;
2336
2337 case dtype_sql_time:
2338 dtype = "ISC_TIME";

Callers 1

C_CXX_actionFunction · 0.70

Calls 6

CPR_errorFunction · 0.85
gen_nameFunction · 0.70
make_portFunction · 0.70
gen_s_startFunction · 0.70
gen_receiveFunction · 0.70
gen_get_or_put_sliceFunction · 0.70

Tested by

no test coverage detected