Commit graph

413 commits

Author SHA1 Message Date
Andrey Hristov
c7f2f1a5b1 add typedefs for all structure methods, and then reuse these typedefs 2010-02-15 16:58:33 +00:00
Andrey Hristov
480c327ff5 make send_close a hook, too 2010-02-09 19:05:40 +00:00
Andrey Hristov
e50de7d982 Pass tsrmls to all functions, which might need it in the future.
We are anyway breaking the internal ABI in 5.3.2 so this won't hurt
and make us prepared for the future.
2010-02-03 17:31:29 +00:00
Andrey Hristov
7b68aab24c Fix second bug in that code, + instead of += thus not increasing
a pointer and mangling data. Again, ext/mysql and ext/mysqli doesn't
have access to this codepath.
2010-02-01 17:12:40 +00:00
Andrey Hristov
befab3e8c3 Fix a bug in mysqlnd where a pointer was not incremented
and thus wrong data was saved MYSQLND_FIELD::db. However, this
wasn't caught because there is no code in mysql/mysqli/pdo_mysql
which reads that field of the structure. The problem was found
during code review.
2010-02-01 16:12:03 +00:00
Andrey Hristov
d9449d44a2 decrement correctly! 2010-01-21 18:17:19 +00:00
Andrey Hristov
2d7ca03976 Add possibility to restrain the number of levels 2010-01-21 18:12:18 +00:00
Andrey Hristov
6136b785b9 Fix possible lock-ups when a trigger triggers a trigger.
Hanging was possible on the subsequent try to acquire a mutex.
Now it is correctly implemented and if a trigger is being executed
then no other trigger will be fired, on recursive calls.
2010-01-19 15:31:39 +00:00
Andrey Hristov
ac1a5cd0f7 Make it GCC only feature (tracing). VC7 and up do the work
too and it might be tweaked later.
2010-01-19 12:13:06 +00:00
Andrey Hristov
f056cdaa3e fix windows 2010-01-19 11:44:43 +00:00
Andrey Hristov
beaa4d0430 Fix compiler warning, copy&paste error 2010-01-14 12:31:29 +00:00
Andrey Hristov
f551c57cf0 Fix compiler warning 2010-01-14 11:39:18 +00:00
Andrey Hristov
fef4bf8a9d remove redefinition of bit_uint8korr 2010-01-14 10:35:28 +00:00
Andrey Hristov
6a8d4c3287 more PHPAPI for phpize-d builds 2010-01-13 18:07:02 +00:00
Andrey Hristov
4bbdce5ca7 export more functionality for phpize builds 2010-01-13 18:00:41 +00:00
Andrey Hristov
176e6dd2f2 make mysqlnd's tracing API more reusable 2010-01-13 14:06:02 +00:00
Andrey Hristov
dc09fa81f5 more typedef cosmetics 2010-01-11 20:18:56 +00:00
Andrey Hristov
c4b380a076 remove stale export 2010-01-11 20:12:46 +00:00
Andrey Hristov
2331e28509 cosmetics. typedef-ed types should be in capital case 2010-01-11 20:10:10 +00:00
Andrey Hristov
1a108f1bae remove extern defintion of a variable that is no more
used outside of the file where it is declared.
Also really export with PHPAPI the protocol init/deinit functions
2010-01-11 19:13:43 +00:00
Andrey Hristov
8b3931b444 this function should be exporten in all cases, not only under PHP6 2010-01-11 18:40:11 +00:00
Andrey Hristov
d999552ae7 missed to commit in 5_3, here it comes, reusability of stats 2010-01-11 18:31:02 +00:00
Andrey Hristov
9b8d026d86 Rework the statistics macros to be reusable by external entities.
Rename handlers to triggers. Dynamically allocate space for the
statistics thus allow reusability.
2010-01-11 14:27:35 +00:00
Andrey Hristov
4a549fbb3d missed to commit to the branch 2010-01-11 12:37:42 +00:00
Andrey Hristov
81695689b9 export some calls to init/deinit code outside of the module 2010-01-08 18:52:08 +00:00
Andrey Hristov
d20fdd603b improve the stats subsystem. Reduce the number of macro definitions
in half by smartly introducing 2 new macros. Make MYSQLND::stats a pointer
from being aggregated and add triggers.
2010-01-08 17:35:20 +00:00
Andrey Hristov
3264e51983 add restart_psession and end_psession hooks 2010-01-08 13:47:03 +00:00
Andrey Hristov
73b23fca37 Change of way the packet objects are created/initialised
If the protocol gets changed, ever, we can decide at runtime
easily which protocol to use by instantiating the right protocol
object. But this is restricted to the structure of the packets, not
the flow.
2010-01-07 19:44:59 +00:00
Sebastian Bergmann
9ba1e81665 sed -i "s#1997-2009#1997-2010#g" **/*.c **/*.h **/*.php 2010-01-03 09:23:27 +00:00
Andrey Hristov
d76fa2b46c move network creation to the init hook 2009-12-28 11:17:10 +00:00
Andrey Hristov
01adfaee5f Unify. The typedef-ed structs in mysqlnd are always capitalized. 2009-12-23 11:58:45 +00:00
Johannes Schlüter
c764995c8e install mysqlnd headers to allow shared build of extensions 2009-12-22 19:30:09 +00:00
Andrey Hristov
c95fa280ed Fix double calls to free_contents if the connection cannot be
opened. mysqlnd have no probs, external code should not have too.
In any case, double call is not needed.
2009-12-22 17:44:42 +00:00
Andrey Hristov
e1251edc16 move state setting to the right place, in mysqlnd_init, no more
in mysqlnd::connect
2009-12-22 17:31:31 +00:00
Andrey Hristov
41ac91aecf Move this function to MYSQLND_NET as it works on the
php stream
2009-12-21 16:52:10 +00:00
Andrey Hristov
ce349e3540 magic numbers to macros 2009-12-21 16:17:31 +00:00
Andrey Hristov
b4477669b4 Move compression and decompression code to separate functions
which can be overloaded on purpose.
2009-12-21 16:09:13 +00:00
Andrey Hristov
028bd4ba02 refactoring : move more network related functions to
mysqlnd_net.c . Now communication is split on two levels:
- logical (functions send and receive)
- physical (functions network_read and network_write)
2009-12-17 13:29:46 +00:00
Andrey Hristov
22528b14a4 During refactoring of the function mysqlnd_stream_write_w_header() it was
found that there is a bug in the way the data is sent, although a very rare
one which will only affect very large queries which have length 16777214. The
communication will hang. A way to test it is to execute the following:
./php -r '$c=mysqli_connect("127.0.0.1","root","root","test");
$q="insert into test.tblob values(\"".str_repeat("a",256*256*256-1-34)."\")";
$c->query($q);'
2009-12-17 12:30:58 +00:00
Andrey Hristov
d233b0b2af call free_contents in every case, in case something is not freed
by the calling code
2009-12-16 14:38:30 +00:00
Andrey Hristov
a1ef2d9fb3 Remove unneeded dereferences
(oops, committed the trunk changes from a wrong directory, which splitted
this commit).
2009-12-16 14:06:09 +00:00
Andrey Hristov
b3546d1b5e move MYSQLND_NET code to a separate file.
mysqlnd_wireprotocol is about the protocol not the transport
layer
2009-12-16 12:59:38 +00:00
Andrey Hristov
5e1c95fda4 remove duplicated code 2009-12-15 17:39:30 +00:00
Andrey Hristov
c101f7f542 Move code out of mysqlnd_conn::connect to mysqlnd_net::connect.
Thus mysqlnd_conn::connect() does less of what it should not do - think
about the transport level.
2009-12-15 17:33:06 +00:00
Andrey Hristov
70690e1163 remove C++ comments 2009-12-15 14:48:24 +00:00
Andrey Hristov
523471f7e8 export this function 2009-12-15 14:26:24 +00:00
Andrey Hristov
0371ef1070 refactor: move code that belongs to MYSQLND_NET out of MYSQLND 2009-12-15 13:13:51 +00:00
Pierre Joye
af206a90ae - fix build, come on, it is not that hard to test before commit, is it? 2009-12-11 16:35:42 +00:00
Andrey Hristov
13c8bba00a Make MYSQLND_NET dynamically allocated structure with allocator
and deallocator. More member functions will come.
2009-12-11 11:58:57 +00:00
Andrey Hristov
a9295f0343 remove stale comment 2009-12-11 10:21:34 +00:00