[SR-Users] "select count(*)" with avp_db_query always returns null

Andrade Ricardo (CI/AFU1) Ricardo.Keigo at br.bosch.com
Tue Jul 5 12:07:07 CEST 2011


Hi Daniel,
Hi Alex,

Thanks! That looks great. Once commited, I'll test it, too.

By the way, I've just tried with sql_query. It didn't work as well. Do you think it is fixed together with Alex's change?

Shouldn't there be a warning/error message if the returned data type is not supported?


Code:
        sql_query("openserdb", "SELECT count(*) FROM subscriber where username='foo'", "ra");
        $avp(s:value) = $dbr(ra=>[0,0]);
        xlog("L_INFO", "avp(s:value)=$avp(s:value)\n");
          sql_result_free("ra");

Output:
          avp(s:value)=


Mit freundlichen Grüßen / Best regards

Ricardo Keigo de Sales Andrade

Robert Bosch GmbH
 (CI/AFU)
Postfach 30 02 20
70442 Stuttgart
GERMANY
www.bosch.com

Tel. +49(711)811-3607004
Mobil +49(172)1081152
ricardo.andrade at br.bosch.com

Sitz: Stuttgart, Registergericht: Amtsgericht Stuttgart, HRB 14000;
Aufsichtsratsvorsitzender: Hermann Scholl; Geschäftsführung: Franz Fehrenbach, Siegfried Dais;
Stefan Asenkerschbaumer, Bernd Bohr, Rudolf Colm, Volkmar Denner, Wolfgang Malchow, Peter Marks, Uwe Raschke, Wolf-Henning Scheider, Peter Tyroller


-----Ursprüngliche Nachricht-----
Von: Daniel-Constantin Mierla [mailto:miconda at gmail.com]
Gesendet: Dienstag, 5. Juli 2011 11:51
An: SIP Router - Kamailio (OpenSER) and SIP Express Router (SER) - Users Mailing List
Cc: Alex Hermann; Andrade Ricardo (CI/AFU1)
Betreff: Re: [SR-Users] "select count(*)" with avp_db_query always returns null



On 7/5/11 11:39 AM, Alex Hermann wrote:
> On Wednesday 29 June 2011, Andrade Ricardo (CI/AFU1) wrote:
>> Perhaps this fits better into a bug report, but I'd like to know if
>> somebody out there experienced a similar issue. I am executing a "select
>> count" query using the avp_db_query function, but it is not storing the
>> results in any avp. Other queries are working fine. I use db_mysql
>> connected with a mysql 5.1 server.
>>
>> I have tested this with kamailio-3.1.0 and kamailio-3.1.3, both didn't
>> work. In an old box (version 1.3.x), the same query was returning the
>> correct value.
>>
>> ---------------------------------------------------
>> Here is the case which is not working:
>>
>> Code:
>> avp_delete("$avp(s:count)");
>> $var(ret) = avp_db_query("SELECT count(*) FROM subscriber where
>> username='foo'", "$avp(s:count)");
>> xlog("L_INFO", "var(ret)=$var(ret) avp(s:count)=$avp(s:count)");
>>
>>
>> Output:
>> INFO:<script>: var(ret)=1 avp(s:count)=<null>
>>
>> (notice the return code 1, which means that the query was successfull and
>> there should be some output value stored in the avp, but it is<null>)
> The return type of the COUNT() function is a BIGINT, which is ignored in
> kamailio. The attached patch converts the lower 32 bits of the result to an
> int usable by kamailio. I'll push this eventually.
Thanks for quick reaction and patch. Go ahead and commit it.

Cheers,
Daniel

--
Daniel-Constantin Mierla -- http://www.asipto.com
http://linkedin.com/in/miconda -- http://twitter.com/miconda




More information about the sr-users mailing list