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

Function alter_domain

src/gpre/cmd.cpp:296–333  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

294//
295
296static void alter_domain( gpre_req* request, const act* action)
297{
298 const gpre_fld* field = (gpre_fld*) action->act_object;
299
300 // modify field info
301
302 put_symbol(request, isc_dyn_mod_global_fld, field->fld_symbol);
303
304 const gpre_nod* default_node = field->fld_default_value;
305 if (default_node)
306 {
307 if (default_node->nod_type == nod_erase) {
308 request->add_byte(isc_dyn_del_default);
309 }
310 else
311 {
312 put_blr(request, isc_dyn_fld_default_value, field->fld_default_value, CME_expr);
313 TEXT* default_source = (TEXT *) MSC_alloc(field->fld_default_source->txt_length + 1);
314 CPR_get_text(default_source, field->fld_default_source);
315 put_cstring(request, isc_dyn_fld_default_source, default_source);
316 }
317 }
318
319 if (field->fld_constraints)
320 {
321 request->add_byte(isc_dyn_single_validation);
322 for (const cnstrt* constraint = field->fld_constraints;
323 constraint;
324 constraint = constraint->cnstrt_next)
325 {
326 if (constraint->cnstrt_flags & CNSTRT_delete)
327 request->add_byte(isc_dyn_del_validation);
328 }
329 create_domain_constraint(request, field->fld_constraints);
330 }
331
332 request->add_end();
333}
334
335
336//____________________________________________________________

Callers 1

CMD_compile_ddlFunction · 0.85

Calls 8

put_symbolFunction · 0.85
put_blrFunction · 0.85
MSC_allocFunction · 0.85
CPR_get_textFunction · 0.85
put_cstringFunction · 0.85
create_domain_constraintFunction · 0.85
add_endMethod · 0.80
add_byteMethod · 0.45

Tested by

no test coverage detected