#6245: HABTM primaryKey identified in one direction only, bad DELETE queries
    Reporter:  cuppett           |         Owner:           
        Type:  Test Case         |        Status:  reopened 
    Priority:  High              |     Milestone:  1.2.x.x  
   Component:  General           |       Version:  1.2 Final
    Severity:  Major             |    Resolution:           
    Keywords:  HABTM primaryKey  |   Php_version:  PHP 5    
Cake_version:        |  
Comment (by cuppett):

 Okay.  Have testcase.  Thanks for the pointers today![[BR]]
 The problem seems to be database specific.  Postgres exhibits the problem,
 MySQL does not.  I do not know about other engines.[[BR]]
 Using MySQL, the test passes and I see this:[[BR]]
 Query #12: DELETE `PostsTag` FROM `posts_tags` AS `PostsTag` WHERE
 `PostsTag`.`tag_id` = '1' AND `PostsTag`.`post_id` IN (1, 2)[[BR]]
 Query #17: DELETE `PostsTag` FROM `posts_tags` AS `PostsTag` WHERE
 `PostsTag`.`post_id` = 2 AND `PostsTag`.`tag_id` = ('3')[[BR]]
 Using PostgreSQL, the test fails.  I get the following (unrelated?)
 Query #19: SELECT "Tag"."id" AS "Tag__id", "Tag"."tag" AS "Tag__tag",
 "Tag"."created" AS "Tag__created", "Tag"."updated" AS "Tag__updated",
 "PostsTag"."post_id" AS "PostsTag__post_id", "PostsTag"."tag_id" AS
 "PostsTag__tag_id" FROM "tags" AS "Tag" JOIN "posts_tags" AS "PostsTag" ON
 ("PostsTag"."post_id" = '1' AND "PostsTag"."tag_id" = "Tag"."id") WHERE 1
 = 1[[BR]]
 Error: ERROR: operator does not exist: character varying = integer LINE 1:
 ...PostsTag"."post_id" = '1' AND "PostsTag"."tag_id" = "Tag"."i... ^ HINT:
 No operator matches the given name and argument type(s). You might need to
 add explicit type casts.[[BR]]
 And the problematic query:[[BR]]
 Query #24: DELETE FROM "posts_tags" WHERE "post_id" IN ('1', '2')[[BR]]
 I'm unsure about the second save's results as the first eliminates extra
 rows that makes the second DELETE query unnecessary on ->save().[[BR]]
 I've attached the testcase.  Also, I will apply my patch and post back
 with those results for MySQL and PostgreSQL.

Ticket URL: <https://trac.cakephp.org/ticket/6245#comment:9>
CakePHP : The Rapid Development Framework for PHP <https://trac.cakephp.org/>
Cake is a rapid development framework for PHP which uses commonly known design 
patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. 
Our primary goal is to provide a structured framework that enables PHP users at 
all levels to rapidly develop robust web applications, without any loss to 
You received this message because you are subscribed to the Google Groups 
"tickets cakephp" group.
To post to this group, send email to tickets-cakephp@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to