Scott MacVicar [Tue, 9 Jun 2009 01:58:07 +0000 (01:58 +0000)]
MFH Fix bug #48493 - spl_autoload_register can leave the HT in an inconsistent way.
Need to point the second elements previous item to head so we can traverse upwards.
Matt Wilmas [Sat, 6 Jun 2009 02:40:49 +0000 (02:40 +0000)]
MFH: Fixed error message grammar:
- "cannot" instead of "can not" (meaning "also can")
- "than" instead of "then" (Hint: "then" should hardly be needed;
you're not telling the order in which to do something)
Matt Wilmas [Thu, 4 Jun 2009 18:20:45 +0000 (18:20 +0000)]
MFH:
Restored double->long conversion behavior to that of PHP 5.2 (on most platforms) and prior:
* Out-of-range numbers overflow/preserve least significant bits (no LONG_MAX/MIN limit)
* See bug #42868 (presumably-rare platform with different results in 5.2)
* On 32-bit platforms with 64-bit long type, a zend_long64 cast has been added,
otherwise it's the same as 5.2
* Use this conversion method everywhere instead of some plain (long) casts
Added 'L' parameter parsing specifier to ensure a LONG_MAX/MIN limit:
* Essentially what 5.3's new conversion was doing in most cases
* Functions with "limit" or "length" type params could be updated to use this,
and prevent confusing overflow behavior with huge numbers (*also* in 5.2)
- See bug #47854, for example; or even #42868 again
Pierre Joye [Thu, 4 Jun 2009 06:59:46 +0000 (06:59 +0000)]
- [DOC] add PHP_WINDOWS_NT_* and PHP_WINDOWS_VERSION_* constants (usefull for testing and features detections)
see http://msdn.microsoft.com/en-us/library/ms724451(VS.85).aspx for the explanation
Nuno Lopes [Mon, 1 Jun 2009 17:51:53 +0000 (17:51 +0000)]
fix compiler warnings by moving all std includes after include of zend_config.h.
this also fixes the build with stricter compilers than gcc (like clang)
Arnaud Le Blanc [Mon, 1 Jun 2009 16:10:35 +0000 (16:10 +0000)]
MFH: New tests
# These tests were failing on different configurations, so adding them
# all to get more chances of seeing one failing in case of problem.
Ulf Wendel [Fri, 29 May 2009 11:59:26 +0000 (11:59 +0000)]
MFH - 'Fixing' test to reflect a libmysql vs. mysqlnd difference. With libmysql it is not defined what mysql_stmt_store_result() shall return when one tries to store the (non-existing) result set of a failed SQL statement, http://dev.mysql.com/doc/refman/6.0/en/mysql-stmt-store-result.html . mysqlnd will detect the SQL failure and return false. libmysql will return true. If you want libmysql to change, file a bug report at MySQL... I don't think there is a good way to work around this in the extension itself.
Ulf Wendel [Fri, 29 May 2009 11:01:06 +0000 (11:01 +0000)]
MFH - Another detail where mysqlnd is superior than libmysql. The mysql_info() from libmysql does not support SELECT: http://dev.mysql.com/doc/refman/6.0/en/mysql-info.html . mysqlnd does support it. Libmysql feature request filed http://bugs.mysql.com/bug.php?id=45189
Ulf Wendel [Fri, 29 May 2009 10:25:49 +0000 (10:25 +0000)]
MFH - Weaker test: functions are only available if HAVE_EMBEDDED_MYSQLI is set. There is probably no proper way to check this condition in the user land.
Andrey Hristov [Thu, 28 May 2009 16:35:41 +0000 (16:35 +0000)]
MFH:Fix a problem with cursors, which did not happen with unbuffered PS for
some reason. Double free of the data, which led to valgrind warnigns.
The fix actually optimizes the code in this cases because the old code
used copy_ctor while the new one skips it because it is not needed.
Transferring data ownership and nulling works best, for PS where we
always copy the string from the result set, unlike the text protocol.
Ulf Wendel [Thu, 28 May 2009 14:33:43 +0000 (14:33 +0000)]
MFH - what a wonderful word. After the change in HEAD its easy to do a merge. The merge removes all UEXPECTF sections from the old days. Yes, there have been UEXPECTFs in 5_3. I hope PHP 6 won't change again over time... :-)
Andrey Hristov [Thu, 28 May 2009 11:47:48 +0000 (11:47 +0000)]
MFH:
Fix a bug with mysqlnd_fetch_field(_direct()). With mysqlnd the optimised
function was called, which however, doesn't respect that during store the
raw data is not unpacked, to be lazy. The data is unpacked to zvals later,
during every row fetch. However, this way max_length won't be calculated
correctly. So, if a mysqlnd_fetch_field(_direct) call comes we need to
unpack everything and then calculate max_length...and that is expensive,
defies our lazy unpacking optimisation.