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

Function gen_emodify

src/gpre/languages/rmc.cpp:2289–2317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2287//
2288
2289static void gen_emodify( const act* action)
2290{
2291 TEXT s1[MAX_REF_SIZE], s2[MAX_REF_SIZE];
2292
2293 const upd* modify = (upd*) action->act_object;
2294
2295 for (const ref* reference = modify->upd_port->por_references; reference;
2296 reference = reference->ref_next)
2297 {
2298 const ref* source = reference->ref_source;
2299 if (!source)
2300 continue;
2301 const gpre_fld* field = reference->ref_field;
2302 gen_name(s1, source, true);
2303 gen_name(s2, reference, true);
2304 if (field->fld_dtype == dtype_blob || field->fld_dtype == dtype_quad ||
2305 field->fld_dtype == dtype_date)
2306 {
2307 sprintf(output_buffer, "%sCALL \"isc_qtoq\" USING %s, %s\n", names[COLUMN], s1, s2);
2308 }
2309 else
2310 sprintf(output_buffer, "%sMOVE %s TO %s\n", names[COLUMN], s1, s2);
2311 RMC_print_buffer(output_buffer, true);
2312 if (field->fld_array_info)
2313 gen_get_or_put_slice(action, reference, false);
2314 }
2315
2316 gen_send(action, modify->upd_port);
2317}
2318
2319
2320//____________________________________________________________

Callers 1

RMC_actionFunction · 0.70

Calls 4

RMC_print_bufferFunction · 0.85
gen_nameFunction · 0.70
gen_get_or_put_sliceFunction · 0.70
gen_sendFunction · 0.70

Tested by

no test coverage detected