Bug #47589 [Bgs->Csd]: PDO DBLIB Fails with OOM on large recordsets
Edit report at http://bugs.php.net/bug.php?id=47589&edit=1
ID: 47589
Updated by: ssufficool@php.net
Reported by: ssufficool at gmail dot com
Summary: PDO DBLIB Fails with OOM on large recordsets
-Status: Bogus
+Status: Closed
Type: Bug
Package: PDO related
Operating System: Linux (Gentoo)
PHP Version: 5.2.9
-Assigned To:
+Assigned To: ssufficool
New Comment:
Fixed in revision 300002.
Previous Comments:
------------------------------------------------------------------------
[2010-01-14 18:52:49] ssufficool at gmail dot com
new e-mail
------------------------------------------------------------------------
[2010-01-14 18:20:33] ssufficool at roadrunner dot com
Please re-open this bug. I understand that the behaviour is shared
across the PDO::DBLIB and MSSQL_* functions, however other PDO drivers
do not have this issue (I.E. PDO:POSTGRESQL) and the same query issued
on the command line via freetds (tsql) does not consume memory like
this.
I am using a CURSOR_FWDONLY and this should not require buffering all
the rows on the client.
------------------------------------------------------------------------
[2009-03-06 17:04:47] ssufficool at roadrunner dot com
My understanding of Bogus is indeed Bogus. After setting batchsize to 0
in php.ini, mssql_query also barfs on large recordssets.
Apologies for the noise.
------------------------------------------------------------------------
[2009-03-06 16:36:43] ssufficool at gmail dot com
Description:
------------
When pulling large recordsets with PDO DBLIB I get out of memory.
This type of large recordset query works fine on mssql_* functions using
the freetds library. This issue has been marked "Bogus" in the past. But
since this works with other functions using FreeTDS, this issue may lie
in the PDO layer.
Correct me if my understanding of Bogus is Bogus.
Reproduce code:
---------------
$pdo_ms = new PDO('dblib: host=host', 'user','pass');
/* We die here */
$rs = $pdo_ms->query("SELECT TOP 50000 from aVeryLargeTable");
Expected result:
----------------
A valid handle to a resultset in $rs
Actual result:
--------------
Available memory exhausted, tried to allocate....
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=47589&edit=1
Thread (5 messages)