Skip to content

Commit 625dd63

Browse files
committed
Merge pull request doctrine#2310 from asgrim/fix-order-of-params-for-migrations
[DB2] Move row number to the end of the field list in query limit/offset modification
2 parents a500e1a + 2ee02ed commit 625dd63

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

lib/Doctrine/DBAL/Platforms/DB2Platform.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@ protected function doModifyLimitQuery($query, $limit, $offset = null)
749749
$offset = (int) (($offset)?:0);
750750

751751
// Todo OVER() needs ORDER BY data!
752-
$sql = 'SELECT db22.* FROM (SELECT ROW_NUMBER() OVER() AS DC_ROWNUM, db21.* '.
752+
$sql = 'SELECT db22.* FROM (SELECT db21.*, ROW_NUMBER() OVER() AS DC_ROWNUM '.
753753
'FROM (' . $query . ') db21) db22 WHERE db22.DC_ROWNUM BETWEEN ' . ($offset+1) .' AND ' . ($offset+$limit);
754754

755755
return $sql;

tests/Doctrine/Tests/DBAL/Platforms/DB2PlatformTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -347,21 +347,21 @@ public function testModifiesLimitQuery()
347347
);
348348

349349
$this->assertEquals(
350-
'SELECT db22.* FROM (SELECT ROW_NUMBER() OVER() AS DC_ROWNUM, db21.* FROM (SELECT * FROM user) db21) db22 WHERE db22.DC_ROWNUM BETWEEN 1 AND 10',
350+
'SELECT db22.* FROM (SELECT db21.*, ROW_NUMBER() OVER() AS DC_ROWNUM FROM (SELECT * FROM user) db21) db22 WHERE db22.DC_ROWNUM BETWEEN 1 AND 10',
351351
$this->_platform->modifyLimitQuery('SELECT * FROM user', 10, 0)
352352
);
353353

354354
$this->assertEquals(
355-
'SELECT db22.* FROM (SELECT ROW_NUMBER() OVER() AS DC_ROWNUM, db21.* FROM (SELECT * FROM user) db21) db22 WHERE db22.DC_ROWNUM BETWEEN 1 AND 10',
355+
'SELECT db22.* FROM (SELECT db21.*, ROW_NUMBER() OVER() AS DC_ROWNUM FROM (SELECT * FROM user) db21) db22 WHERE db22.DC_ROWNUM BETWEEN 1 AND 10',
356356
$this->_platform->modifyLimitQuery('SELECT * FROM user', 10)
357357
);
358358

359359
$this->assertEquals(
360-
'SELECT db22.* FROM (SELECT ROW_NUMBER() OVER() AS DC_ROWNUM, db21.* FROM (SELECT * FROM user) db21) db22 WHERE db22.DC_ROWNUM BETWEEN 6 AND 15',
360+
'SELECT db22.* FROM (SELECT db21.*, ROW_NUMBER() OVER() AS DC_ROWNUM FROM (SELECT * FROM user) db21) db22 WHERE db22.DC_ROWNUM BETWEEN 6 AND 15',
361361
$this->_platform->modifyLimitQuery('SELECT * FROM user', 10, 5)
362362
);
363363
$this->assertEquals(
364-
'SELECT db22.* FROM (SELECT ROW_NUMBER() OVER() AS DC_ROWNUM, db21.* FROM (SELECT * FROM user) db21) db22 WHERE db22.DC_ROWNUM BETWEEN 6 AND 5',
364+
'SELECT db22.* FROM (SELECT db21.*, ROW_NUMBER() OVER() AS DC_ROWNUM FROM (SELECT * FROM user) db21) db22 WHERE db22.DC_ROWNUM BETWEEN 6 AND 5',
365365
$this->_platform->modifyLimitQuery('SELECT * FROM user', 0, 5)
366366
);
367367
}

0 commit comments

Comments
 (0)