This bug is actually a showstopper for me. Until it is fixed, I cannot migrate our project to DM 0.10. Does anyone on this list have some suggestions on how this should be fixed? I am willing to dive in cold, but having a few pointers up front would be great. Thanks.
..tony.. On Fri, Sep 25, 2009 at 2:16 PM, Tony Mann <[email protected]> wrote: > First, the quick synopsis. Datamapper is generating this query: > SELECT COUNT(*) FROM `crawled_pages` > INNER JOIN `recruiters` ON `board_accounts`.`recruiter_id` = > `recruiters`.`id` > INNER JOIN `crawling_runs` ON `crawled_pages`.`crawling_run_id` = > `crawling_runs`.`id` > INNER JOIN `board_accounts` ON `crawling_runs`.`board_account_id` = > `board_accounts`.`id` > WHERE `board_accounts`.`board_id` = 'board1' > > MySQL is not happy with this, since the INNER JOINs are in the wrong order. > If I change the order of the JOINs around, the query works: > > SELECT COUNT(*) FROM `crawled_pages` > INNER JOIN `crawling_runs` ON `crawled_pages`.`crawling_run_id` = > `crawling_runs`.`id` > INNER JOIN `board_accounts` ON `crawling_runs`.`board_account_id` = > `board_accounts`.`id` > INNER JOIN `recruiters` ON `board_accounts`.`recruiter_id` = > `recruiters`.`id` > WHERE `board_accounts`.`board_id` = 'board1' > > This has nothing to do with dm-aggregate, as I can repro the problem using > Model.all. > > Here is the code that generates the errant query: > > CrawledPage.count('crawling_run.board_account.board_id' => 'board1') > > And here are the models (extraneous code removed): > > class CrawledPage > property :id, Serial > belongs_to :crawling_run > end > > class CrawlingRun > property :id, Serial > belongs_to :board_account > has n, :crawled_pages > end > > class BoardAccount > property :id, Serial > belongs_to :board > belongs_to :recruiter, :nullable => true > has n, :crawling_runs > end > > class Recruiter > property :id, Serial > has n, :board_accounts > end > > Anyone know if this has been fixed in 0.10.1 or filed as a ticket? If I > want to fix this, any suggestions where to dive in? > > Thanks. > > ..tony.. > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DataMapper" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/datamapper?hl=en -~----------~----~----~----~------~----~------~--~---
