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

Function gen_for

src/gpre/c_cxx.cpp:2245–2273  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2243//
2244
2245static void gen_for( const act* action, int column)
2246{
2247 gen_s_start(action, column);
2248 const gpre_req* request = action->act_request;
2249
2250 if (action->act_error || (action->act_flags & ACT_sql))
2251 printa(column, "if (!%s [1]) {", global_status_name);
2252
2253 printa(column, "while (1)");
2254 column += INDENT;
2255 begin(column);
2256 gen_receive(action, column, request->req_primary);
2257
2258 TEXT s[MAX_REF_SIZE];
2259 if (action->act_error || (action->act_flags & ACT_sql))
2260 printa(column, "if (!%s || %s [1]) break;",
2261 gen_name(s, request->req_eof, true), global_status_name);
2262 else
2263 printa(column, "if (!%s) break;", gen_name(s, request->req_eof, true));
2264
2265 const gpre_port* port = action->act_request->req_primary;
2266 if (port)
2267 for (const ref* reference = port->por_references; reference; reference = reference->ref_next)
2268 {
2269 if (reference->ref_field->fld_array_info)
2270 gen_get_or_put_slice(action, reference, true, column);
2271 }
2272
2273}
2274
2275
2276//____________________________________________________________

Callers 1

C_CXX_actionFunction · 0.70

Calls 6

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