Hi to both Daniels and thank you for your responses. I understand what you are both saying. Currently the field I am extracting the value from in the database is set to type; bigint(20) unsigned If I change to varchar for example it returns fine, my only issue is that the overflow only occurs on 10 digit numbers starting with 2 or 3. If I add a value for example 1785702370 or 7785702370 they are returned without issue without changing the DB value type. Thanks Jon
> To: sr-users@lists.sip-router.org > From: mico...@gmail.com > Date: Tue, 5 Jan 2016 19:49:02 +0100 > Subject: Re: [SR-Users] Negative value returned when using sql_pvquery > > > > On 05/01/16 17:51, Daniel Tryba wrote: > > On Tue, Jan 05, 2016 at 03:38:58PM +0000, Jonathan Hunter wrote: > >> sql_pvquery("cd","select DestinationMsisdn,SourceMsisdn from > >> MsisdnPoolAllocations where > >> PoolMsisdn='$rU'","$var(MOdest),$var(NewSourceMSISDN)"); > >> However this returns a value of -509264926 for $var(MOdest) which should > >> just be the 3785702370 number. > >> What can cause kamailio to interpret this as a negative value? Has anyone > >> seen this before? > > What you are seeing is an integer overflow, in this case you are trying > > to store a number greater than 2^31 in a signed 32bit int. -509264926 > > (3785702370-2^32) is the correct answer if the var is a signed 32bit > > int. > > > > I treat phonenumbers as strings (both in the database and kamailio) > > since I store them as E.164 with a leading + (which results in a bit > > more diskspace) > > > > If you don't need the number as int in kamailio, try casting it to a > > string in the query. > > > To complete, as just looked at the source -- if the bigint number > returned does not fit in 32bit size, then it is stored as string. If it > fits in 32bit, then is stored also as int. I see the code was added in > 2011 by Alex Hermann. > > Maybe the behavior is not that coherent, hard to predict if not knowing > what is in the db, and should be changed to be always stored as string, > then use {s.int} in config if wanted as int. > > Cheers, > Daniel > > -- > Daniel-Constantin Mierla > http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda > Book: SIP Routing With Kamailio - http://www.asipto.com > http://miconda.eu > > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users