cvs: php-src / NEWS /ext/pdo_mysql mysql_driver.c mysql_statement.c pdo_mysql.c php_pdo_mysql_int.h /ext/pdo_mysql/tests pdo_016.phpt
| From: | Ilia Alshanetsky | Date: | Fri, 24 Jun 2005 19:45:59 +0000 |
| Subject: | cvs: php-src / NEWS /ext/pdo_mysql mysql_driver.c mysql_statement.c pdo_mysql.c php_pdo_mysql_int.h /ext/pdo_mysql/tests pdo_016.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-32500@lists.php.net to get a copy of this message | ||
iliaa Fri Jun 24 15:45:59 2005 EDT
Modified files:
/php-src/ext/pdo_mysql mysql_driver.c mysql_statement.c pdo_mysql.c
php_pdo_mysql_int.h
/php-src/ext/pdo_mysql/tests pdo_016.phpt
/php-src NEWS
Log:
Added PDO_MYSQL_ATTR_USE_BUFFERED_QUERY parameter for pdo_mysql, to toggle
usage of buffered queries.
http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/mysql_driver.c?r1=1.46&r2=1.47&ty=u
Index: php-src/ext/pdo_mysql/mysql_driver.c
diff -u php-src/ext/pdo_mysql/mysql_driver.c:1.46 php-src/ext/pdo_mysql/mysql_driver.c:1.47
--- php-src/ext/pdo_mysql/mysql_driver.c:1.46 Wed May 18 18:40:56 2005
+++ php-src/ext/pdo_mysql/mysql_driver.c Fri Jun 24 15:45:57 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_driver.c,v 1.46 2005/05/18 22:40:56 iliaa Exp $ */
+/* $Id: mysql_driver.c,v 1.47 2005/06/24 19:45:57 iliaa Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -37,6 +37,7 @@
switch (my_errno) {
/* import auto-generated case: code */
#include "php_pdo_mysql_sqlstate.h"
+ case 2014: return "PDDRV"; /* out of sync */
default: return "HY000";
}
}
@@ -66,7 +67,11 @@
}
if (einfo->errcode) {
- einfo->errmsg = pestrdup(mysql_error(H->server), dbh->is_persistent);
+ if (2014 != einfo->errcode) {
+ einfo->errmsg = pestrdup(mysql_error(H->server), dbh->is_persistent);
+ } else {
+ einfo->errmsg = pestrdup("Cannot execute queries, while other unbuffered queries are
active. To enable query buffering set PDO_MYSQL_ATTR_USE_BUFFERED_QUERY attribute.",
dbh->is_persistent);
+ }
} else { /* no error */
strcpy(*pdo_err, PDO_ERR_NONE);
return 0;
@@ -208,6 +213,10 @@
mysql_handle_autocommit(dbh TSRMLS_CC);
}
return 1;
+
+ case PDO_MYSQL_ATTR_USE_BUFFERED_QUERY:
+ ((pdo_mysql_db_handle *)dbh->driver_data)->buffered = Z_BVAL_P(val);
+ return 1;
default:
return 0;
@@ -247,6 +256,10 @@
ZVAL_LONG(return_value, dbh->auto_commit);
return 1;
+ case PDO_MYSQL_ATTR_USE_BUFFERED_QUERY:
+ ZVAL_LONG(return_value, H->buffered);
+ return 1;
+
default:
return 0;
}
@@ -309,6 +322,7 @@
/* handle MySQL options */
if (driver_options) {
long connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30 TSRMLS_CC);
+ H->buffered = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 0 TSRMLS_CC);
if (mysql_options(H->server, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout)) {
pdo_mysql_error(dbh);
http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/mysql_statement.c?r1=1.25&r2=1.26&ty=u
Index: php-src/ext/pdo_mysql/mysql_statement.c
diff -u php-src/ext/pdo_mysql/mysql_statement.c:1.25 php-src/ext/pdo_mysql/mysql_statement.c:1.26
--- php-src/ext/pdo_mysql/mysql_statement.c:1.25 Wed May 18 18:40:56 2005
+++ php-src/ext/pdo_mysql/mysql_statement.c Fri Jun 24 15:45:57 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_statement.c,v 1.25 2005/05/18 22:40:56 iliaa Exp $ */
+/* $Id: mysql_statement.c,v 1.26 2005/06/24 19:45:57 iliaa Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -69,7 +69,11 @@
if (row_count == (my_ulonglong)-1) {
/* we either have a query that returned a result set or an error occured
lets see if we have access to a result set */
- S->result = mysql_use_result(H->server);
+ if (!H->buffered) {
+ S->result = mysql_use_result(H->server);
+ } else {
+ S->result = mysql_store_result(H->server);
+ }
if (NULL == S->result) {
pdo_mysql_error_stmt(stmt);
return 0;
http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/pdo_mysql.c?r1=1.5&r2=1.6&ty=u
Index: php-src/ext/pdo_mysql/pdo_mysql.c
diff -u php-src/ext/pdo_mysql/pdo_mysql.c:1.5 php-src/ext/pdo_mysql/pdo_mysql.c:1.6
--- php-src/ext/pdo_mysql/pdo_mysql.c:1.5 Wed Jun 22 20:19:14 2005
+++ php-src/ext/pdo_mysql/pdo_mysql.c Fri Jun 24 15:45:57 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_mysql.c,v 1.5 2005/06/23 00:19:14 helly Exp $ */
+/* $Id: pdo_mysql.c,v 1.6 2005/06/24 19:45:57 iliaa Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -75,6 +75,8 @@
*/
PHP_MINIT_FUNCTION(pdo_mysql)
{
+ REGISTER_LONG_CONSTANT("PDO_MYSQL_ATTR_USE_BUFFERED_QUERY",
(long)PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, CONST_CS|CONST_PERSISTENT);
+
return php_pdo_register_driver(&pdo_mysql_driver);
}
/* }}} */
http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/php_pdo_mysql_int.h?r1=1.13&r2=1.14&ty=u
Index: php-src/ext/pdo_mysql/php_pdo_mysql_int.h
diff -u php-src/ext/pdo_mysql/php_pdo_mysql_int.h:1.13
php-src/ext/pdo_mysql/php_pdo_mysql_int.h:1.14
--- php-src/ext/pdo_mysql/php_pdo_mysql_int.h:1.13 Sun Feb 27 15:34:36 2005
+++ php-src/ext/pdo_mysql/php_pdo_mysql_int.h Fri Jun 24 15:45:57 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_pdo_mysql_int.h,v 1.13 2005/02/27 20:34:36 hholzgra Exp $ */
+/* $Id: php_pdo_mysql_int.h,v 1.14 2005/06/24 19:45:57 iliaa Exp $ */
#ifndef PHP_PDO_MYSQL_INT_H
#define PHP_PDO_MYSQL_INT_H
@@ -35,6 +35,7 @@
MYSQL *server;
unsigned attached:1;
+ unsigned buffered:1;
unsigned _reserved:31;
pdo_mysql_error_info einfo;
@@ -67,4 +68,8 @@
#define pdo_mysql_error_stmt(s) _pdo_mysql_error(stmt->dbh, stmt, __FILE__, __LINE__ TSRMLS_CC)
extern struct pdo_stmt_methods mysql_stmt_methods;
+
+enum {
+ PDO_MYSQL_ATTR_USE_BUFFERED_QUERY = PDO_ATTR_DRIVER_SPECIFIC,
+};
#endif
http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/tests/pdo_016.phpt?r1=1.1&r2=1.2&ty=u
Index: php-src/ext/pdo_mysql/tests/pdo_016.phpt
diff -u php-src/ext/pdo_mysql/tests/pdo_016.phpt:1.1 php-src/ext/pdo_mysql/tests/pdo_016.phpt:1.2
--- php-src/ext/pdo_mysql/tests/pdo_016.phpt:1.1 Thu Mar 3 20:29:27 2005
+++ php-src/ext/pdo_mysql/tests/pdo_016.phpt Fri Jun 24 15:45:59 2005
@@ -10,6 +10,7 @@
require_once('connection.inc');
require_once('prepare.inc');
+$DB->setAttribute(PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 1);
require_once($PDO_TESTS . 'pdo_016.inc');
?>
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1958&r2=1.1959&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1958 php-src/NEWS:1.1959
--- php-src/NEWS:1.1958 Fri Jun 24 04:45:14 2005
+++ php-src/NEWS Fri Jun 24 15:45:59 2005
@@ -1,6 +1,8 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2005, PHP 5.1 Beta 3
+- Added PDO_MYSQL_ATTR_USE_BUFFERED_QUERY parameter for pdo_mysql, to toggle
+ usage of buffered queries.
- Fixed bug #32660 (Assignment by reference causes crash when field access is
overloaded (__get)). (Dmitry)
- Fixed bug #30828 (debug_backtrace() reports incorrect class in overridden