]> granicus.if.org Git - php/commitdiff
move from macros to functions, which can be overwritten, if needed
authorAndrey Hristov <andrey@php.net>
Fri, 25 Feb 2011 12:25:36 +0000 (12:25 +0000)
committerAndrey Hristov <andrey@php.net>
Fri, 25 Feb 2011 12:25:36 +0000 (12:25 +0000)
ext/mysqlnd/mysqlnd.c
ext/mysqlnd/mysqlnd.h
ext/mysqlnd/mysqlnd_structs.h

index 13847de734b6fbaddb84213a64b6bdb410256c2e..e17f65c4a49ecd5a6f5e427a17b382443d9bc2b9 100644 (file)
@@ -2362,6 +2362,43 @@ MYSQLND_METHOD(mysqlnd_conn, get_connection_stats)(const MYSQLND * const conn,
 /* }}} */
 
 
+/* {{{ mysqlnd_conn::set_autocommit */
+static enum_func_status
+MYSQLND_METHOD(mysqlnd_conn, set_autocommit)(MYSQLND * conn, unsigned int mode TSRMLS_DC)
+{
+       enum_func_status ret;
+       DBG_ENTER("mysqlnd_conn::set_autocommit");
+       ret = conn->m->query(conn, (mode) ? "SET AUTOCOMMIT=1":"SET AUTOCOMMIT=0", sizeof("SET AUTOCOMMIT=1") - 1 TSRMLS_CC);
+       DBG_RETURN(ret);
+}
+/* }}} */
+
+
+/* {{{ mysqlnd_conn::tx_commit */
+static enum_func_status
+MYSQLND_METHOD(mysqlnd_conn, tx_commit)(MYSQLND * conn TSRMLS_DC)
+{
+       enum_func_status ret;
+       DBG_ENTER("mysqlnd_conn::tx_commit");
+       ret = conn->m->query(conn, "COMMIT", sizeof("COMMIT") - 1 TSRMLS_CC);
+       DBG_RETURN(ret);
+}
+/* }}} */
+
+
+/* {{{ mysqlnd_conn::tx_rollback */
+static enum_func_status
+MYSQLND_METHOD(mysqlnd_conn, tx_rollback)(MYSQLND * conn TSRMLS_DC)
+{
+       enum_func_status ret;
+       DBG_ENTER("mysqlnd_conn::tx_rollback");
+       ret = conn->m->query(conn, "ROLLBACK", sizeof("ROLLBACK") - 1 TSRMLS_CC);
+       DBG_RETURN(ret);
+}
+/* }}} */
+
+
+
 MYSQLND_STMT * _mysqlnd_stmt_init(MYSQLND * const conn TSRMLS_DC);
 static enum_func_status MYSQLND_METHOD(mysqlnd_conn, init)(MYSQLND * conn TSRMLS_DC);
 
@@ -2435,7 +2472,10 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_conn)
        MYSQLND_METHOD(mysqlnd_conn, send_close),
 
        MYSQLND_METHOD(mysqlnd_conn, ssl_set),
-       mysqlnd_result_init
+       mysqlnd_result_init,
+       MYSQLND_METHOD(mysqlnd_conn, set_autocommit),
+       MYSQLND_METHOD(mysqlnd_conn, tx_commit),
+       MYSQLND_METHOD(mysqlnd_conn, tx_rollback)
 MYSQLND_CLASS_METHODS_END;
 
 
index 6dbec7171f1d10d608325282e544f42dda6b1920..2e851f52032cbf3a45a2a2fe2c5ccad79cad8290 100644 (file)
@@ -208,9 +208,9 @@ PHPAPI void mysqlnd_local_infile_default(MYSQLND *conn);
 PHPAPI void mysqlnd_set_local_infile_handler(MYSQLND * const conn, const char * const funcname);
 
 /* Simple commands */
-#define mysqlnd_autocommit(conn, mode)         (conn)->m->query((conn),(mode) ? "SET AUTOCOMMIT=1":"SET AUTOCOMMIT=0", 16 TSRMLS_CC)
-#define mysqlnd_commit(conn)                           (conn)->m->query((conn), "COMMIT", sizeof("COMMIT")-1 TSRMLS_CC)
-#define mysqlnd_rollback(conn)                         (conn)->m->query((conn), "ROLLBACK", sizeof("ROLLBACK")-1 TSRMLS_CC)
+#define mysqlnd_autocommit(conn, mode)         (conn)->m->set_autocommit((conn), (mode) TSRMLS_CC)
+#define mysqlnd_commit(conn)                           (conn)->m->tx_commit((conn) TSRMLS_CC)
+#define mysqlnd_rollback(conn)                         (conn)->m->tx_rollback((conn) TSRMLS_CC)
 #define mysqlnd_list_dbs(conn, wild)           (conn)->m->list_method((conn), wild? "SHOW DATABASES LIKE %s":"SHOW DATABASES", (wild), NULL TSRMLS_CC)
 #define mysqlnd_list_fields(conn, tab,wild)    (conn)->m->list_fields((conn), (tab), (wild) TSRMLS_CC)
 #define mysqlnd_list_processes(conn)           (conn)->m->list_method((conn), "SHOW PROCESSLIST", NULL, NULL TSRMLS_CC)
index f043ea9eb8018c100131d074969d50e774222753..a78a6bc8f0219e800d172d18d33a8c798a696dc4 100644 (file)
@@ -411,6 +411,11 @@ typedef enum_func_status    (*func_mysqlnd_conn__ssl_set)(MYSQLND * const conn,
 
 typedef MYSQLND_RES *          (*func_mysqlnd_conn__result_init)(unsigned int field_count, zend_bool persistent TSRMLS_DC);
 
+typedef enum_func_status       (*func_mysqlnd_conn__set_autocommit)(MYSQLND * conn, unsigned int mode TSRMLS_DC);
+typedef enum_func_status       (*func_mysqlnd_conn__tx_commit)(MYSQLND * conn TSRMLS_DC);
+typedef enum_func_status       (*func_mysqlnd_conn__tx_rollback)(MYSQLND * conn TSRMLS_DC);
+
+
 struct st_mysqlnd_conn_methods
 {
        func_mysqlnd_conn__init init;
@@ -482,6 +487,9 @@ struct st_mysqlnd_conn_methods
        func_mysqlnd_conn__ssl_set ssl_set;
 
        func_mysqlnd_conn__result_init result_init;
+       func_mysqlnd_conn__set_autocommit set_autocommit;
+       func_mysqlnd_conn__tx_commit tx_commit;
+       func_mysqlnd_conn__tx_rollback tx_rollback;
 };