Browse Source

Sync with bzr

PECL
Andrey Hristov 18 years ago
parent
commit
136a55fcd9
  1. 6
      ext/mysql/php_mysql.c
  2. 6
      ext/mysqli/mysqli.c
  3. 1
      ext/mysqlnd/mysqlnd.c
  4. 2
      ext/mysqlnd/mysqlnd_palloc.c
  5. 2
      ext/mysqlnd/mysqlnd_ps.c
  6. 2
      ext/mysqlnd/mysqlnd_wireprotocol.c

6
ext/mysql/php_mysql.c

@ -687,6 +687,8 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
client_flags ^= CLIENT_LOCAL_FILES; client_flags ^= CLIENT_LOCAL_FILES;
} }
client_flags &= ~CLIENT_MULTI_STATEMENTS; /* don't allow multi_queries via connect parameter */
hashed_details_length = spprintf(&hashed_details, 0, "mysql_%s_%s_%s_%ld", SAFE_STRING(host_and_port), SAFE_STRING(user), SAFE_STRING(passwd), client_flags); hashed_details_length = spprintf(&hashed_details, 0, "mysql_%s_%s_%s_%ld", SAFE_STRING(host_and_port), SAFE_STRING(user), SAFE_STRING(passwd), client_flags);
} }
@ -738,7 +740,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
/* create the link */ /* create the link */
mysql = (php_mysql_conn *) malloc(sizeof(php_mysql_conn)); mysql = (php_mysql_conn *) malloc(sizeof(php_mysql_conn));
mysql->active_result_id = 0; mysql->active_result_id = 0;
mysql->multi_query = 1;
mysql->multi_query = client_flags & CLIENT_MULTI_STATEMENTS? 1:0;
#ifndef MYSQL_USE_MYSQLND #ifndef MYSQL_USE_MYSQLND
mysql->conn = mysql_init(NULL); mysql->conn = mysql_init(NULL);
#else #else
@ -786,7 +788,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
} }
mysql = (php_mysql_conn *) le->ptr; mysql = (php_mysql_conn *) le->ptr;
mysql->active_result_id = 0; mysql->active_result_id = 0;
mysql->multi_query = 1;
mysql->multi_query = client_flags & CLIENT_MULTI_STATEMENTS? 1:0;
/* ensure that the link did not die */ /* ensure that the link did not die */
if (mysql_ping(mysql->conn)) { if (mysql_ping(mysql->conn)) {
if (mysql_errno(mysql->conn) == 2006) { if (mysql_errno(mysql->conn) == 2006) {

6
ext/mysqli/mysqli.c

@ -893,6 +893,12 @@ PHP_MINIT_FUNCTION(mysqli)
#endif #endif
#endif #endif
REGISTER_LONG_CONSTANT("MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED", SERVER_QUERY_NO_GOOD_INDEX_USED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_SERVER_QUERY_NO_INDEX_USED", SERVER_QUERY_NO_INDEX_USED, CONST_CS | CONST_PERSISTENT);
#ifdef SERVER_QUERY_WAS_SLOW
REGISTER_LONG_CONSTANT("MYSQLI_SERVER_QUERY_WAS_SLOW", SERVER_QUERY_WAS_SLOW, CONST_CS | CONST_PERSISTENT);
#endif
return SUCCESS; return SUCCESS;
} }
/* }}} */ /* }}} */

1
ext/mysqlnd/mysqlnd.c

@ -467,7 +467,6 @@ PHPAPI void _mysqlnd_end_psession(MYSQLND *conn TSRMLS_DC)
DBG_ENTER("_mysqlnd_end_psession"); DBG_ENTER("_mysqlnd_end_psession");
/* The thd zval cache is always freed on request shutdown, so this has happened already */ /* The thd zval cache is always freed on request shutdown, so this has happened already */
mysqlnd_palloc_free_thd_cache_reference(&conn->zval_cache); mysqlnd_palloc_free_thd_cache_reference(&conn->zval_cache);
conn->zval_cache = NULL;
DBG_VOID_RETURN; DBG_VOID_RETURN;
} }
/* }}} */ /* }}} */

2
ext/mysqlnd/mysqlnd_palloc.c

@ -172,7 +172,7 @@ MYSQLND_THD_ZVAL_PCACHE* _mysqlnd_palloc_get_thd_cache_reference(MYSQLND_THD_ZVA
if (cache) { if (cache) {
++cache->references; ++cache->references;
DBG_INF_FMT("cache=%p new_refc=%d gc_list.canary1=%p gc_list.canary2=%p", DBG_INF_FMT("cache=%p new_refc=%d gc_list.canary1=%p gc_list.canary2=%p",
*cache, cache->references, cache->gc_list.canary1, cache->gc_list.canary2);
cache, cache->references, cache->gc_list.canary1, cache->gc_list.canary2);
mysqlnd_palloc_get_cache_reference(cache->parent); mysqlnd_palloc_get_cache_reference(cache->parent);
} }
DBG_RETURN(cache); DBG_RETURN(cache);

2
ext/mysqlnd/mysqlnd_ps.c

@ -582,7 +582,7 @@ MYSQLND_METHOD(mysqlnd_stmt, execute)(MYSQLND_STMT * const stmt TSRMLS_DC)
SET_ERROR_AFF_ROWS(stmt); SET_ERROR_AFF_ROWS(stmt);
SET_ERROR_AFF_ROWS(stmt->conn); SET_ERROR_AFF_ROWS(stmt->conn);
if (stmt->state > MYSQLND_STMT_PREPARED && stmt->field_count) {
if (stmt->result && stmt->state > MYSQLND_STMT_PREPARED && stmt->field_count) {
/* /*
We don need to copy the data from the buffers which we will clean. We don need to copy the data from the buffers which we will clean.
Because it has already been copied. See Because it has already been copied. See

2
ext/mysqlnd/mysqlnd_wireprotocol.c

@ -690,8 +690,6 @@ size_t php_mysqlnd_auth_write(void *_packet, MYSQLND *conn TSRMLS_DC)
packet->client_flags ^= CLIENT_LOCAL_FILES; packet->client_flags ^= CLIENT_LOCAL_FILES;
} }
/* don't allow multi_queries via connect parameter */
packet->client_flags ^= CLIENT_MULTI_STATEMENTS;
int4store(p, packet->client_flags); int4store(p, packet->client_flags);
p+= 4; p+= 4;

Loading…
Cancel
Save