In general, my patch may remove a line or two without a reason because I developed it using older version of the apr_dbd_mysql, so may be I just missed something.
However, with CLIENT_FOUND_ROWS I would prefer the "changed rows" behavior, not the "matched rows" one. May be additional parameter to connection string will do. > I'm a bit worried about things like this: > > ------------------------------------ > (*res)->bind[i].buffer_length = > (*res)->res->fields[i].length; > > [..snip..] > > data[i] = apr_palloc(pool, sizeof(struct blob_t) + > (*res)->bind[i].buffer_length); > ------------------------------------ I'm also well aware of the unbounded field length problem. The proper thing to do is, of course, to allocate some extent, fetch, then check for truncation and re-allocate/report error. However, current api has no way to do this cleanly. Frankly, I prefer to have an out-of-memory error than silent data truncation (I do not try to suggest that this is a way to go - only a side comment). After all, it's not unreasonable to have a MEDIUM TEXT/BLOB (24MB) fetched in one chunk on modern machine. To conclude - do you have any thoughts on how to implement this in apr way? > OK. As long as segfaults are avoided (which used to > be the case until > recently with driver from the head and MySQL 5.0), > it should be OK. Mysql likes to crash if parameter/result arrays are not zeroed fully before bind calls. I'm using pcalloc for everything because of that. With your permission, I would like to return to mysqld timeout problem. mod_dbd always does apr_dbd_check_conn, which, in turn, happily fails with "server has gone away" error. This leaves two possibilities: add some code to mod_dbd to do a reconnect or make apr_dbd_check_conn do it. The later is nicer, but it requires a support for "reopen" - whether additional driver hook or argument to xxx_open. Luckily, mysql_real_connect can use existing reference. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
