MCPcopy Create free account
hub / github.com/bloomberg/comdb2 / cdb2_bind_index

Function cdb2_bind_index

cdb2api/cdb2api.c:5361–5396  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5359}
5360
5361int cdb2_bind_index(cdb2_hndl_tp *hndl, int index, int type,
5362 const void *varaddr, int length)
5363{
5364 if (log_calls)
5365 fprintf(stderr, "%p> cdb2_bind_index(%p, %d, %s, %p, %d)\n",
5366 (void *)pthread_self(), hndl, index, cdb2_type_str(type),
5367 varaddr, length);
5368
5369 if (index <= 0) {
5370 sprintf(hndl->errstr, "%s: bind index starts at value 1", __func__);
5371 return -1;
5372 }
5373 hndl->n_bindvars++;
5374 hndl->bindvars = realloc(hndl->bindvars, sizeof(CDB2SQLQUERY__Bindvalue *) *
5375 hndl->n_bindvars);
5376 CDB2SQLQUERY__Bindvalue *bindval = malloc(sizeof(CDB2SQLQUERY__Bindvalue));
5377 cdb2__sqlquery__bindvalue__init(bindval);
5378 bindval->type = type;
5379 bindval->varname = NULL;
5380 bindval->value.data = (void *)varaddr;
5381 bindval->value.len = length;
5382 bindval->has_index = 1;
5383 bindval->index = index;
5384 if (length == 0) {
5385 /* See comments in cdb2_bind_param(). */
5386 bindval->has_isnull = 1;
5387 bindval->isnull = (varaddr == NULL);
5388 if (type == CDB2_CSTRING && !bindval->isnull) {
5389 bindval->value.data = (unsigned char *)"";
5390 bindval->value.len = 1;
5391 }
5392 }
5393 hndl->bindvars[hndl->n_bindvars - 1] = bindval;
5394
5395 return 0;
5396}
5397
5398
5399/* cdb2_bind_array -- bind c array to a parameter name

Callers 6

process_bindFunction · 0.85
do_bindingsFunction · 0.85
test_bind_indexFunction · 0.85
tclcdb2ObjCmdFunction · 0.85
set_bound_parametersFunction · 0.85

Calls 3

reallocFunction · 0.85
mallocFunction · 0.85
cdb2_type_strFunction · 0.70

Tested by 1

test_bind_indexFunction · 0.68