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

Function db_query_print_one_result

modules/sqlops/sqlops_db.c:1020–1105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1018
1019
1020int db_query_print_one_result(struct sip_msg *msg, const db_res_t *db_res,
1021 pvname_list_t *dest)
1022{
1023 pvname_list_t* crt = dest;
1024 pv_value_t val;
1025 int j;
1026
1027 for(j = 0; j < RES_COL_N(db_res); j++) {
1028
1029 if (crt==NULL) {
1030 LM_ERR("too few output vars to store the result, need %d,"
1031 "having %d\n", RES_COL_N(db_res), j);
1032 return -1;
1033 }
1034
1035 if(RES_ROWS(db_res)[0].values[j].nul) {
1036 if (pv_set_value( msg, &crt->sname, 0, NULL)!=0) {
1037 LM_ERR("unable to add variable for column %d\n",j);
1038 return -1;
1039 }
1040 } else {
1041 memset( &val, 0, sizeof(pv_value_t));
1042 switch(RES_ROWS(db_res)[0].values[j].type) {
1043 case DB_STRING:
1044 val.flags = PV_VAL_STR;
1045 val.rs.s =
1046 (char*)RES_ROWS(db_res)[0].values[j].val.string_val;
1047 val.rs.len = strlen(val.rs.s);
1048 break;
1049 case DB_STR:
1050 val.flags = PV_VAL_STR;
1051 val.rs =
1052 RES_ROWS(db_res)[0].values[j].val.str_val;
1053 break;
1054 case DB_BLOB:
1055 val.flags = PV_VAL_STR;
1056 val.rs =
1057 RES_ROWS(db_res)[0].values[j].val.blob_val;
1058 break;
1059 case DB_INT:
1060 val.flags = PV_VAL_INT|PV_TYPE_INT;
1061 val.ri =
1062 (int)RES_ROWS(db_res)[0].values[j].val.int_val;
1063 break;
1064 case DB_DATETIME:
1065 val.flags = PV_VAL_INT|PV_TYPE_INT;
1066 val.ri =
1067 (int)RES_ROWS(db_res)[0].values[j].val.time_val;
1068 break;
1069 case DB_BITMAP:
1070 val.flags = PV_VAL_INT|PV_TYPE_INT;
1071 val.ri =
1072 (int)RES_ROWS(db_res)[0].values[j].val.bitmap_val;
1073 break;
1074 case DB_BIGINT:
1075 if (sqlops_bigint2str) {
1076 val.flags = PV_VAL_STR;
1077 val.rs.s = bigint2str(

Callers 3

sql_queryFunction · 0.85
sql_api_selectFunction · 0.85
resume_async_sqlqueryFunction · 0.85

Calls 3

pv_set_valueFunction · 0.85
bigint2strFunction · 0.85
double2strFunction · 0.85

Tested by

no test coverage detected