Database Looping Bug

Hi everybody,

I think there is a bug in the Database Looping node.

I have this failure during execution :

  • ERROR Database Looping     11:521     Execute failed: No group 3

Maybe, could you give me a solution ?!? :-)

I make a small workflow to show you the bug, In my real workflow, the error is not at the same row !!! !!! !!!

You can find the work flow here

You can see the error on this picture.

<img src="http://ringtarget.com/DatabaseLooping_bug.png">

 

I solve the problem. I replace the Database looping by the Parameterized Database Query.

Nevertheless, there is still a bug in the Database looping.

I think the SQL query is ill formed. 

You are using count(), which is an aggregate fucntion, while also retrieving id as an individual field.  

In this case the query needs the partition for the count() function to be specified, via a group by statement.

SELECT id as feed_id, CASE 
        WHEN count(id) < 1 THEN 'non'
           END as feed_result  FROM feed 
    WHERE CONCAT(title, description) IN ('#PLACE_HOLDER_DO_NOT_EDIT#')

GROUP BY id

should run, but I'm not sure if the result is what you're after.

 

Hi David Ko,

Thanks for your answer and for the time you take for my workflow.

The SQL query is correct, because the same query run well with other node and it run well too in the query builder of Mysql. There is a bug. The same query work with the "Parameterized Database Query" node.

The "parameterized Database Query" is more flexible. My query in Parameterized Database Query is :

SELECT id as feed_id, CASE
        WHEN count(id) < 1 THEN 'non'
           END as feed_result  FROM feed
    WHERE title = $title$ AND description = $description$


You're right when you tell that the query have to be grouped but it is not required, it is optional.

I suppose that the problem come from the CONCAT() function or maybe the error come from special chars, but I am not sure. I tell that because the Database Looping node don't support single quote in the query while the Parameterized Database query supports single quote. So, using Database Looping, we have to replace single quote with a duplicate single quote.
 

Thierry