#1696: queries with subqueries and limit() broken in 1.1
-----------------------------------+----------------------------------------
 Reporter:  jasoneisen             |       Owner:  romanb 
     Type:  defect                 |      Status:  new    
 Priority:  major                  |   Milestone:  1.1.0  
Component:  Query/Hydration        |     Version:  1.1-DEV
 Keywords:                         |    Has_test:  0      
 Mystatus:  Pending Core Response  |   Has_patch:  0      
-----------------------------------+----------------------------------------
 Jasone: guilhermeblanco:
 [09:15am] guilhermeblanco: pong
 [09:20am] Jasone: found it
 [09:20am] Jasone: http://pastie.org/324011
 [09:21am] Jasone: it cant be tested because it is a mysql driver
 [09:22am] Jasone: just do any query with a subquery
 [09:22am] Jasone: an addWhere
 [09:22am] Jasone: and a limit()
 [09:22am] Jasone: and it should break
 [09:22am] Jasone: in 1.1
 [09:25am] Jasone: guilhermeblanco:
 [09:25am] Jasone: and something you did in r5014 breaks it
 [09:25am] Jasone: because it works in 5013
 [09:26am] guilhermeblanco: hm
 [09:26am] Jasone: now, $params is always empty
 [09:27am] Jasone: so it never runs a prepared statement
 [09:27am] guilhermeblanco: by changing from $params to
 $this->_params['where'] solves it?
 [09:28am] guilhermeblanco: I don't think it'll work out of the box... but
 I'll wait your answer, Jasone
 [09:28am] Jasone: it works for me
 [09:29am] Jasone: i figure you'll have a better idea
 [09:29am] Jasone: since you wrote 5014
 [09:29am] Jasone: and know what all the $_params entails
 [09:31am] guilhermeblanco: the point is you'll have to inflate the
 _params[where] anyway
 [09:32am] guilhermeblanco: since it may be this:
 [09:32am] Jasone: inflate?
 [09:32am] guilhermeblanco: array('foo', array('bar', 'baz'))
 [09:32am] guilhermeblanco: it'll need to be converted to:
 [09:32am] guilhermeblanco: array('foo', 'bar', 'baz')
 [09:32am] guilhermeblanco: since PDO does not accept foo.id IN ?
 [09:33am] guilhermeblanco: you'll have to convert the array of items into
 a list of ?, ?
 [09:33am] guilhermeblanco: so... when you inflate...
 [09:33am] guilhermeblanco: you'll have to:
 [09:33am] guilhermeblanco: foo.id IN (?, ?)
 [09:33am] guilhermeblanco: and remove the inner array
 [09:33am] guilhermeblanco: that's the point
 [09:33am] guilhermeblanco: you get it now?
 [09:33am] Jasone: yes
 [09:34am] Jasone: is there just a method i can pass it to that will do
 that
 [09:34am] guilhermeblanco: that's why raw _params['where'] will not work
 [09:34am] guilhermeblanco: there is... but you'll have to be sure the
 subquery does not have the IN ?
 [09:34am] guilhermeblanco: because they'll need to be converted
 guilhermeblanco: $this->fixArrayParameterValues\
 [09:36am] guilhermeblanco: it's this method, btw
 [09:38am] Jasone: but $params is still empty
 [09:38am] guilhermeblanco: hm... there's a getInternalParams method that
 maybe it's something like:
 [09:38am] guilhermeblanco: $this->getInternalParams('where')
 [09:39am] Jasone: well what im saying is
 [09:39am] Jasone: before, $params was populated

-- 
Ticket URL: <http://trac.doctrine-project.org/ticket/1696>
Doctrine <http://www.phpdoctrine.org>
PHP Doctrine Object Relational Mapper
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"doctrine-svn" 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.co.uk/group/doctrine-svn?hl=en-GB
-~----------~----~----~----~------~----~------~--~---

Reply via email to