[OpenSIPS-Devel] [ opensips-Bugs-2908566 ] DOUBLE values from MySQL not set to avp by avpops

SourceForge.net noreply at sourceforge.net
Mon Dec 14 00:57:51 CET 2009


Bugs item #2908566, was opened at 2009-12-04 05:31
Message generated for change (Comment added) made by 
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1086410&aid=2908566&group_id=232389

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: 1.5.x
Status: Open
Resolution: Invalid
Priority: 5
Private: No
Submitted By: komnieve ()
Assigned to: Bogdan-Andrei Iancu (bogdan_iancu)
Summary: DOUBLE values from MySQL not set to avp by avpops

Initial Comment:
it looks like "DOUBLE" is not defined as a valid case in avpops_db.c and as a result avp are unable to be set.... 
I've removed some of the deployment specific variables from below:

Relevant section of route:
        avp_db_query("select x,y,z from db where interstate='$avp(i:200)' group by id","$avp(i:100),$avp(s:cost),$avp(i:400)");
        avp_print();



output on debug:
Dec  3 20:38:20 [23959] DBG:avpops:ops_dbquery_avps: query [select x,y,z from db where interstate='0' group by id]
Dec  3 20:38:20 [23959] DBG:core:db_do_raw_query: SYNC-DBG - raw query succesfully executed!
Dec  3 20:38:20 [23959] DBG:core:db_new_result: allocate 48 bytes for result set at 0x784558
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_get_columns: 3 columns returned from the query
Dec  3 20:38:20 [23959] DBG:core:db_allocate_columns: allocate 84 bytes for result columns at 0x7844f0
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_get_columns: RES_NAMES(0x784508)[0]=[x]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_get_columns: use DB_STRING result type
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_get_columns: RES_NAMES(0x784518)[1]=[y]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_get_columns: use DB_DOUBLE result type
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_get_columns: RES_NAMES(0x784528)[2]=[z]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_get_columns: use DB_INT result type
Dec  3 20:38:20 [23959] DBG:core:db_allocate_rows: allocate 336 bytes for result rows and values at 0x784618
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_str2val: converting STRING [x]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_str2val: converting DOUBLE [0.006400]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_str2val: converting INT [1]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_str2val: converting STRING [y]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_str2val: converting DOUBLE [0.010400]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_str2val: converting INT [1]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_str2val: converting STRING [c8a]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_str2val: converting DOUBLE [1.000000]
Dec  3 20:38:20 [23959] DBG:db_mysql:db_mysql_str2val: converting INT [1]
Dec  3 20:38:20 [23959] DBG:core:db_do_raw_query: SYNC-DBG - SELECT result was stored!
Dec  3 20:38:20 [23959] DBG:avpops:db_query_avp: rows [3]
Dec  3 20:38:20 [23959] DBG:avpops:db_query_avp: row [2]
Dec  3 20:38:20 [23959] DBG:avpops:db_query_avp: row [1]
Dec  3 20:38:20 [23959] DBG:avpops:db_query_avp: row [0]
Dec  3 20:38:20 [23959] DBG:avpops:db_close_query: close avp query
Dec  3 20:38:20 [23959] DBG:core:db_free_columns: freeing result columns at 0x7844f0
Dec  3 20:38:20 [23959] DBG:core:db_free_rows: freeing 3 rows
Dec  3 20:38:20 [23959] DBG:core:db_free_row: freeing row values at 0x784648
Dec  3 20:38:20 [23959] DBG:core:db_free_row: freeing row values at 0x7846a8
Dec  3 20:38:20 [23959] DBG:core:db_free_row: freeing row values at 0x784708
Dec  3 20:38:20 [23959] DBG:core:db_free_rows: freeing rows at 0x784618
Dec  3 20:38:20 [23959] DBG:core:db_free_result: freeing result set at 0x784558
Dec  3 20:38:20 [23959] DBG:core:db_free_result: SYNC-DBG - freeing result!
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: p=0x2b709e908fa8, flags=0x0000
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			id=<400>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			val_int=<1>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: p=0x2b709e908f70, flags=0x0002
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			id=<100>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			val_str=<x / 3>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: p=0x2b709e908f48, flags=0x0000
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			id=<400>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			val_int=<1>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: p=0x2b709e908f10, flags=0x0002
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			id=<100>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			val_str=<y / 7>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: p=0x2b709e908ee8, flags=0x0000
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			id=<400>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			val_int=<1>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: p=0x2b709e908eb0, flags=0x0002
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			id=<100>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			val_str=<c8a / 3>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: p=0x2b709e908e88, flags=0x0000
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			id=<200>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			val_int=<0>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: p=0x2b709e908e50, flags=0x0002
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			id=<201>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			val_str=<CA / 2>
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: p=0x2b709e908e10, flags=0x0002
Dec  3 20:38:20 [23959] INFO:avpops:ops_print_avp: 			id=<50>

----------------------------------------------------------------------

>Comment By: komnieve ()
Date: 2009-12-13 23:57

Message:
Ahhh got it,

I had it initially configured to be integers but was hoping for
integration reasons we could use doubles. 

Does the limitation arise from a core module or is it inherent to the way
the language was developed?

Thanks for the response. 

----------------------------------------------------------------------

Comment By: Bogdan-Andrei Iancu (bogdan_iancu)
Date: 2009-12-11 09:32

Message:
Hi Komnieve,

The double values (from DB) are skipped because the AVP (or any other
variable in OpenSIPS script)  cannot handle double numbers - just simple
integers. 

So, a solution for you will be to have the cost as integer number...

Regards,
Bogdan

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1086410&aid=2908566&group_id=232389



More information about the Devel mailing list