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

Function gen_for

src/gpre/obj_cxx.cpp:2290–2318  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2288//
2289
2290static void gen_for( const act* action, int column)
2291{
2292 gen_s_start(action, column);
2293 const gpre_req* request = action->act_request;
2294
2295 if (action->act_error || (action->act_flags & ACT_sql))
2296 success(column, true, global_status_name, " {");
2297
2298 printa(column, "while (1)");
2299 column += INDENT;
2300 begin(column);
2301 gen_receive(action, column, request->req_primary);
2302
2303 TEXT s[MAX_REF_SIZE];
2304 if (action->act_error || (action->act_flags & ACT_sql))
2305 printa(column, "if (!%s || (%s->getState() & Firebird::IStatus::STATE_ERRORS)) break;",
2306 gen_name(s, request->req_eof, true), global_status_name);
2307 else
2308 printa(column, "if (!%s) break;", gen_name(s, request->req_eof, true));
2309
2310 const gpre_port* port = action->act_request->req_primary;
2311 if (port)
2312 for (const ref* reference = port->por_references; reference; reference = reference->ref_next)
2313 {
2314 if (reference->ref_field->fld_array_info)
2315 gen_get_or_put_slice(action, reference, true, column);
2316 }
2317
2318}
2319
2320
2321//____________________________________________________________

Callers 1

OBJ_CXX_actionFunction · 0.70

Calls 7

successFunction · 0.85
gen_s_startFunction · 0.70
printaFunction · 0.70
beginFunction · 0.70
gen_receiveFunction · 0.70
gen_nameFunction · 0.70
gen_get_or_put_sliceFunction · 0.70

Tested by

no test coverage detected