Edit report at http://bugs.php.net/bug.php?id=50755&edit=1
ID: 50755
Comment by: golgote at gmail dot com
Reported by: ssufficool at gmail dot com
Summary: PDO DBLIB Fails with OOM
Status: Open
Type: Bug
Package: PDO related
Operating System: Linux 2.6.30-gentoo-r2
PHP Version: 5.2 / 5.3 / 6
New Comment:
This patch makes pdo_dblib finally usable with large databases, it would
be nice
if devs could review it. Eventually, I suggest you also post a bug
report on PECL
if you think you don't have enough visibility here.
Previous Comments:
------------------------------------------------------------------------
[2010-03-29 07:22:14] ssufficool at gmail dot com
This has also been tested with latest and greatest FreeTDS 0,82 on
Ubuntu x86 & amd64. Same results, out of memory. The memory allocation
is on the PDO side, not libtds.
------------------------------------------------------------------------
[2010-03-28 22:10:09] eric at pineconehill dot com
we use freetds on debian with sql server 2005, so i'm following this
patch with
some interest. just curious, why freetds 0.64? 0.82 is the latest stable
and fixes
quite a few issues. it's been out for almost 2 years now (whereas 0.63
is 5 years
old in a couple of weeks).
------------------------------------------------------------------------
[2010-03-20 00:32:04] ssufficool at gmail dot com
Patch revised:
------------------------------------------------
1. Reverted driver always registering as dblib.
Question: Should the user really have to know the library the extension
was compiled against? Seems like we should settle on a constant
registration since you really can't mix and match.
2. Reverted whitespace modifications. Removed spurrious comments.
Reverted DBSETOPT --> dbsetopt.
3. Reverted SYB* --> SQL* define deletions. These are required for
compile against the depreciated MS DBLIB.
4. Removed automagic compute column naming (which was clobbering library
memory). Just return what the server returns including empty strings.
The user will need to alias in their sql query as "select 1+1 as
oneplusone" instead of just "select 1+1" magically returning
array('compute1'=>'2').
Question: Who if anyone relies on this behavior? I don't see other
drivers doing this.
Some unrelated/unmentioned "fixes"
------------------------------------------------
Allow multiple rowsets with varying column definitions. This was
implemented incorrectly.
Include the recent update to SQLMONEY formatting.
Tested against SQL Server 2008 Express, PHP-5.3 svn-296442, FreeTDS
0.64, Linux 2.6.30 - i686.
------------------------------------------------------------------------
[2010-03-09 23:48:39] ssufficool at gmail dot com
Affects all versions of PHP, patches attached.
------------------------------------------------------------------------
[2010-01-20 20:50:56] ssufficool at gmail dot com
Patch sent to [email protected] waiting response
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/bug.php?id=50755
--
Edit this bug report at http://bugs.php.net/bug.php?id=50755&edit=1