Andrey Hristov
1aad525c6e
Move definition
2009-10-22 15:17:03 +00:00
Andrey Hristov
a692479d21
Count number of affected_rows for normal and PS queries
2009-10-22 14:30:51 +00:00
Ulf Wendel
d01d398bad
Fixing host info for TCP/IP and aligning mysqlnd and libmysql
2009-10-19 12:09:48 +00:00
Ulf Wendel
3eeaf566e0
Extending mysqlnd statistics/monitoring. Now counting COM_* commands.
2009-10-16 13:02:01 +00:00
Ulf Wendel
d8dc47d58f
Making mysqlnd emit no warnings when fetching pooled persistent connections that have timed out or are unusable for any other reason - bug #49761
2009-10-15 20:46:08 +00:00
Ulf Wendel
ab4670ee53
Fixing problems when calling connect (again and again) on a valid connection handle. Most of the patch comes from Andrey.
2009-10-15 15:49:40 +00:00
Ulf Wendel
a1d3a3224e
Avoid buffer resizing and let the initial buffer allocation happen a couple of lines later with conn->m->set_client_option(conn, MYSQLND_OPT_NET_CMD_BUFFER_SIZE, ...). Andrey, I leave it to you to change the default size to 128k.
2009-10-08 16:33:17 +00:00
Ulf Wendel
4e6a1c2754
Fixing pconnect statistics.
2009-10-08 11:40:16 +00:00
Andrey Hristov
309fced64d
Increase the minimal size of the command buffer, which is used
...
for sending queries and in the future commpressed patch for reading
almost all packets from the wire instead of using stack buffers.
2009-10-07 17:33:51 +00:00
Andrey Hristov
06523621dd
revert the last change
2009-10-06 12:53:01 +00:00
Andrey Hristov
d9382399fc
count the queries
2009-10-06 10:33:23 +00:00
Andrey Hristov
2f81bcd44b
Fix ZTS build
2009-09-30 23:34:56 +00:00
Andrey Hristov
ba5c40b2ad
Use mnd_ wrappers wherever possible. Needed for
...
statistics.
2009-09-30 23:13:43 +00:00
Andrey Hristov
b9dcc28c24
Fix trace output. DBG_RETURN should be used in traced
...
functions.
2009-09-30 22:26:19 +00:00
Ulf Wendel
9408303390
Fixing a leak in mysqlnd when passing invalid fetch modes to mysqlnd.
2009-09-30 14:39:33 +00:00
Andrey Hristov
80f629ed9f
Fix possible crash when conn is NULL
2009-09-25 10:37:44 +00:00
Jani Taskinen
2c90fb8ea2
- Fix the build issue with php_mysqlnd_config.h ending up in wrong build directory
2009-09-24 18:01:17 +00:00
Dmitry Stogov
6f32199f75
Fixed compilation error
2009-09-23 08:33:23 +00:00
Andrey Hristov
452aca97e3
MFH:Check for the different types and create the
...
corresponding configuration file, so it can be used
by mysqli, even if mysqlnd is not enabled at all.
2009-09-22 14:44:11 +00:00
Andrey Hristov
c2e66884e1
MFH, a fix not included by the fix committed by Ulf.
...
pemalloc and then efree - too bad!
Sorry for committing in two passes, my big tree is already patched
with compressed.
2009-09-17 15:13:14 +00:00
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
5f260e14b2
Next attempt to fix http://bugs.php.net/bug.php?id=48745 . Patch by Andrey.
2009-09-09 17:03:03 +00:00
Andrey Hristov
9bf747605d
Fix for bug#48745
...
mysqlnd: mysql_num_fields returns wrong column count for mysql_list_fields
2009-08-28 09:30:16 +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
2dcfcf7387
MFH: fix of the fix
2009-08-25 14:32:10 +00:00
Andrey Hristov
27cbcc6078
MFH:
...
Fix bug#48198 error: 'MYSQLND_LLU_SPEC' undeclared
Possibly fix also :
Bug #48780 mysqlnd compile failure
Bug #46952 mysqlnd compile failure with suncc
2009-08-25 14:25:01 +00:00
Andrey Hristov
cac5325aac
test 2
2009-08-03 14:50:10 +00:00
Andrey Hristov
af22257ba4
test
2009-08-03 14:46:11 +00:00
Johannes Schlüter
81761e636d
Fix path
2009-06-28 21:52:51 +00:00
Pierre Joye
a68f6c9c28
- fix build
2009-06-28 12:04:44 +00:00
Johannes Schlüter
9485cad688
Revert mysqlnd to RC3 state after issues with pconnects
2009-06-25 19:03:52 +00:00
David Soria Parra
4d7e6edd63
MFH: Fix bug #48644 mysqlnd does not compile with '--enable-mysqlnd-threading'
2009-06-23 14:15:28 +00:00
Johannes Schlüter
86eaa90955
MFH The experimental warning sohuld be in the configure output...
2009-06-23 13:19:28 +00:00
Johannes Schlüter
067276a043
Temporarily disable this optimization causing too much trouble, kept in HEAD
2009-06-18 15:07:23 +00:00
Andrey Hristov
0aada07656
MFH:
...
Fix two problems:
- The value of mysqli_get_client_info() has been changed recently and did
not include "mysqlnd" anymore thus the test suite was thinking the build
is always libmysql. This did not kept the suite from running pconn tests
- Going back to the libc allocator because the memory arena could be on a
persistent connections. If the build is not debug there will be no error
but the memory will be freed and in the second use of this pconn freed
memory will be used - not good! For now the arena doesn't take an argument
whether it should allocate persistently or not, thus persistent is safe
for now.
Johannes gave his +1 to commit this.
2009-06-17 16:22:13 +00:00
Andrey Hristov
30800a79b9
MFH: C-comments
2009-06-16 18:00:00 +00:00
Andrey Hristov
10ee06ca48
MFH:
...
Memory usage optimisation. mysqlnd is not libmysql. mysqlnd does use the
Zend allocator, which means that is easier to hit memory_limit if you
have big stored (buffered) result sets. Before with libmysql you won't
hit memory_limit because libmysql uses libc's allocator and nothing is
checked. Now, with mysqlnd the situation is stricter and it is easier to
hit memory_limit. We try to optimize for big result sets. If a result set
is larger than 10 rows we will start freeing some data to keep memory usage
after 10 rows constant. This will help in the cases where a buffered result
set is scrolled forward only and just only once, or mysqlnd will need to
decode data from the network buffers again - yes, it is a trade-off between
CPU time and memory size. The best for big result sets is of course using
unbuffered queries - for comparison : 3 Million rows with buffered take
at least 180MB, with buffered you will stay at 3MB, and unbuffered will be
just 7-8% slower.
2009-06-16 13:07:14 +00:00
Andrey Hristov
27270621cb
MFH:
...
Hardwire function call instead of using callbacks. We don't actually need
callbacks, it was done for making 2 functions static, not to pollute the
global functions space but that had its price of 8 bytes overheat per
allocation, which is just too much. Also making the app member 32b instead
of 64b, which should save additional 4 byte, to the total of 12 byte per
allocation of a row buffer.
2009-06-16 09:15:38 +00:00
Andrey Hristov
a2acaa7fcd
MFH:
...
Use Zend's allocator instead of libc's and also don't try to work on
zvals that are NULLs.
2009-06-16 07:53:35 +00:00
Andrey Hristov
22c8786493
MFH:
...
Fix crash when tracing is enabled. Position after buffer was used also
direct usage of MYSQLND_STRING pointer instead of the "s" property of the
structure.
2009-06-12 13:24:57 +00:00
Andrey Hristov
9a2cc0ce67
Put these in an ifdef because they are not used at all if the zval cache
...
is off.
2009-06-11 17:54:04 +00:00
Pierre Joye
f2fcd8fb29
- silent warning and make it less ambiguous
2009-06-11 14:36:48 +00:00
Johannes Schlüter
11340cf299
MFH: Use a better extension version
2009-06-11 10:18:08 +00:00
Andrey Hristov
28c8d25dca
MFH:
...
Protect the code when variable is NULL, which should never happen, but
anyway, you know about "never happens" :)
2009-06-11 08:52:06 +00:00
Andrey Hristov
cff09ba5df
MFH:
...
Check the pointer before calling a function on it, or we will crash.
This is a very rare situation where the server is totally broken.
2009-06-11 08:35:47 +00:00
Andrey Hristov
a3b85c28c6
Sync with PHP6 - TSRMLS_FETCH
...
Extract reference decrement in own function
Remove PHPAPI of a function and make it static as it is not called
externally
2009-06-11 08:30:08 +00:00
Andrey Hristov
ec777b89f4
Merge with HEAD. Someone committed changes to HEAD and did not merge back to
...
the branch.
Also switch off the zval cache, for now.
2009-06-08 10:20:27 +00:00
Andrey Hristov
c1d46eb502
MFH:Add support for mysql_stmt_store_result() from libmysql 6.0.8+ and 5.4.x
2009-05-29 13:09:47 +00:00
Andrey Hristov
ccf0665170
MFH:Fix for the failing mysql_stmt_execute() test. Data was cleaned after
...
stmt_reset() but it should stay and be freed as later as next stmt_execute()
2009-05-29 12:19:40 +00:00