Author: ahristov
Date: 2008-02-12 11:55:22 +0100 (Tue, 12 Feb 2008)
New Revision: 1275
Modified:
trunk/mysqlnd/config.w32
trunk/php5/ext/mysql/php_mysql.c
trunk/php5/ext/mysqli/mysqli.c
trunk/php5/ext/mysqli/php_mysqli_structs.h
trunk/php6/ext/mysql/php_mysql.c
trunk/php6/ext/mysqli/mysqli.c
trunk/php6/ext/mysqli/mysqli_nonapi.c
trunk/php6/ext/mysqli/php_mysqli_structs.h
Log:
Sync from CVS
Modified: trunk/mysqlnd/config.w32
===================================================================
--- trunk/mysqlnd/config.w32 2008-02-11 22:08:01 UTC (rev 1274)
+++ trunk/mysqlnd/config.w32 2008-02-12 10:55:22 UTC (rev 1275)
@@ -4,7 +4,7 @@
if (CHECK_LIB("ws2_32.lib", "mysqlnd")) {
mysqlnd_source =
"mysqlnd.c " +
- "mysqlnd_block_alloc.c" +
+ "mysqlnd_block_alloc.c " +
"mysqlnd_charset.c " +
"mysqlnd_debug.c " +
"mysqlnd_loaddata.c " +
@@ -15,7 +15,7 @@
"mysqlnd_result.c " +
"mysqlnd_result_meta.c " +
"mysqlnd_statistics.c " +
- "mysqlnd_wireprotocol.c" +
+ "mysqlnd_wireprotocol.c " +
"php_mysqlnd.c";
EXTENSION("mysqlnd", mysqlnd_source, false);
}
Modified: trunk/php5/ext/mysql/php_mysql.c
===================================================================
--- trunk/php5/ext/mysql/php_mysql.c 2008-02-11 22:08:01 UTC (rev 1274)
+++ trunk/php5/ext/mysql/php_mysql.c 2008-02-12 10:55:22 UTC (rev 1275)
@@ -643,7 +643,7 @@
hashed_details_length = spprintf(&hashed_details, 0, "mysql__%s_", user);
client_flags = CLIENT_INTERACTIVE;
} else {
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s!s!s!ll", &host_and_port,
&host_len,
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s!s!s!bl", &host_and_port,
&host_len,
&user, &user_len, &passwd, &passwd_len,
&new_link, &client_flags)==FAILURE) {
return;
Modified: trunk/php5/ext/mysqli/mysqli.c
===================================================================
--- trunk/php5/ext/mysqli/mysqli.c 2008-02-11 22:08:01 UTC (rev 1274)
+++ trunk/php5/ext/mysqli/mysqli.c 2008-02-12 10:55:22 UTC (rev 1275)
@@ -732,7 +732,7 @@
REGISTER_LONG_CONSTANT("MYSQLI_BINARY_FLAG", BINARY_FLAG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_NO_DEFAULT_VALUE_FLAG", NO_DEFAULT_VALUE_FLAG, CONST_CS |
CONST_PERSISTENT);
-#if (MYSQL_VERSION_ID > 51122 && MYSQL_VERSION_ID < 60000) ||
(MYSQLI_VERSION_ID > 60003) || defined(HAVE_MYSQLND)
+#if (MYSQL_VERSION_ID > 51122 && MYSQL_VERSION_ID < 60000) ||
(MYSQL_VERSION_ID > 60003) || defined(HAVE_MYSQLND)
REGISTER_LONG_CONSTANT("MYSQLI_ON_UPDATE_NOW_FLAG", ON_UPDATE_NOW_FLAG, CONST_CS |
CONST_PERSISTENT);
#endif
Modified: trunk/php5/ext/mysqli/php_mysqli_structs.h
===================================================================
--- trunk/php5/ext/mysqli/php_mysqli_structs.h 2008-02-11 22:08:01 UTC (rev 1274)
+++ trunk/php5/ext/mysqli/php_mysqli_structs.h 2008-02-12 10:55:22 UTC (rev 1275)
@@ -148,7 +148,11 @@
#define L64(x) x##i64
typedef __int64 my_longlong;
#else
-#define PHP_MYSQLI_API
+# if defined(__GNUC__) && __GNUC__ >= 4
+# define PHP_MYSQLI_API __attribute__ ((visibility("default")))
+# else
+# define PHP_MYSQLI_API
+# endif
#define MYSQLI_LLU_SPEC "%llu"
#define MYSQLI_LL_SPEC "%lld"
#define L64(x) x##LL
Modified: trunk/php6/ext/mysql/php_mysql.c
===================================================================
--- trunk/php6/ext/mysql/php_mysql.c 2008-02-11 22:08:01 UTC (rev 1274)
+++ trunk/php6/ext/mysql/php_mysql.c 2008-02-12 10:55:22 UTC (rev 1275)
@@ -643,7 +643,7 @@
user = MySG(default_user);
passwd = MySG(default_password);
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s&s&s&ll",
&host_and_port, &host_len, UG(utf8_conv),
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s&s&s&bl",
&host_and_port, &host_len, UG(utf8_conv),
&user, &user_len, UG(utf8_conv), &passwd, &passwd_len,
UG(utf8_conv),
&new_link, &client_flags)==FAILURE) {
return;
Modified: trunk/php6/ext/mysqli/mysqli.c
===================================================================
--- trunk/php6/ext/mysqli/mysqli.c 2008-02-11 22:08:01 UTC (rev 1274)
+++ trunk/php6/ext/mysqli/mysqli.c 2008-02-12 10:55:22 UTC (rev 1275)
@@ -729,7 +729,7 @@
REGISTER_LONG_CONSTANT("MYSQLI_BINARY_FLAG", BINARY_FLAG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_NO_DEFAULT_VALUE_FLAG", NO_DEFAULT_VALUE_FLAG, CONST_CS |
CONST_PERSISTENT);
-#if (MYSQL_VERSION_ID > 51122 && MYSQL_VERSION_ID < 60000) ||
(MYSQLI_VERSION_ID > 60003) || defined(HAVE_MYSQLND)
+#if (MYSQL_VERSION_ID > 51122 && MYSQL_VERSION_ID < 60000) ||
(MYSQL_VERSION_ID > 60003) || defined(HAVE_MYSQLND)
REGISTER_LONG_CONSTANT("MYSQLI_ON_UPDATE_NOW_FLAG", ON_UPDATE_NOW_FLAG, CONST_CS |
CONST_PERSISTENT);
#endif
Modified: trunk/php6/ext/mysqli/mysqli_nonapi.c
===================================================================
--- trunk/php6/ext/mysqli/mysqli_nonapi.c 2008-02-11 22:08:01 UTC (rev 1274)
+++ trunk/php6/ext/mysqli/mysqli_nonapi.c 2008-02-12 10:55:22 UTC (rev 1275)
@@ -296,229 +296,6 @@
PHP_FUNCTION(mysqli_connect)
{
mysqli_common_connect(INTERNAL_FUNCTION_PARAM_PASSTHRU, FALSE);
-#if 0
- MY_MYSQL *mysql = NULL;
- MYSQLI_RESOURCE *mysqli_resource = NULL;
- zval *object = getThis();
- char *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, *socket=NULL;
- unsigned int hostname_len = 0, username_len = 0, passwd_len = 0, dbname_len = 0,
socket_len = 0;
- zend_bool persistent = FALSE;
- long port = 0;
- uint hash_len;
- char *hash_key = NULL;
- zend_bool new_connection = FALSE;
- zend_rsrc_list_entry *le;
- mysqli_plist_entry *plist = NULL;
-
- if (getThis() && !ZEND_NUM_ARGS()) {
- RETURN_NULL();
- }
-
- hostname = username = dbname = passwd = socket = NULL;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s&s&s&s&ls&",
&hostname, &hostname_len, UG(utf8_conv),
- &username, &username_len, UG(utf8_conv), &passwd, &passwd_len,
UG(utf8_conv),
- &dbname, &dbname_len, UG(utf8_conv), &port, &socket,
&socket_len, UG(utf8_conv)) == FAILURE) {
- return;
- }
-
- if (!socket_len || !socket) {
- socket = MyG(default_socket);
- }
-
- if (!passwd) {
- passwd = MyG(default_pw);
- passwd_len = strlen(SAFE_STR(passwd));
- }
- if (!username){
- username = MyG(default_user);
- }
- if (!hostname || !hostname_len) {
- hostname = MyG(default_host);
- }
-
-
- if (object && instanceof_function(Z_OBJCE_P(object), mysqli_link_class_entry
TSRMLS_CC)) {
- mysqli_resource = ((mysqli_object *) zend_object_store_get_object(object
TSRMLS_CC))->ptr;
- if (mysqli_resource && mysqli_resource->ptr &&
- mysqli_resource->status >= MYSQLI_STATUS_INITIALIZED)
- {
- mysql = (MY_MYSQL*)mysqli_resource->ptr;
- php_clear_mysql(mysql);
- if (mysql->mysql) {
- mysqli_close(mysql->mysql, MYSQLI_CLOSE_EXPLICIT);
- mysql->mysql = NULL;
- }
- }
- }
- if (!mysql) {
- mysql = (MY_MYSQL *) ecalloc(1, sizeof(MY_MYSQL));
- }
-
- if (strlen(SAFE_STR(hostname)) > 2 && !strncasecmp(hostname, "p:", 2)) {
- hostname += 2;
- if (!MyG(allow_persistent)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Persistent connections are disabled.
Downgrading to normal");
- } else {
- mysql->persistent = persistent = TRUE;
-
- if (!strlen(hostname)) {
- hostname = MyG(default_host);
- }
-
- hash_len = spprintf(&hash_key, 0, "mysqli_%s%ld%s%s%s", SAFE_STR(hostname),
- port, SAFE_STR(username), SAFE_STR(dbname),
- SAFE_STR(passwd));
-
- mysql->hash_key = hash_key;
-
- /* check if we can reuse exisiting connection ... */
- if (zend_hash_find(&EG(persistent_list), hash_key, hash_len + 1, (void **)&le)
== SUCCESS) {
- if (Z_TYPE_P(le) == php_le_pmysqli()) {
- plist = (mysqli_plist_entry *) le->ptr;
-
- do {
- if (zend_ptr_stack_num_elements(&plist->free_links)) {
- mysql->mysql = zend_ptr_stack_pop(&plist->free_links);
-
- MyG(num_inactive_persistent)--;
- /* reset variables */
- /* todo: option for ping or change_user */
-#if G0
- if (!mysql_change_user(mysql->mysql, username, passwd, dbname)) {
-#else
- if (!mysql_ping(mysql->mysql)) {
-#endif
-#ifdef HAVE_MYSQLND
- mysqlnd_restart_psession(mysql->mysql);
-#endif
- MyG(num_active_persistent)++;
- goto end;
- } else {
-#if defined(HAVE_MYSQLND)
- mysqlnd_end_psession(mysql->mysql);
-#endif
- mysqli_close(mysql->mysql, MYSQLI_CLOSE_IMPLICIT);
- mysql->mysql = NULL;
- }
- }
- } while (0);
- }
- } else {
- zend_rsrc_list_entry le;
- le.type = php_le_pmysqli();
- le.ptr = plist = calloc(1, sizeof(mysqli_plist_entry));
-
- zend_ptr_stack_init_ex(&plist->free_links, 1);
- zend_hash_update(&EG(persistent_list), hash_key, hash_len + 1, (void *)&le,
sizeof(le), NULL);
- }
- }
- }
-
- if (MyG(max_links) != -1 && MyG(num_links) >= MyG(max_links)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open links (%ld)",
MyG(num_links));
- goto err;
- }
- if (persistent && MyG(max_persistent) != -1 &&
- (MyG(num_active_persistent) + MyG(num_inactive_persistent))>= MyG(max_persistent))
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open persistent links (%ld)",
- MyG(num_active_persistent) + MyG(num_inactive_persistent));
- goto err;
- }
-
-#if !defined(HAVE_MYSQLND)
- if (!(mysql->mysql = mysql_init(NULL))) {
-#else
- if (!(mysql->mysql = mysqlnd_init(persistent))) {
-#endif
- goto err;
- }
- new_connection = TRUE;
-
- if (UG(unicode)) {
- mysql_options(mysql->mysql, MYSQL_SET_CHARSET_NAME, "utf8");
- }
-
-#ifdef HAVE_EMBEDDED_MYSQLI
- if (hostname_len) {
- unsigned int external=1;
- mysql_options(mysql->mysql, MYSQL_OPT_USE_REMOTE_CONNECTION, (char *)&external);
- } else {
- mysql_options(mysql->mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, 0);
- }
-#endif
-
-#if !defined(HAVE_MYSQLND)
- if (mysql_real_connect(mysql->mysql, hostname, username, passwd, dbname, port,
socket, CLIENT_MULTI_RESULTS) == NULL)
-#else
- if (mysqlnd_connect(mysql->mysql, hostname, username, passwd, passwd_len, dbname,
dbname_len,
- port, socket, CLIENT_MULTI_RESULTS, MyG(mysqlnd_thd_zval_cache) TSRMLS_CC) == NULL)
-#endif
- {
- /* Save error messages */
- php_mysqli_set_error(mysql_errno(mysql->mysql), (char *)
mysql_error(mysql->mysql) TSRMLS_CC);
- php_mysqli_throw_sql_exception((char *)mysql_sqlstate(mysql->mysql),
mysql_errno(mysql->mysql) TSRMLS_CC,
- "%s", mysql_error(mysql->mysql));
-
- /* free mysql structure */
- mysqli_close(mysql->mysql, MYSQLI_CLOSE_DISCONNECTED);
- goto err;
- }
-
- /* when PHP runs in unicode, set default character set to utf8 */
- if (UG(unicode)) {
- mysql->conv = UG(utf8_conv);
- }
-
- /* clear error */
- php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql)
TSRMLS_CC);
-
-#if !defined(HAVE_MYSQLND)
- mysql->mysql->reconnect = MyG(reconnect);
-
- /* set our own local_infile handler */
- php_set_local_infile_handler_default(mysql);
-#endif
-
- mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char
*)&MyG(allow_local_infile));
-
-end:
- if (!mysqli_resource) {
- mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
- mysqli_resource->ptr = (void *)mysql;
- }
- mysqli_resource->status = MYSQLI_STATUS_VALID;
-
- /* store persistent connection */
- if (persistent && new_connection) {
- MyG(num_active_persistent)++;
- }
-
- mysql->hash_key = hash_key;
- MyG(num_links)++;
-
-#if !defined(HAVE_MYSQLND)
- mysql->multi_query = 0;
-#else
- mysql->multi_query = 1;
-#endif
-
-
- if (!object || !instanceof_function(Z_OBJCE_P(object), mysqli_link_class_entry
TSRMLS_CC)) {
- MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry);
- } else {
- ((mysqli_object *) zend_object_store_get_object(object TSRMLS_CC))->ptr =
mysqli_resource;
- }
- return;
-
-err:
- efree(mysql);
- if (hash_key) {
- efree(hash_key);
- }
- RETVAL_FALSE;
-#endif
}
/* }}} */
Modified: trunk/php6/ext/mysqli/php_mysqli_structs.h
===================================================================
--- trunk/php6/ext/mysqli/php_mysqli_structs.h 2008-02-11 22:08:01 UTC (rev 1274)
+++ trunk/php6/ext/mysqli/php_mysqli_structs.h 2008-02-12 10:55:22 UTC (rev 1275)
@@ -160,7 +160,11 @@
#define L64(x) x##i64
typedef __int64 my_longlong;
#else
-#define PHP_MYSQLI_API
+# if defined(__GNUC__) && __GNUC__ >= 4
+# define PHP_MYSQLI_API __attribute__ ((visibility("default")))
+# else
+# define PHP_MYSQLI_API
+# endif
#define MYSQLI_LLU_SPEC "%llu"
#define MYSQLI_LL_SPEC "%lld"
#define L64(x) x##LL
@@ -324,7 +328,6 @@
#define MYSQLI_ASYNC 0
#endif
-
/* for mysqli_fetch_assoc */
#define MYSQLI_ASSOC 1
#define MYSQLI_NUM 2
| Thread |
|---|
| • PHP mysqlnd svn commit: r1275 - in trunk: mysqlnd php5/ext/mysql php5/ext/mysqli php6/ext/mysql php6/ext/mysqli | ahristov | 12 Feb |