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.
--
Greetings,
Alex Hermann