Ulf Wendel
e6cf6693e6
Fix (by Andrey) and test for bug #49442 . Don't use efree() for memory allocated with malloc()... If a connection gets created by mysqli_init(), mysqlnd makes it 'persistent'. 'Persistent' means that mysqlnd uses malloc(). mysqlnd does use malloc() instead of ealloc() because it is unknown if the connection will become a true persistent connection in the sense of ext/mysqli. It is unknown if the user wants a persistent connection or not until the user calls mysqli_real_connect(). To avoid tricky conversions mysqlnd uses malloc(), which sets a private persistent flag in the mysqlnd structures. A precondition for the crash to happen was that the private persistent flag is set. The flag is also set when creating a real persistent connection (in the sense of ext/mysqli) and so the bug can happen with mysql_init()/mysqli_real_connect() and mysql_connect('p:<host>', ...). Therefore we test both cases. Note the (tricky?) difference between the implementation detail'mysqlnd private persistent flag = use malloc()' and persistent connections from a user perspective. Although mysqlnd will always set its private persistent flag and use malloc() for connections created with mysqli_init() it is still up to the user to decide in mysqli_real_connect() if the connection shall become a (true) persistent connection or not.
2009-09-16 17:03:44 +00:00
Ulf Wendel
20005db2a0
Fix and tests for bug #49511 . mysqlnd and the MySQL Client Library (libmysql) use different networking APIs. mysqlnd does use PHP streams whereas libmysql uses its own wrapper of the operating level network calls. PHP sets by default a read timeout of 60s for streams - php.ini, default_socket_timeout. This default applies to all streams that set no other timeout value. mysqlnd has not set any other value and therefore it connections of long running queries can have been cut off after default_socket_timeout seconds resulting in a 2006 - MySQL Server has gone away error message. The MySQL Client Library sets a default timeout of 365 * 24 * 3600 seconds (1year) and waits for other timeouts to happen, e.g. TCP/IP timeouts. mysqlnd now uses the same very long timeout. The value is configurable through a new php.ini setting: mysqlnd.net_read_timeout. mysqlnd.net_read_timeout gets used by any extension (ext/mysql, ext/mysqli, PDO_MySQL) that uses mysqlnd. mysqlnd tells PHP Streams to use mysqlnd.net_read_timeout. Please note that there may be subtle differences between MYSQL_OPT_READ_TIMEOUT from the MySQL Client Library and PHP Streams. E.g. MYSQL_OPT_READ_TIMEOUT is documented to work only for TCP/IP connections and, prior to MySQL 5.1.2, only for Windows. PHP streams may not have this limitation. Please check the streams documentation, if in doubt.
2009-09-16 15:00:54 +00:00
Ulf Wendel
617b4e9bd1
Fix for bug #49357 (MySQLi extension fails to recognize POINT (spatial) colums).
...
Do yourself a favour and use mysqlnd. mysqlnd has no isuses here.
If you insist on using the MySQL Client Library (libmysql) I strongly recommend to use mysqli_stmt_store_result() when fetching geometry data using prepared statements. When streaming data, which is the default for prepared statements, ext/mysqli will have to make a guess on the size of the result buffer it needs. The guess is based on a length reported by the MySQL CLient Library (libmysql). The MySQL Client Library reports 4GB (!) for a POINT - a conservative and safe guess. Consequently, ext/mysqli will try to allocate 4GB of RAM. The true (maximum) size of the column is not available before buffering the result on the client using mysqli_stmt_store_result(). If you call mysqli_stmt_store_result(), the result buffers will not get bigger than needed. However, store_result()/buffering is usually not what you want when you ask for prepared statements.
2009-09-11 13:38:47 +00:00
Ulf Wendel
c4c11fd38a
Fixing a crash which must have existed since PHP 5.0. At least the crash can be reproduced with PHP 5.0.6. The crash happens only when using the MySQL Client Library (libmysql) - it does not happen
...
when using mysqlnd.
2009-09-11 12:16:56 +00:00
Ulf Wendel
416ff5872d
Andrey fixed the bug but the test was somewhat borked. Fixing test.
2009-09-09 18:31:00 +00:00
Ulf Wendel
f51e935e96
Tests for http://bugs.php.net/bug.php?id=49357 (libmysql only) . The simple fix suggested in the bug system is not good enough, therefore no fix yet.
2009-09-09 17:10:29 +00:00
Andrey Hristov
67c7a37d9b
Fixed bug #49027 (mysqli_options() doesn't work when using mysqlnd)
2009-08-27 13:16:39 +00:00
Andrey Hristov
43d33e8a99
Fix for bug#46614 Extended MySQLi class gives incorrect empty() result
2009-08-27 12:41:14 +00:00
Jani Taskinen
10a7066591
- Fix test
2009-07-30 10:53:04 +00:00
Ulf Wendel
be7dd36297
MFH. Enabling test as requested by the skipif comment... it does pass when slightly modified.
2009-07-06 15:53:14 +00:00
Ulf Wendel
4786cfa4bf
MFH. Fixing mysqlnd version test to run some four previously skipped tests. There is no proper way to check the mysqlnd version. The best one can do is adapt the tests to what PHP 5.3 and PHP 6.0 return today.
2009-07-06 15:45:19 +00:00
Ulf Wendel
556feffbd4
MFH. Adapting (old) tests to current PHP 6 semantics - s/unicode.semantics test/version_compare
2009-07-06 15:08:13 +00:00
Ulf Wendel
f611876b2e
MFH. Adding --CLEAN-- sections to all ext/mysqli tests
2009-07-06 14:39:10 +00:00
Ulf Wendel
b90a412302
MFH. ... to play with large data sets. Currently its only 10MB in size to keep the test runtime short. However, its easy to increase, if you want to test large data sets
2009-07-03 12:14:39 +00:00
Ulf Wendel
26e9c79d4c
MFH. Fixing borked test, again new run-tests.php has found it... Fails with HEAD, passes with 5.3
2009-07-03 08:25:25 +00:00
Ulf Wendel
5ac0398f73
MFH. Fixing borked test - thanks again new run-tests.php tool (and team).
2009-07-03 07:50:10 +00:00
Ulf Wendel
b5455f7a7d
MFH - Adding XFAIL for some tests which expect the zval cache of mysqlnd to be on. It has been disabled for the PHP 5.3.0 release. Adding INI sections to ensure that statistics are collected. Adding tests that check if statistics collection can be disabled
2009-07-01 12:52:58 +00:00
Ulf Wendel
1ad1a2a0af
MFH - Fixing tests - messages/warnings can vary by version
2009-05-29 13:37:08 +00:00
Ulf Wendel
775cc0ca20
MFH - Updating test to reflect API changes.
2009-05-29 13:23:01 +00:00
Ulf Wendel
13d92e6957
MFH - Skip test for libmysql. The MySQL C-API does not support it, mysqlnd does...
2009-05-29 13:12:39 +00:00
Ulf Wendel
f3f1256332
MFH - 1) The wording of a message can differ by version and by libmysql vs. mysqlnd. 2) %i is better than %s
2009-05-29 13:02:43 +00:00
Ulf Wendel
6252b5ca20
MFH - Behaviour is undefined with libmysql, accept whatever libmysql may return. With mysqlnd you get the defined value of -1 to indicate 'no value'.
2009-05-29 12:55:55 +00:00
Ulf Wendel
3f17909a60
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.
2009-05-29 11:59:26 +00:00
Ulf Wendel
2445a242ec
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
2009-05-29 11:01:06 +00:00
Ulf Wendel
a027a64d73
MFH: Weaker test - libmysql/server error messages can differ by version
2009-05-29 10:34:23 +00:00
Ulf Wendel
396f5803e8
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.
2009-05-29 10:25:49 +00:00
Ulf Wendel
19bdbc49c3
MFH - Skip when using libmysql. Likely a regression bug - http://bugs.mysql.com/bug.php?id=45184
2009-05-29 10:15:50 +00:00
Andrey Hristov
a3aaa2398d
MFH:The option has changed the name, hence we change the test
2009-05-29 08:58:32 +00:00
Ulf Wendel
19194ff51b
MFH - Asynchronous queries are mysqlnd only. If you want them with libmysql, ping JimW who works on Connector/C.
2009-05-28 18:57:34 +00:00
Ulf Wendel
2eccc6f2bf
MFH - Andrey needs to have a look at this one. The bug report itself is bogus. However, the bug report shows a result set and that is wrong.
2009-05-28 18:28:08 +00:00
Andrey Hristov
fe55da71bb
MFH:
...
Forgot to commit this one, of the ANSI_QUOTES fame
2009-05-28 18:10:40 +00:00
Andrey Hristov
cabce152f9
MFH:Fix again the tests for ANSI_QUOTES
2009-05-28 18:00:28 +00:00
Andrey Hristov
804f6138a6
MFH:Fix a valgrind warning as well as more trace log information
2009-05-28 17:49:29 +00:00
Ulf Wendel
4645f51360
MFH - I had accidently removed Andrey's path to work with ANSI QUOTES... fixing what I broke (part 1)
2009-05-28 15:49:14 +00:00
Ulf Wendel
7926037318
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... :-)
2009-05-28 14:33:43 +00:00
Andrey Hristov
90a8a7f857
MFH:Fix a test, UNSIGNED is expected
2009-05-28 10:16:41 +00:00
Andrey Hristov
04d8609e9f
MFH: Fix failures when the server is running with ANSI_QUOTES
2009-05-28 09:58:36 +00:00
Andrey Hristov
07fc51d559
MFH: Fix tests when the server is running with ANSI_QUOTES
2009-05-27 18:18:58 +00:00
Ulf Wendel
6cf02c738b
Crappy anonymous MySQL user account... trying to make the test more portable.
2009-05-27 17:54:30 +00:00
Ulf Wendel
774f562375
The test is bogus as long as there is no (proper) way to detect from the PHP userland if persistent connections do a change user or not. If they do is controlled by define at the moment.
2009-05-27 17:52:32 +00:00
Ulf Wendel
b3645db1ce
Testing a little further into the direction of a possible mysqlnd vs. libmysql compatibility break or a libmysql bug. It is not clearly stated in the MySQL C-API documentation what excactly happens on stmt_reset().
2009-05-27 17:50:09 +00:00
Ulf Wendel
a39d92c144
Trying to get test failures down by fixing tests.
2009-05-27 17:46:14 +00:00
Johannes Schlüter
074b084852
MFH: export mysql_refresh
...
[DOC] This makes mysql_refresh() as described in
http://dev.mysql.com/doc/refman/6.0/en/mysql-refresh.html
available as mysqli_Refresh() and mysqli->refresh()
MYSQLI_REFRESH_BACKUP_LOG is only available when linking libmysql 6.0
or mysqlnd
2009-01-22 21:01:58 +00:00
Johannes Schlüter
e4a348d782
MFH: Fix #47050 mysqli_poll() modifies improper variables
2009-01-12 14:04:32 +00:00
Johannes Schlüter
74cfc5f3d7
MFH Fix #45940 MySQLI OO does not populate connect_error property on failed
...
connect
2009-01-12 12:56:01 +00:00
Johannes Schlüter
1e3e6cdf29
MFH: Proper ctor usage ( Fix #46044 )
2009-01-07 16:32:08 +00:00
Andrey Hristov
825034cea5
MFH:
...
Asynchronous queries for mysqli, when mysqlnd is enabled.
Includes 4 tests for mysqli_poll
2008-11-18 17:02:18 +00:00
Johannes Schlüter
04d9bbe65e
MFH: Fix #46285 (lastInsertId() returns "0" when a deferenced PDOStatement is
...
executed)
2008-10-27 17:21:22 +00:00
Andrey Hristov
34ca27a191
MFH: Fix an issue with mysqli.default_port not being used
2008-10-27 14:34:35 +00:00
Andrey Hristov
bf20aa12c7
MFH:Fix for bug#46019 MySQLi::init() leaks memory
2008-09-19 11:38:46 +00:00