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