Zend Framework

MS SQL Server: bug in Zend_Db_Adapter_Pdo_Mssql::limit()

Details

  • Type: Patch Patch
  • Status: Resolved Resolved
  • Priority: Minor Minor
  • Resolution: Fixed
  • Affects Version/s: 0.6.0
  • Fix Version/s: 0.8.0
  • Component/s: Zend_Db
  • Labels:
    None

Description

Zend_Db_Adapter_Pdo_Mssql::limit() incorrectly works with
Zend_Db_Select generated queries. Zend_Db_Select generates queries
with \n characters and limit() fails to patch them. This patch fixes
this issue:

--- lib/Zend/Db/Adapter/Pdo/Mssql.php   (revision 16)
+++ lib/Zend/Db/Adapter/Pdo/Mssql.php   (working copy)
@@ -121,7 +121,7 @@
                 $order = trim(preg_replace('/ASC|DESC/i', '', $order));
             }

-            $sql = preg_replace('/^SELECT /i', 'SELECT TOP '.($count+$offset).' ', $sql);
+            $sql = preg_replace('/^SELECT\s/i', 'SELECT TOP '.($count+$offset).' ', $sql);

             $sql = 'SELECT * FROM (SELECT TOP '.$count.' * FROM ('.$sql.') AS inner_tbl';
             if ($orderby !== false) {

Activity

Hide
Bill Karwin added a comment -

Adjusting summary for vendor-dependent issue.

Show
Bill Karwin added a comment - Adjusting summary for vendor-dependent issue.
Hide
Jayson Minard added a comment -

Appears fixed in changeset 3162

Show
Jayson Minard added a comment - Appears fixed in changeset 3162
Hide
Bill Karwin added a comment -

Indeed, fixed in revision 3162.

Show
Bill Karwin added a comment - Indeed, fixed in revision 3162.

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: