rem: VAL_TYPE(&(ROW_VALUES(_r)[i])) = DB_BITMAP;
add: VAL_TYPE(&(ROW_VALUES(_r)[i])) = DB_INT;
context: int convert_row(db_con_t* _h, db_res_t* _res, db_row_t* _r){	int i;	if ((!_h) || (!_r) || (!_res)) 	{#ifdef DBT_EXTRA_DEBUG		LOG(L_ERR, "DBT:convert_row: Invalid parameter value\n");#endif		return -1;	}	ROW_VALUES(_r) = (db_val_t*)pkg_malloc(sizeof(db_val_t) * RES_COL_N(_res));	ROW_N(_r) = RES_COL_N(_res);	if (!ROW_VALUES(_r)) 	{		LOG(L_ERR, "DBT:convert_row: No memory left\n");		return -1;	}	for(i = 0; i < RES_COL_N(_res); i++) 	{		(ROW_VALUES(_r)[i]).nul = DBT_CON_ROW(_h)->fields[i].nul;		switch(RES_TYPES(_res)[i])		{			case DB_INT:				VAL_INT(&(ROW_VALUES(_r)[i])) = 						DBT_CON_ROW(_h)->fields[i].val.int_val;				VAL_TYPE(&(ROW_VALUES(_r)[i])) = DB_INT;			break;				case DB_DOUBLE:				VAL_DOUBLE(&(ROW_VALUES(_r)[i])) = 						DBT_CON_ROW(_h)->fields[i].val.double_val;				VAL_TYPE(&(ROW_VALUES(_r)[i])) = DB_DOUBLE;			break;				case DB_STRING:				VAL_STR(&(ROW_VALUES(_r)[i])).s = 						DBT_CON_ROW(_h)->fields[i].val.str_val.s;				VAL_STR(&(ROW_VALUES(_r)[i])).len =						DBT_CON_ROW(_h)->fields[i].val.str_val.len;				VAL_TYPE(&(ROW_VALUES(_r)[i])) = DB_STR;			break;				case DB_STR:				VAL_STR(&(ROW_VALUES(_r)[i])).s = 						DBT_CON_ROW(_h)->fields[i].val.str_val.s;				VAL_STR(&(ROW_VALUES(_r)[i])).len =						DBT_CON_ROW(_h)->fields[i].val.str_val.len;				VAL_TYPE(&(ROW_VALUES(_r)[i])) = DB_STR;			break;			case DB_DATETIME:				VAL_INT(&(ROW_VALUES(_r)[i])) = 						DBT_CON_ROW(_h)->fields[i].val.int_val;				VAL_TYPE(&(ROW_VALUES(_r)[i])) = DB_INT;			break;			case DB_BLOB:				VAL_STR(&(ROW_VALUES(_r)[i])).s =						DBT_CON_ROW(_h)->fields[i].val.str_val.s;				VAL_STR(&(ROW_VALUES(_r)[i])).len =						DBT_CON_ROW(_h)->fields[i].val.str_val.len;				VAL_TYPE(&(ROW_VALUES(_r)[i])) = DB_STR;			break;		        case DB_BITMAP:				VAL_BITMAP(&(ROW_VALUES(_r)[i])) =					DBT_CON_ROW(_h)->fields[i].val.bitmap_val;				VAL_TYPE(&(ROW_VALUES(_r)[i])) = DB_BITMAP;			break;		}	}	return 0;}