MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / prepare_selection

Function prepare_selection

modules/sqlops/sqlops_db.c:291–338  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

289
290
291static inline int prepare_selection( str *uuid, str *username, str *domain,
292 char *attr, struct db_scheme *scheme)
293{
294 unsigned int nr_keys_cmp;
295
296 nr_keys_cmp = 0;
297 if (uuid)
298 {
299 /* uuid column */
300 keys_cmp[ nr_keys_cmp ] =
301 (scheme&&scheme->uuid_col.s)?&scheme->uuid_col:db_columns[0];
302 vals_cmp[ nr_keys_cmp ].type = DB_STR;
303 vals_cmp[ nr_keys_cmp ].nul = 0;
304 vals_cmp[ nr_keys_cmp ].val.str_val = *uuid;
305 nr_keys_cmp++;
306 } else {
307 if (username)
308 {
309 /* username column */
310 keys_cmp[ nr_keys_cmp ] =
311 (scheme&&scheme->username_col.s)?&scheme->username_col:db_columns[4];
312 vals_cmp[ nr_keys_cmp ].type = DB_STR;
313 vals_cmp[ nr_keys_cmp ].nul = 0;
314 vals_cmp[ nr_keys_cmp ].val.str_val = *username;
315 nr_keys_cmp++;
316 }
317 if (domain)
318 {
319 /* domain column */
320 keys_cmp[ nr_keys_cmp ] =
321 (scheme&&scheme->domain_col.s)?&scheme->domain_col:db_columns[5];
322 vals_cmp[ nr_keys_cmp ].type = DB_STR;
323 vals_cmp[ nr_keys_cmp ].nul = 0;
324 vals_cmp[ nr_keys_cmp ].val.str_val = *domain;
325 nr_keys_cmp++;
326 }
327 }
328 if (attr && scheme==0)
329 {
330 /* attribute name column */
331 keys_cmp[ nr_keys_cmp ] = db_columns[1];
332 vals_cmp[ nr_keys_cmp ].type = DB_STRING;
333 vals_cmp[ nr_keys_cmp ].nul = 0;
334 vals_cmp[ nr_keys_cmp ].val.string_val = attr;
335 nr_keys_cmp++;
336 }
337 return nr_keys_cmp;
338}
339
340
341db_res_t *sql_avp_load(struct db_url *url, str *uuid, str *username,str *domain,

Callers 2

sql_avp_loadFunction · 0.85
sql_avp_deleteFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected