[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pecl-cvs
Subject:    [PECL-CVS] =?utf-8?q?svn:_/pecl/mysqlnd=5Fms/trunk/_mysqlnd=5Fms.c_mysqlnd=5Fms=5Fenum=5Fn=5Fdef.h?=
From:       Ulf_Wendel <uw () php ! net>
Date:       2011-11-29 16:21:33
Message-ID: svn-uw-1322583693-320167-1073653970 () svn ! php ! net
[Download RAW message or body]

uw                                       Tue, 29 Nov 2011 16:21:33 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=320167

Log:
Thanks for the hint, Andrey. We can replace this extra flag with a status check.

Changed paths:
    U   pecl/mysqlnd_ms/trunk/mysqlnd_ms.c
    U   pecl/mysqlnd_ms/trunk/mysqlnd_ms_enum_n_def.h

Modified: pecl/mysqlnd_ms/trunk/mysqlnd_ms.c
===================================================================
--- pecl/mysqlnd_ms/trunk/mysqlnd_ms.c	2011-11-29 16:20:18 UTC (rev 320166)
+++ pecl/mysqlnd_ms/trunk/mysqlnd_ms.c	2011-11-29 16:21:33 UTC (rev 320167)
@@ -93,7 +93,7 @@

 #define CONN_DATA_NOT_SET(conn_data) (!(conn_data) || !*(conn_data) || \
!(*(conn_data))->initialized || (*(conn_data))->skip_ms_calls)  #define \
CONN_DATA_TRX_SET(conn_data) ((conn_data) && (*(conn_data)) && \
                (!(*(conn_data))->skip_ms_calls))
-#define CONN_DATA_TRY_TRX_INJECTION(conn_data) (((*(conn_data))->connection_opened) \
&& ((FALSE == (*(conn_data))->skip_ms_calls)) && \
((*(conn_data))->global_trx.on_commit) && (TRUE == \
(*(conn_data))->global_trx.is_master)) +#define \
CONN_DATA_TRY_TRX_INJECTION(conn_data, conn) ((CONN_GET_STATE(conn) > CONN_ALLOCED) \
&& ((FALSE == (*(conn_data))->skip_ms_calls)) && \
((*(conn_data))->global_trx.on_commit) && (TRUE == \
(*(conn_data))->global_trx.is_master))

 #define MS_TRX_INJECT(ret, connection, conn_data) \
 	if (PASS == (ret = MS_CALL_ORIGINAL_CONN_DATA_METHOD(send_query)((connection), \
((*(conn_data))->global_trx.on_commit), ((*(conn_data))->global_trx.on_commit_len) \
TSRMLS_CC))) \ @@ -217,7 +217,6 @@
 		/* TODO: without this the global trx id injection logic will fail on recently \
opened lazy connections */  if (conn_data && *conn_data) {
 			(*conn_data)->initialized = TRUE;
-			(*conn_data)->connection_opened = TRUE;
 		}
 #endif
 #ifdef BUFFERED_COMMANDS
@@ -367,7 +366,6 @@
 							(llist_dtor_func_t) mysqlnd_ms_commands_list_dtor, conn->persistent);
 #ifndef MYSQLND_HAS_INJECTION_FEATURE
 			mysqlnd_ms_init_connection_global_trx(&(*conn_data)->global_trx, global_trx, \
                is_master, conn->persistent TSRMLS_CC);
-			(*conn_data)->connection_opened = (lazy_connections) ? FALSE : TRUE;
 #endif
 		}
 	}
@@ -734,7 +732,6 @@
 		(*conn_data)->cred.mysql_flags = mysql_flags;
 #ifndef MYSQLND_HAS_INJECTION_FEATURE
 		mysqlnd_ms_init_trx_to_null(&(*conn_data)->global_trx TSRMLS_CC);
-		(*conn_data)->connection_opened = FALSE;
 #endif
 		(*conn_data)->initialized = TRUE;

@@ -926,7 +923,7 @@
 	MS_LOAD_CONN_DATA(conn_data, connection);

 #ifndef MYSQLND_HAS_INJECTION_FEATURE
-	if (CONN_DATA_TRX_SET(conn_data) && CONN_DATA_TRY_TRX_INJECTION(conn_data))
+	if (CONN_DATA_TRX_SET(conn_data) && CONN_DATA_TRY_TRX_INJECTION(conn_data, \
connection))  {
 		if (FALSE == (*conn_data)->stgy.in_transaction) {
 			/* autocommit mode */
@@ -1689,7 +1686,7 @@

 #ifndef MYSQLND_HAS_INJECTION_FEATURE
 		if (((TRUE == (*conn_data)->stgy.in_transaction) && mode) &&
-			CONN_DATA_TRY_TRX_INJECTION(conn_data))
+			CONN_DATA_TRY_TRX_INJECTION(conn_data, proxy_conn))
 		{
 			/*
 			Implicit commit when autocommit(false) ..query().. autocommit(true).
@@ -1766,7 +1763,7 @@
 #ifndef MYSQLND_HAS_INJECTION_FEATURE
 	if ((conn_data && *conn_data && TRUE == commit) &&
 		((TRUE == (*conn_data)->stgy.in_transaction)) &&
-		CONN_DATA_TRY_TRX_INJECTION(conn_data))
+		CONN_DATA_TRY_TRX_INJECTION(conn_data, conn))
 	{
 		MS_TRX_INJECT(ret, conn, conn_data);
 		MYSQLND_MS_INC_STATISTIC((PASS == ret) ? MS_STAT_GTID_COMMIT_SUCCESS : \
MS_STAT_GTID_COMMIT_FAILURE); @@ -1990,7 +1987,7 @@
 	connection = s->data->conn;
 	DBG_INF_FMT("conn="MYSQLND_LLU_SPEC, connection->thread_id);

-	if (CONN_DATA_TRY_TRX_INJECTION(conn_data) &&
+	if (CONN_DATA_TRY_TRX_INJECTION(conn_data, connection) &&
 		(FALSE == (*conn_data)->stgy.in_transaction))
 	{
 		/* autocommit mode */

Modified: pecl/mysqlnd_ms/trunk/mysqlnd_ms_enum_n_def.h
===================================================================
--- pecl/mysqlnd_ms/trunk/mysqlnd_ms_enum_n_def.h	2011-11-29 16:20:18 UTC (rev \
                320166)
+++ pecl/mysqlnd_ms/trunk/mysqlnd_ms_enum_n_def.h	2011-11-29 16:21:33 UTC (rev \
320167) @@ -421,7 +421,6 @@
 		zend_bool multi_statement_user_enabled;
 		zend_bool multi_statement_gtx_enabled;
 	} global_trx;
-	zend_bool connection_opened;
 #endif
 } MYSQLND_MS_CONN_DATA;



-- 
PECL CVS Mailing List 
To unsubscribe, visit: http://www.php.net/unsub.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic