I just explicitly testing this.
Results :
A sane query, but table dosnt exist performed as expected :
avp_db_query("INSERT INTO tablenothere ( KEY, added ) VALUES ( '$si',
'$Ts' );");
0(26936) ERROR: db_cassandra [dbcassa_base.cpp:729]:
db_cassa_raw_query(): Invalid Request caused error details: unconfigured
columnfamily tablenothere.
And insane query where its virtually just crap in a statement also
behaved well :
avp_db_query("INSERT INTO tablenothere ( idont enven K'now how to
Sql");
0(26913) ERROR: db_cassandra [dbcassa_base.cpp:729]:
db_cassa_raw_query(): Invalid Request caused error details: line 1:55
mismatched character '<EOF>' expecting '''.
Id say the answer to your question is yes, my patch works as expected
in this regard.
Jay
On 12 March 2014 19:27, Daniel-Constantin Mierla <miconda(a)gmail.com>wrote;wrote:
On 12/03/14 10:16, jay binks wrote:
In my test case I was doing an INSERT query...
yet db_cassandra would complain there was no result... ( both the log
message and return code )
In understand that and you are right here -- even select can have no
result (but maybe is setting some other fields there). What I want to
clarify is that in case of a query error (e.g., wrong statement or
something happened with the connection), is it detected? Not to behave like
it was all ok.
Cheers,
Daniel
This is the reason I provided the patch.
after a little more testing I have found that I get this log message :
0(23827) ERROR: <core> [db_res.c:130]: db_free_result(): invalid
parameter
So far in my testing everything has performed flawlessly, just with a
few less log lines :)
in essence this patch simply makes db_cassandra act the same when
there is no result set as it does when there are now rows.
( previously it would act like no result set was a big deal )
Jay
On 12 March 2014 18:49, Daniel-Constantin Mierla <miconda(a)gmail.com>wrote;wrote:
> What would be the situation when the query is like SELECT but there
> is no result. Is the behaviour as expected with the new patch?
>
> Anyone here using cassandra having comments? From my point of view is
> no problem to push the patch, but I am not using cassandra, so cannot do a
> proper review.
>
> Cheers,
> Daniel
>
>
> On 12/03/14 08:53, jay binks wrote:
>
> If doing a query that returns no results ( Insert etc )
> db_cassa_raw_query would cause these ERRORS to be logged
>
> 0(22283) ERROR: db_cassandra [dbcassa_base.cpp:739]:
> db_cassa_raw_query(): The resultype rows was not set, no point trying to
> parse result.
> 0(22283) ERROR: avpops [avpops_db.c:333]: db_query_avp(): cannot do
> the query
>
> db_cassa_raw_query would also return -1 as a failure code which
> caused avpops_db to log the query failure.
>
> my patch changes the db_cassa_raw_query log message to debug level,
> and returns success from the function.
>
> I had a quick look to see if there was an elegant way to determine
> if we should expect results, so we can vary the response code based on
> query type, but I was unable to find anything other than doing string
> comparisons on the query, so I opted to not bother with this as it would
> be erroneous.
>
> Please find attached patch.
>
> --
> Sincerely
>
> Jay
>
>
> _______________________________________________
> sr-dev mailing
listsr-dev@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>
> --
> Daniel-Constantin Mierla -
http://www.asipto.comhttp://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
> Kamailio World Conference - April 2-4, 2014, Berlin,
Germanyhttp://www.kamailioworld.com
>
>
> _______________________________________________
> sr-dev mailing list
> sr-dev(a)lists.sip-router.org
>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>
--
Sincerely
Jay
--
Daniel-Constantin Mierla -
http://www.asipto.comhttp://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
Kamailio World Conference - April 2-4, 2014, Berlin,
Germanyhttp://www.kamailioworld.com