Edit report at https://bugs.php.net/bug.php?id=63356&edit=1
ID: 63356
User updated by: james at kenjim dot com
Reported by: james at kenjim dot com
Summary: Add support for native php data types returned from
Firebird PDO select queries
Status: Assigned
Type: Feature/Change Request
Package: PDO related
Operating System: All
PHP Version: 5.4Git-2012-10-25 (Git)
Assigned To: mariuz
Block user comment: N
Private report: N
New Comment:
The problem with the ***zval is I could not figure out how to return such a
data type without causing a memory leak. The extra pointer to a pointer just
seemed excessive and removing it solved my problem.
As for splitting the patches, a few of them depend on each other so there is no
good way to split them without creating patches that do not work with each
other. The patch for bug #61183 has already been submitted there and is simple
enough that it could be removed from my submitted patch here by hand. Bug
#60552 gets fixed because the majority of the time I'm using native data types
so I can't exactly remove it from my native data type support patch.
As for Bug #47415 that patch was just improperly applied to the php source tree
and ended up in the wrong switch statement. I suppose that could be pulled out
of this patch but I did also modify the PDO_PARAM_EVT_FETCH_POST case which the
patch was embedded in. I don't remember why I removed most of that
PDO_PARAM_EVT_FETCH_POST switch statement. I think it was because I couldn't
figure out why it was ever needed or even run. It's also possible it may have
caused a crash but I don't recall it's been too long.
Previous Comments:
------------------------------------------------------------------------
[2013-02-08 07:53:03] [email protected]
Could you split the patch for each bug the ones that you mentioned at the end
Also i will ask about the patching of /ext/pdo/pdo_stmt.c , i'm not sure what
is
the right way so i better ask on the list first
------------------------------------------------------------------------
[2012-10-25 08:11:17] james at kenjim dot com
Description:
------------
The data returned from a $rs->fetch() should use native data types when
applicable. Currently all data is turned into strings. Using native data
types will not only provide a way for the user to easily check the data type.
It should also give a performance enhancement since everything does not need to
be turned into a string. Some other database adapters already provide this
ability.
I have included a patch to add this functionality however I did have to modify
/ext/pdo/pdo_stmt.c due to the way it was handling returning of zval's. It was
expecting a ***zval when it really should of been a **zval. Due to this
excessive pointer requirement any other pdo database driver that returns zval's
will need to be fixed. I included in my patch a possible fix for the mysqlng
pdo driver since I believe this is the only driver that uses it. I say
possible fix because I have not tested the mysqlng support part of it. The
patch also includes my patch for Bug #61183 - Firebird PDO memory corruption.
It should also fix Bug #60052 - Integer returned as a 64bit integer on X64_86.
It also fixes the patch that was improperly applied in Bug #47415 -
PDO_Firebird segfaults when passing lowercased column name to bindColumn().
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=63356&edit=1