Lines Matching refs:conn

69 MYSQLND_METHOD(mysqlnd_conn_data, free_options)(MYSQLND_CONN_DATA * conn TSRMLS_DC)  in MYSQLND_METHOD()
71 zend_bool pers = conn->persistent; in MYSQLND_METHOD()
73 if (conn->options->charset_name) { in MYSQLND_METHOD()
74 mnd_pefree(conn->options->charset_name, pers); in MYSQLND_METHOD()
75 conn->options->charset_name = NULL; in MYSQLND_METHOD()
77 if (conn->options->auth_protocol) { in MYSQLND_METHOD()
78 mnd_pefree(conn->options->auth_protocol, pers); in MYSQLND_METHOD()
79 conn->options->auth_protocol = NULL; in MYSQLND_METHOD()
81 if (conn->options->num_commands) { in MYSQLND_METHOD()
83 for (i = 0; i < conn->options->num_commands; i++) { in MYSQLND_METHOD()
85 mnd_pefree(conn->options->init_commands[i], pers); in MYSQLND_METHOD()
87 mnd_pefree(conn->options->init_commands, pers); in MYSQLND_METHOD()
88 conn->options->init_commands = NULL; in MYSQLND_METHOD()
90 if (conn->options->cfg_file) { in MYSQLND_METHOD()
91 mnd_pefree(conn->options->cfg_file, pers); in MYSQLND_METHOD()
92 conn->options->cfg_file = NULL; in MYSQLND_METHOD()
94 if (conn->options->cfg_section) { in MYSQLND_METHOD()
95 mnd_pefree(conn->options->cfg_section, pers); in MYSQLND_METHOD()
96 conn->options->cfg_section = NULL; in MYSQLND_METHOD()
104 MYSQLND_METHOD(mysqlnd_conn_data, free_contents)(MYSQLND_CONN_DATA * conn TSRMLS_DC) in MYSQLND_METHOD()
106 zend_bool pers = conn->persistent; in MYSQLND_METHOD()
110 mysqlnd_local_infile_default(conn); in MYSQLND_METHOD()
111 if (conn->current_result) { in MYSQLND_METHOD()
112 conn->current_result->m.free_result(conn->current_result, TRUE TSRMLS_CC); in MYSQLND_METHOD()
113 conn->current_result = NULL; in MYSQLND_METHOD()
116 if (conn->net) { in MYSQLND_METHOD()
117 conn->net->m.free_contents(conn->net TSRMLS_CC); in MYSQLND_METHOD()
122 if (conn->host) { in MYSQLND_METHOD()
123 mnd_pefree(conn->host, pers); in MYSQLND_METHOD()
124 conn->host = NULL; in MYSQLND_METHOD()
126 if (conn->user) { in MYSQLND_METHOD()
127 mnd_pefree(conn->user, pers); in MYSQLND_METHOD()
128 conn->user = NULL; in MYSQLND_METHOD()
130 if (conn->passwd) { in MYSQLND_METHOD()
131 mnd_pefree(conn->passwd, pers); in MYSQLND_METHOD()
132 conn->passwd = NULL; in MYSQLND_METHOD()
134 if (conn->connect_or_select_db) { in MYSQLND_METHOD()
135 mnd_pefree(conn->connect_or_select_db, pers); in MYSQLND_METHOD()
136 conn->connect_or_select_db = NULL; in MYSQLND_METHOD()
138 if (conn->unix_socket) { in MYSQLND_METHOD()
139 mnd_pefree(conn->unix_socket, pers); in MYSQLND_METHOD()
140 conn->unix_socket = NULL; in MYSQLND_METHOD()
142 DBG_INF_FMT("scheme=%s", conn->scheme); in MYSQLND_METHOD()
143 if (conn->scheme) { in MYSQLND_METHOD()
144 mnd_pefree(conn->scheme, pers); in MYSQLND_METHOD()
145 conn->scheme = NULL; in MYSQLND_METHOD()
147 if (conn->server_version) { in MYSQLND_METHOD()
148 mnd_pefree(conn->server_version, pers); in MYSQLND_METHOD()
149 conn->server_version = NULL; in MYSQLND_METHOD()
151 if (conn->host_info) { in MYSQLND_METHOD()
152 mnd_pefree(conn->host_info, pers); in MYSQLND_METHOD()
153 conn->host_info = NULL; in MYSQLND_METHOD()
155 if (conn->auth_plugin_data) { in MYSQLND_METHOD()
156 mnd_pefree(conn->auth_plugin_data, pers); in MYSQLND_METHOD()
157 conn->auth_plugin_data = NULL; in MYSQLND_METHOD()
159 if (conn->last_message) { in MYSQLND_METHOD()
160 mnd_pefree(conn->last_message, pers); in MYSQLND_METHOD()
161 conn->last_message = NULL; in MYSQLND_METHOD()
163 if (conn->error_info->error_list) { in MYSQLND_METHOD()
164 zend_llist_clean(conn->error_info->error_list); in MYSQLND_METHOD()
165 mnd_pefree(conn->error_info->error_list, pers); in MYSQLND_METHOD()
166 conn->error_info->error_list = NULL; in MYSQLND_METHOD()
168 conn->charset = NULL; in MYSQLND_METHOD()
169 conn->greet_charset = NULL; in MYSQLND_METHOD()
178 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, dtor)(MYSQLND_CONN_DATA * conn TSRMLS_DC) in MYSQLND_METHOD_PRIVATE()
181 DBG_INF_FMT("conn=%llu", conn->thread_id); in MYSQLND_METHOD_PRIVATE()
183 conn->m->free_contents(conn TSRMLS_CC); in MYSQLND_METHOD_PRIVATE()
184 conn->m->free_options(conn TSRMLS_CC); in MYSQLND_METHOD_PRIVATE()
186 if (conn->net) { in MYSQLND_METHOD_PRIVATE()
187 mysqlnd_net_free(conn->net, conn->stats, conn->error_info TSRMLS_CC); in MYSQLND_METHOD_PRIVATE()
188 conn->net = NULL; in MYSQLND_METHOD_PRIVATE()
191 if (conn->protocol) { in MYSQLND_METHOD_PRIVATE()
192 mysqlnd_protocol_free(conn->protocol TSRMLS_CC); in MYSQLND_METHOD_PRIVATE()
193 conn->protocol = NULL; in MYSQLND_METHOD_PRIVATE()
196 if (conn->stats) { in MYSQLND_METHOD_PRIVATE()
197 mysqlnd_stats_end(conn->stats); in MYSQLND_METHOD_PRIVATE()
200 mnd_pefree(conn, conn->persistent); in MYSQLND_METHOD_PRIVATE()
209 MYSQLND_METHOD(mysqlnd_conn_data, simple_command_handle_response)(MYSQLND_CONN_DATA * conn, enum my… in MYSQLND_METHOD()
220 …MYSQLND_PACKET_OK * ok_response = conn->protocol->m.get_ok_packet(conn->protocol, FALSE TSRMLS_CC); in MYSQLND_METHOD()
222 SET_OOM_ERROR(*conn->error_info); in MYSQLND_METHOD()
225 if (FAIL == (ret = PACKET_READ(ok_response, conn))) { in MYSQLND_METHOD()
235 …SET_CLIENT_ERROR(*conn->error_info, ok_response->error_no, ok_response->sqlstate, ok_response->err… in MYSQLND_METHOD()
246 conn->upsert_status->server_status &= ~SERVER_MORE_RESULTS_EXISTS; in MYSQLND_METHOD()
247 SET_ERROR_AFF_ROWS(conn); in MYSQLND_METHOD()
249 SET_NEW_MESSAGE(conn->last_message, conn->last_message_len, in MYSQLND_METHOD()
251 conn->persistent); in MYSQLND_METHOD()
254 memset(conn->upsert_status, 0, sizeof(*conn->upsert_status)); in MYSQLND_METHOD()
255 conn->upsert_status->warning_count = ok_response->warning_count; in MYSQLND_METHOD()
256 conn->upsert_status->server_status = ok_response->server_status; in MYSQLND_METHOD()
257 conn->upsert_status->affected_rows = ok_response->affected_rows; in MYSQLND_METHOD()
258 conn->upsert_status->last_insert_id = ok_response->last_insert_id; in MYSQLND_METHOD()
266 …MYSQLND_PACKET_EOF * ok_response = conn->protocol->m.get_eof_packet(conn->protocol, FALSE TSRMLS_C… in MYSQLND_METHOD()
268 SET_OOM_ERROR(*conn->error_info); in MYSQLND_METHOD()
271 if (FAIL == (ret = PACKET_READ(ok_response, conn))) { in MYSQLND_METHOD()
272 SET_CLIENT_ERROR(*conn->error_info, CR_MALFORMED_PACKET, UNKNOWN_SQLSTATE, in MYSQLND_METHOD()
281 …SET_CLIENT_ERROR(*conn->error_info, ok_response->error_no, ok_response->sqlstate, ok_response->err… in MYSQLND_METHOD()
282 SET_ERROR_AFF_ROWS(conn); in MYSQLND_METHOD()
284 SET_CLIENT_ERROR(*conn->error_info, CR_MALFORMED_PACKET, UNKNOWN_SQLSTATE, "Malformed packet"); in MYSQLND_METHOD()
297 SET_CLIENT_ERROR(*conn->error_info, CR_MALFORMED_PACKET, UNKNOWN_SQLSTATE, "Malformed packet"); in MYSQLND_METHOD()
309 MYSQLND_METHOD(mysqlnd_conn_data, simple_command)(MYSQLND_CONN_DATA * conn, enum php_mysqlnd_server… in MYSQLND_METHOD()
318 DBG_INF_FMT("conn->server_status=%u", conn->upsert_status->server_status); in MYSQLND_METHOD()
320 switch (CONN_GET_STATE(conn)) { in MYSQLND_METHOD()
324 SET_CLIENT_ERROR(*conn->error_info, CR_SERVER_GONE_ERROR, UNKNOWN_SQLSTATE, mysqlnd_server_gone); in MYSQLND_METHOD()
328 …SET_CLIENT_ERROR(*conn->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync… in MYSQLND_METHOD()
329 DBG_ERR_FMT("Command out of sync. State=%u", CONN_GET_STATE(conn)); in MYSQLND_METHOD()
333 SET_ERROR_AFF_ROWS(conn); in MYSQLND_METHOD()
334 SET_EMPTY_ERROR(*conn->error_info); in MYSQLND_METHOD()
336 cmd_packet = conn->protocol->m.get_command_packet(conn->protocol, FALSE TSRMLS_CC); in MYSQLND_METHOD()
338 SET_OOM_ERROR(*conn->error_info); in MYSQLND_METHOD()
348 MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_COM_QUIT + command - 1 /* because of COM_SLEEP */ ); in MYSQLND_METHOD()
350 if (! PACKET_WRITE(cmd_packet, conn)) { in MYSQLND_METHOD()
355 CONN_SET_STATE(conn, CONN_QUIT_SENT); in MYSQLND_METHOD()
359 …ret = conn->m->simple_command_handle_response(conn, ok_packet, silent, command, ignore_upsert_stat… in MYSQLND_METHOD()
371 MYSQLND_METHOD(mysqlnd_conn_data, set_server_option)(MYSQLND_CONN_DATA * const conn, enum_mysqlnd_s… in MYSQLND_METHOD()
377 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) { in MYSQLND_METHOD()
380 …ret = conn->m->simple_command(conn, COM_SET_OPTION, buffer, sizeof(buffer), PROT_EOF_PACKET, FALSE… in MYSQLND_METHOD()
382 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC); in MYSQLND_METHOD()
391 MYSQLND_METHOD(mysqlnd_conn_data, restart_psession)(MYSQLND_CONN_DATA * conn TSRMLS_DC) in MYSQLND_METHOD()
394 MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_CONNECT_REUSED); in MYSQLND_METHOD()
396 if (conn->last_message) { in MYSQLND_METHOD()
397 mnd_pefree(conn->last_message, conn->persistent); in MYSQLND_METHOD()
398 conn->last_message = NULL; in MYSQLND_METHOD()
407 MYSQLND_METHOD(mysqlnd_conn_data, end_psession)(MYSQLND_CONN_DATA * conn TSRMLS_DC) in MYSQLND_METHOD()
418 MYSQLND_CONN_DATA * conn, in mysqlnd_switch_to_ssl_if_needed() argument
430 auth_packet = conn->protocol->m.get_auth_packet(conn->protocol, FALSE TSRMLS_CC); in mysqlnd_switch_to_ssl_if_needed()
432 SET_OOM_ERROR(*conn->error_info); in mysqlnd_switch_to_ssl_if_needed()
456 if (!PACKET_WRITE(auth_packet, conn)) { in mysqlnd_switch_to_ssl_if_needed()
460conn->net->m.set_client_option(conn->net, MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (const char *) &verify… in mysqlnd_switch_to_ssl_if_needed()
462 if (FAIL == conn->net->m.enable_ssl(conn->net TSRMLS_CC)) { in mysqlnd_switch_to_ssl_if_needed()
469 if (!PACKET_WRITE(auth_packet, conn)) { in mysqlnd_switch_to_ssl_if_needed()
479 CONN_SET_STATE(conn, CONN_QUIT_SENT); in mysqlnd_switch_to_ssl_if_needed()
480 conn->m->send_close(conn TSRMLS_CC); in mysqlnd_switch_to_ssl_if_needed()
481 SET_CLIENT_ERROR(*conn->error_info, CR_SERVER_GONE_ERROR, UNKNOWN_SQLSTATE, mysqlnd_server_gone); in mysqlnd_switch_to_ssl_if_needed()
491 MYSQLND_CONN_DATA * conn, in mysqlnd_connect_run_authentication() argument
505 ret = mysqlnd_switch_to_ssl_if_needed(conn, greet_packet, options, mysql_flags TSRMLS_CC); in mysqlnd_connect_run_authentication()
543 …SET_CLIENT_ERROR(*conn->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "The server requested au… in mysqlnd_connect_run_authentication()
558 if (conn->auth_plugin_data) { in mysqlnd_connect_run_authentication()
559 mnd_pefree(conn->auth_plugin_data, conn->persistent); in mysqlnd_connect_run_authentication()
560 conn->auth_plugin_data = NULL; in mysqlnd_connect_run_authentication()
562 conn->auth_plugin_data_len = plugin_data_len; in mysqlnd_connect_run_authentication()
563 conn->auth_plugin_data = mnd_pemalloc(conn->auth_plugin_data_len, conn->persistent); in mysqlnd_connect_run_authentication()
564 if (!conn->auth_plugin_data) { in mysqlnd_connect_run_authentication()
565 SET_OOM_ERROR(*conn->error_info); in mysqlnd_connect_run_authentication()
568 memcpy(conn->auth_plugin_data, plugin_data, plugin_data_len); in mysqlnd_connect_run_authentication()
573 auth_plugin->methods.get_auth_data(NULL, &scrambled_data_len, conn, user, passwd, passwd_len, in mysqlnd_connect_run_authentication()
577 ret = mysqlnd_auth_handshake(conn, user, passwd, passwd_len, db, db_len, options, mysql_flags, in mysqlnd_connect_run_authentication()
600 DBG_INF_FMT("conn->error_info->error_no = %d", conn->error_info->error_no); in mysqlnd_connect_run_authentication()
601 } while (ret == FAIL && conn->error_info->error_no == 0 && switch_to_auth_protocol != NULL); in mysqlnd_connect_run_authentication()
608 conn->m->set_client_option(conn, MYSQLND_OPT_AUTH_PROTOCOL, requested_protocol TSRMLS_CC); in mysqlnd_connect_run_authentication()
623 MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
644 if (PASS != conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
649 SET_EMPTY_ERROR(*conn->error_info);
650 SET_ERROR_AFF_ROWS(conn);
654 conn? conn->persistent:0, conn? CONN_GET_STATE(conn):-1);
656 if (CONN_GET_STATE(conn) > CONN_ALLOCED && CONN_GET_STATE(conn) ) {
659 if (CONN_GET_STATE(conn) < CONN_QUIT_SENT) {
660 MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_CLOSE_IMPLICIT);
662 conn->m->send_close(conn TSRMLS_CC);
665 conn->m->free_contents(conn TSRMLS_CC);
666 MYSQLND_DEC_CONN_STATISTIC(conn->stats, STAT_OPENED_CONNECTIONS);
667 if (conn->persistent) {
668 MYSQLND_DEC_CONN_STATISTIC(conn->stats, STAT_OPENED_PERSISTENT_CONNECTIONS);
671 if (conn->net->compressed) {
678 conn->net->compressed = FALSE;
682conn->m->set_client_option(conn, MYSQLND_OPT_MAX_ALLOWED_PACKET, (char *)&max_allowed_size TSRMLS_…
731 SET_OOM_ERROR(*conn->error_info);
734 DBG_INF_FMT("transport=%s conn->scheme=%s", transport, conn->scheme);
735 conn->scheme = mnd_pestrndup(transport, transport_len, conn->persistent);
736 conn->scheme_len = transport_len;
739 if (!conn->scheme) {
744 greet_packet = conn->protocol->m.get_greet_packet(conn->protocol, FALSE TSRMLS_CC);
746 SET_OOM_ERROR(*conn->error_info);
750 if (FAIL == conn->net->m.connect_ex(conn->net, conn->scheme, conn->scheme_len, conn->persistent,
751 conn->stats, conn->error_info TSRMLS_CC))
756 DBG_INF_FMT("stream=%p", conn->net->stream);
758 if (FAIL == PACKET_READ(greet_packet, conn)) {
764 …SET_CLIENT_ERROR(*conn->error_info, greet_packet->error_no, greet_packet->sqlstate, greet_packet->…
770 SET_CLIENT_ERROR(*conn->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE,
775 conn->thread_id = greet_packet->thread_id;
776 conn->protocol_version = greet_packet->protocol_version;
777 conn->server_version = mnd_pestrdup(greet_packet->server_version, conn->persistent);
779 conn->greet_charset = mysqlnd_find_charset_nr(greet_packet->charset_no);
780 if (!conn->greet_charset) {
783 SET_CLIENT_ERROR(*conn->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE,
790 mysql_flags |= conn->options->flags; /* use the flags from set_client_option() */
805 if (conn->net->options.flags & MYSQLND_NET_FLAG_USE_COMPRESSION) {
814 if (conn->net->options.ssl_key || conn->net->options.ssl_cert ||
815 conn->net->options.ssl_ca || conn->net->options.ssl_capath || conn->net->options.ssl_cipher)
821 if (FAIL == mysqlnd_connect_run_authentication(conn, user, passwd, db, db_len, (size_t) passwd_len,
822 greet_packet, conn->options, mysql_flags TSRMLS_CC))
828 CONN_SET_STATE(conn, CONN_READY);
831 conn->net->compressed = TRUE;
838 conn->net->compressed = mysql_flags & CLIENT_COMPRESS? TRUE:FALSE;
840 conn->user = mnd_pestrdup(user, conn->persistent);
841 conn->user_len = strlen(conn->user);
842 conn->passwd = mnd_pestrndup(passwd, passwd_len, conn->persistent);
843 conn->passwd_len = passwd_len;
844 conn->port = port;
845 conn->connect_or_select_db = mnd_pestrndup(db, db_len, conn->persistent);
846 conn->connect_or_select_db_len = db_len;
848 if (!conn->user || !conn->passwd || !conn->connect_or_select_db) {
849 SET_OOM_ERROR(*conn->error_info);
854 conn->host = mnd_pestrdup(host, conn->persistent);
855 if (!conn->host) {
856 SET_OOM_ERROR(*conn->error_info);
859 conn->host_len = strlen(conn->host);
862 mnd_sprintf(&p, 0, "%s via TCP/IP", conn->host);
864 SET_OOM_ERROR(*conn->error_info);
867 conn->host_info = mnd_pestrdup(p, conn->persistent);
869 if (!conn->host_info) {
870 SET_OOM_ERROR(*conn->error_info);
875 conn->unix_socket = mnd_pestrdup(socket_or_pipe, conn->persistent);
877 conn->host_info = mnd_pestrdup("Localhost via UNIX socket", conn->persistent);
880 mnd_sprintf(&p, 0, "%s via named pipe", conn->unix_socket);
882 SET_OOM_ERROR(*conn->error_info);
885 conn->host_info = mnd_pestrdup(p, conn->persistent);
887 if (!conn->host_info) {
888 SET_OOM_ERROR(*conn->error_info);
894 if (!conn->unix_socket || !conn->host_info) {
895 SET_OOM_ERROR(*conn->error_info);
898 conn->unix_socket_len = strlen(conn->unix_socket);
900 conn->client_flag = mysql_flags;
901 conn->max_packet_size = MYSQLND_ASSEMBLED_PACKET_MAX_SIZE;
903 conn->server_capabilities = greet_packet->server_capabilities;
904 memset(conn->upsert_status, 0, sizeof(*conn->upsert_status));
905 conn->upsert_status->warning_count = 0;
906 conn->upsert_status->server_status = greet_packet->server_status;
907 conn->upsert_status->affected_rows = 0;
909 SET_EMPTY_ERROR(*conn->error_info);
911 mysqlnd_local_infile_default(conn);
916conn->m->set_client_option(conn, MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE, (char *)&as_unicode …
920 if (conn->options->init_commands) {
922 for (; current_command < conn->options->num_commands; ++current_command) {
923 const char * const command = conn->options->init_commands[current_command];
925 MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_INIT_COMMAND_EXECUTED_COUNT);
926 if (PASS != conn->m->query(conn, command, strlen(command) TSRMLS_CC)) {
927 MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_INIT_COMMAND_FAILED_COUNT);
930 if (conn->last_query_type == QUERY_SELECT) {
931 MYSQLND_RES * result = conn->m->use_result(conn TSRMLS_CC);
941 …MYSQLND_INC_CONN_STATISTIC_W_VALUE2(conn->stats, STAT_CONNECT_SUCCESS, 1, STAT_OPENED_CONNECTIONS,…
945 if (conn->persistent) {
946 …MYSQLND_INC_CONN_STATISTIC_W_VALUE2(conn->stats, STAT_PCONNECT_SUCCESS, 1, STAT_OPENED_PERSISTENT_…
949 DBG_INF_FMT("connection_id=%llu", conn->thread_id);
953 conn->m->local_tx_end(conn, this_func, PASS TSRMLS_CC);
959 …R_FMT("[%u] %.128s (trying to connect via %s)", conn->error_info->error_no, conn->error_info->erro…
960 if (!conn->error_info->error_no) {
961 …SET_CLIENT_ERROR(*conn->error_info, CR_CONNECTION_ERROR, UNKNOWN_SQLSTATE, conn->error_info->error…
963 conn->error_info->error_no, conn->error_info->error, conn->scheme);
966 conn->m->free_contents(conn TSRMLS_CC);
967 MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_CONNECT_FAILURE);
969 conn->m->local_tx_end(conn, this_func, FAIL TSRMLS_CC);
990 MYSQLND_CONN_DATA * conn = conn_handle->data; local
994 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
995 …ret = conn->m->connect(conn, host, user, passwd, passwd_len, db, db_len, port, socket_or_pipe, mys…
997 conn->m->local_tx_end(conn, this_func, FAIL TSRMLS_CC);
1050 MYSQLND_METHOD(mysqlnd_conn_data, query)(MYSQLND_CONN_DATA * conn, const char * query, unsigned int…
1055 DBG_INF_FMT("conn=%llu query=%s", conn->thread_id, query);
1057 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1058 if (PASS == conn->m->send_query(conn, query, query_len TSRMLS_CC) &&
1059 PASS == conn->m->reap_query(conn TSRMLS_CC))
1062 if (conn->last_query_type == QUERY_UPSERT && conn->upsert_status->affected_rows) {
1063 …MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, STAT_ROWS_AFFECTED_NORMAL, conn->upsert_status->af…
1066 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1075 MYSQLND_METHOD(mysqlnd_conn_data, send_query)(MYSQLND_CONN_DATA * conn, const char * query, unsigne…
1080 DBG_INF_FMT("conn=%llu query=%s", conn->thread_id, query);
1081 DBG_INF_FMT("conn->server_status=%u", conn->upsert_status->server_status);
1083 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1084 ret = conn->m->simple_command(conn, COM_QUERY, (zend_uchar *) query, query_len,
1088 CONN_SET_STATE(conn, CONN_QUERY_SENT);
1090 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1092 DBG_INF_FMT("conn->server_status=%u", conn->upsert_status->server_status);
1100 MYSQLND_METHOD(mysqlnd_conn_data, reap_query)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
1103 enum_mysqlnd_connection_state state = CONN_GET_STATE(conn);
1106 DBG_INF_FMT("conn=%llu", conn->thread_id);
1108 DBG_INF_FMT("conn->server_status=%u", conn->upsert_status->server_status);
1109 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1115 ret = conn->m->query_read_result_set_header(conn, NULL TSRMLS_CC);
1117 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1119 DBG_INF_FMT("conn->server_status=%u", conn->upsert_status->server_status);
1318 MYSQLND_METHOD(mysqlnd_conn_data, list_fields)(MYSQLND_CONN_DATA * conn, const char *table, const c…
1326 …DBG_INF_FMT("conn=%llu table=%s wild=%s", conn->thread_id, table? table:"",achtung_wild? achtung_w…
1328 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1345 if (PASS != conn->m->simple_command(conn, COM_FIELD_LIST, buff, p - buff,
1348 conn->m->local_tx_end(conn, 0, FAIL TSRMLS_CC);
1356 result = conn->m->result_init(5000, conn->persistent TSRMLS_CC);
1361 if (FAIL == result->m.read_result_metadata(result, conn TSRMLS_CC)) {
1373 SET_OOM_ERROR(*conn->error_info);
1380 conn->m->local_tx_end(conn, this_func, result == NULL? FAIL:PASS TSRMLS_CC);
1390 MYSQLND_METHOD(mysqlnd_conn_data, list_method)(MYSQLND_CONN_DATA * conn, const char * query, const …
1398 DBG_INF_FMT("conn=%llu query=%s wild=%u", conn->thread_id, query, achtung_wild);
1400 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1415 if (PASS == conn->m->query(conn, show_query, show_query_len TSRMLS_CC)) {
1416 result = conn->m->store_result(conn TSRMLS_CC);
1421 conn->m->local_tx_end(conn, this_func, result == NULL? FAIL:PASS TSRMLS_CC);
1430 MYSQLND_METHOD(mysqlnd_conn_data, errno)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1432 return conn->error_info->error_no;
1439 MYSQLND_METHOD(mysqlnd_conn_data, error)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1441 return conn->error_info->error;
1448 MYSQLND_METHOD(mysqlnd_conn_data, sqlstate)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1450 return conn->error_info->sqlstate[0] ? conn->error_info->sqlstate:MYSQLND_SQLSTATE_NULL;
1467 MYSQLND_METHOD(mysqlnd_conn_data, ssl_set)(MYSQLND_CONN_DATA * const conn, const char * key, const …
1474 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1475 ret = (PASS == conn->net->m.set_client_option(conn->net, MYSQLND_OPT_SSL_KEY, key TSRMLS_CC) &&
1476 PASS == conn->net->m.set_client_option(conn->net, MYSQLND_OPT_SSL_CERT, cert TSRMLS_CC) &&
1477 PASS == conn->net->m.set_client_option(conn->net, MYSQLND_OPT_SSL_CA, ca TSRMLS_CC) &&
1478 PASS == conn->net->m.set_client_option(conn->net, MYSQLND_OPT_SSL_CAPATH, capath TSRMLS_CC) &&
1479 …PASS == conn->net->m.set_client_option(conn->net, MYSQLND_OPT_SSL_CIPHER, cipher TSRMLS_CC)) ? PAS…
1481 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1490 MYSQLND_METHOD(mysqlnd_conn_data, escape_string)(MYSQLND_CONN_DATA * const conn, char * newstr, con…
1495 DBG_INF_FMT("conn=%llu", conn->thread_id);
1497 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1498 DBG_INF_FMT("server_status=%u", conn->upsert_status->server_status);
1499 if (conn->upsert_status->server_status & SERVER_STATUS_NO_BACKSLASH_ESCAPES) {
1500 ret = mysqlnd_cset_escape_quotes(conn->charset, newstr, escapestr, escapestr_len TSRMLS_CC);
1502 ret = mysqlnd_cset_escape_slashes(conn->charset, newstr, escapestr, escapestr_len TSRMLS_CC);
1504 conn->m->local_tx_end(conn, this_func, PASS TSRMLS_CC);
1513 MYSQLND_METHOD(mysqlnd_conn_data, dump_debug_info)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1518 DBG_INF_FMT("conn=%llu", conn->thread_id);
1519 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1520 ret = conn->m->simple_command(conn, COM_DEBUG, NULL, 0, PROT_EOF_PACKET, FALSE, TRUE TSRMLS_CC);
1522 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1532 MYSQLND_METHOD(mysqlnd_conn_data, select_db)(MYSQLND_CONN_DATA * const conn, const char * const db,…
1538 DBG_INF_FMT("conn=%llu db=%s", conn->thread_id, db);
1540 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1541 …ret = conn->m->simple_command(conn, COM_INIT_DB, (zend_uchar*) db, db_len, PROT_OK_PACKET, FALSE, …
1546 SET_ERROR_AFF_ROWS(conn);
1548 if (conn->connect_or_select_db) {
1549 mnd_pefree(conn->connect_or_select_db, conn->persistent);
1551 conn->connect_or_select_db = mnd_pestrndup(db, db_len, conn->persistent);
1552 conn->connect_or_select_db_len = db_len;
1553 if (!conn->connect_or_select_db) {
1555 SET_OOM_ERROR(*conn->error_info);
1559 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1568 MYSQLND_METHOD(mysqlnd_conn_data, ping)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1574 DBG_INF_FMT("conn=%llu", conn->thread_id);
1576 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1577 ret = conn->m->simple_command(conn, COM_PING, NULL, 0, PROT_OK_PACKET, TRUE, TRUE TSRMLS_CC);
1582 SET_ERROR_AFF_ROWS(conn);
1584 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1594 MYSQLND_METHOD(mysqlnd_conn_data, statistic)(MYSQLND_CONN_DATA * conn, char **message, unsigned int…
1601 DBG_INF_FMT("conn=%llu", conn->thread_id);
1603 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1605 ret = conn->m->simple_command(conn, COM_STATISTICS, NULL, 0, PROT_LAST, FALSE, TRUE TSRMLS_CC);
1609 stats_header = conn->protocol->m.get_stats_packet(conn->protocol, FALSE TSRMLS_CC);
1611 SET_OOM_ERROR(*conn->error_info);
1615 if (PASS == (ret = PACKET_READ(stats_header, conn))) {
1624 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1633 MYSQLND_METHOD(mysqlnd_conn_data, kill)(MYSQLND_CONN_DATA * conn, unsigned int pid TSRMLS_DC)
1640 DBG_INF_FMT("conn=%llu pid=%u", conn->thread_id, pid);
1642 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1646 if (pid != conn->thread_id) {
1647 …ret = conn->m->simple_command(conn, COM_PROCESS_KILL, buff, 4, PROT_OK_PACKET, FALSE, TRUE TSRMLS_…
1652 SET_ERROR_AFF_ROWS(conn);
1653 …} else if (PASS == (ret = conn->m->simple_command(conn, COM_PROCESS_KILL, buff, 4, PROT_LAST, FALS…
1654 CONN_SET_STATE(conn, CONN_QUIT_SENT);
1657 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1666 MYSQLND_METHOD(mysqlnd_conn_data, set_charset)(MYSQLND_CONN_DATA * const conn, const char * const c…
1673 DBG_INF_FMT("conn=%llu cs=%s", conn->thread_id, csname);
1676 SET_CLIENT_ERROR(*conn->error_info, CR_CANT_FIND_CHARSET, UNKNOWN_SQLSTATE,
1681 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1685 if (FAIL == (ret = conn->m->query(conn, query, query_len TSRMLS_CC))) {
1687 } else if (conn->error_info->error_no) {
1690 conn->charset = charset;
1694 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1705 MYSQLND_METHOD(mysqlnd_conn_data, refresh)(MYSQLND_CONN_DATA * const conn, uint8_t options TSRMLS_D…
1711 DBG_INF_FMT("conn=%llu options=%lu", conn->thread_id, options);
1713 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1716 ret = conn->m->simple_command(conn, COM_REFRESH, bits, 1, PROT_OK_PACKET, FALSE, TRUE TSRMLS_CC);
1718 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1727 MYSQLND_METHOD(mysqlnd_conn_data, shutdown)(MYSQLND_CONN_DATA * const conn, uint8_t level TSRMLS_DC)
1733 DBG_INF_FMT("conn=%llu level=%lu", conn->thread_id, level);
1735 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
1738 ret = conn->m->simple_command(conn, COM_SHUTDOWN, bits, 1, PROT_OK_PACKET, FALSE, TRUE TSRMLS_CC);
1740 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
1749 MYSQLND_METHOD(mysqlnd_conn_data, send_close)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1755 conn->thread_id, conn->net->stream? conn->net->stream->abstract:NULL);
1757 if (CONN_GET_STATE(conn) >= CONN_READY) {
1758 MYSQLND_DEC_CONN_STATISTIC(conn->stats, STAT_OPENED_CONNECTIONS);
1759 if (conn->persistent) {
1760 MYSQLND_DEC_CONN_STATISTIC(conn->stats, STAT_OPENED_PERSISTENT_CONNECTIONS);
1763 switch (CONN_GET_STATE(conn)) {
1766 if (conn->net->stream) {
1767 ret = conn->m->simple_command(conn, COM_QUIT, NULL, 0, PROT_LAST, TRUE, TRUE TSRMLS_CC);
1780 DBG_ERR_FMT("Brutally closing connection [%p][%s]", conn, conn->scheme);
1800 CONN_SET_STATE(conn, CONN_QUIT_SENT);
1809 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, get_reference)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1812 ++conn->refcount;
1813 DBG_INF_FMT("conn=%llu new_refcount=%u", conn->thread_id, conn->refcount);
1814 DBG_RETURN(conn);
1821 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, free_reference)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1825 DBG_INF_FMT("conn=%llu old_refcount=%u", conn->thread_id, conn->refcount);
1826 if (!(--conn->refcount)) {
1832 ret = conn->m->send_close(conn TSRMLS_CC);
1833 conn->m->dtor(conn TSRMLS_CC);
1842 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, get_state)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1845 DBG_RETURN(conn->state);
1852 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, set_state)(MYSQLND_CONN_DATA * const conn, enum mysqlnd_c…
1856 conn->state = new_state;
1864 MYSQLND_METHOD(mysqlnd_conn_data, field_count)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1866 return conn->field_count;
1873 MYSQLND_METHOD(mysqlnd_conn_data, server_status)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1875 return conn->upsert_status->server_status;
1882 MYSQLND_METHOD(mysqlnd_conn_data, insert_id)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1884 return conn->upsert_status->last_insert_id;
1891 MYSQLND_METHOD(mysqlnd_conn_data, affected_rows)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1893 return conn->upsert_status->affected_rows;
1900 MYSQLND_METHOD(mysqlnd_conn_data, warning_count)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1902 return conn->upsert_status->warning_count;
1909 MYSQLND_METHOD(mysqlnd_conn_data, info)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1911 return conn->last_message;
1933 MYSQLND_METHOD(mysqlnd_conn_data, get_server_info)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1935 return conn->server_version;
1942 MYSQLND_METHOD(mysqlnd_conn_data, get_host_info)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1944 return conn->host_info;
1951 MYSQLND_METHOD(mysqlnd_conn_data, get_proto_info)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1953 return conn->protocol_version;
1960 MYSQLND_METHOD(mysqlnd_conn_data, charset_name)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1962 return conn->charset->name;
1969 MYSQLND_METHOD(mysqlnd_conn_data, thread_id)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
1971 return conn->thread_id;
1978 MYSQLND_METHOD(mysqlnd_conn_data, get_server_version)(const MYSQLND_CONN_DATA * const conn TSRMLS_D…
1983 if (!(p = conn->server_version)) {
2000 MYSQLND_METHOD(mysqlnd_conn_data, more_results)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
2004 DBG_RETURN(conn->upsert_status->server_status & SERVER_MORE_RESULTS_EXISTS? TRUE:FALSE);
2011 MYSQLND_METHOD(mysqlnd_conn_data, next_result)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
2017 DBG_INF_FMT("conn=%llu", conn->thread_id);
2019 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
2021 if (CONN_GET_STATE(conn) != CONN_NEXT_RESULT_PENDING) {
2025 SET_EMPTY_ERROR(*conn->error_info);
2026 SET_ERROR_AFF_ROWS(conn);
2031 if (FAIL == (ret = conn->m->query_read_result_set_header(conn, NULL TSRMLS_CC))) {
2036 if (!conn->error_info->error_no) {
2039 CONN_SET_STATE(conn, CONN_QUIT_SENT);
2041 …DBG_INF_FMT("Error from the server : (%u) %s", conn->error_info->error_no, conn->error_info->error…
2045 if (conn->last_query_type == QUERY_UPSERT && conn->upsert_status->affected_rows) {
2046 …MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, STAT_ROWS_AFFECTED_NORMAL, conn->upsert_status->af…
2049 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
2110 MYSQLND_METHOD(mysqlnd_conn_data, change_user)(MYSQLND_CONN_DATA * const conn,
2129 conn->thread_id, user?user:"", passwd?"***":"null", db?db:"", (silent == TRUE)?1:0 );
2131 if (PASS != conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
2136 SET_EMPTY_ERROR(*conn->error_info);
2137 SET_ERROR_AFF_ROWS(conn);
2157 plugin_data_len = conn->auth_plugin_data_len;
2163 memcpy(plugin_data, conn->auth_plugin_data, plugin_data_len);
2165 …requested_protocol = mnd_pestrdup(conn->options->auth_protocol? conn->options->auth_protocol:"mysq…
2184 …SET_CLIENT_ERROR(*conn->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "The server requested au…
2199 if (conn->auth_plugin_data) {
2200 mnd_pefree(conn->auth_plugin_data, conn->persistent);
2201 conn->auth_plugin_data = NULL;
2203 conn->auth_plugin_data_len = plugin_data_len;
2204 conn->auth_plugin_data = mnd_pemalloc(conn->auth_plugin_data_len, conn->persistent);
2205 if (!conn->auth_plugin_data) {
2206 SET_OOM_ERROR(*conn->error_info);
2210 memcpy(conn->auth_plugin_data, plugin_data, plugin_data_len);
2216 auth_plugin->methods.get_auth_data(NULL, &scrambled_data_len, conn, user, passwd, passwd_len,
2217 plugin_data, plugin_data_len, 0, conn->server_capabilities TSRMLS_CC);
2220 …ret = mysqlnd_auth_change_user(conn, user, strlen(user), passwd, passwd_len, db, strlen(db), silen…
2243 DBG_INF_FMT("conn->error_info->error_no = %d", conn->error_info->error_no);
2244 } while (ret == FAIL && conn->error_info->error_no == 0 && switch_to_auth_protocol != NULL);
2249 conn->m->set_client_option(conn, MYSQLND_OPT_AUTH_PROTOCOL, requested_protocol TSRMLS_CC);
2261 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
2271 MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const conn,
2279 DBG_INF_FMT("conn=%llu option=%u", conn->thread_id, option);
2281 if (PASS != conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
2299 ret = conn->net->m.set_client_option(conn->net, option, value TSRMLS_CC);
2303 conn->options->numeric_and_datetime_as_unicode = *(unsigned int*) value;
2308 conn->options->int_and_float_native = *(unsigned int*) value;
2313 conn->options->flags |= CLIENT_LOCAL_FILES;
2315 conn->options->flags &= ~CLIENT_LOCAL_FILES;
2324 …ew_init_commands = mnd_perealloc(conn->options->init_commands, sizeof(char *) * (conn->options->nu…
2328 conn->options->init_commands = new_init_commands;
2329 new_command = mnd_pestrdup(value, conn->persistent);
2333 conn->options->init_commands[conn->options->num_commands] = new_command;
2334 ++conn->options->num_commands;
2349 …SET_CLIENT_ERROR(*conn->error_info, CR_CANT_FIND_CHARSET, UNKNOWN_SQLSTATE, "Unknown character set…
2354 new_charset_name = mnd_pestrdup(value, conn->persistent);
2358 if (conn->options->charset_name) {
2359 mnd_pefree(conn->options->charset_name, conn->persistent);
2361 conn->options->charset_name = new_charset_name;
2362 DBG_INF_FMT("charset=%s", conn->options->charset_name);
2366 conn->options->protocol = MYSQL_PROTOCOL_PIPE;
2370 conn->options->protocol = *(unsigned int*) value;
2387 conn->options->max_allowed_packet = *(unsigned int*) value;
2392 char * new_auth_protocol = value? mnd_pestrdup(value, conn->persistent) : NULL;
2396 if (conn->options->auth_protocol) {
2397 mnd_pefree(conn->options->auth_protocol, conn->persistent);
2399 conn->options->auth_protocol = new_auth_protocol;
2400 DBG_INF_FMT("auth_protocol=%s", conn->options->auth_protocol);
2405 conn->options->flags |= CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS;
2407 conn->options->flags &= ~CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS;
2419 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
2422 SET_OOM_ERROR(*conn->error_info);
2423 conn->m->local_tx_end(conn, this_func, FAIL TSRMLS_CC);
2432 MYSQLND_METHOD(mysqlnd_conn_data, use_result)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
2438 DBG_INF_FMT("conn=%llu", conn->thread_id);
2440 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
2442 if (!conn->current_result) {
2447 if (conn->last_query_type != QUERY_SELECT || CONN_GET_STATE(conn) != CONN_FETCHING_DATA) {
2448 …SET_CLIENT_ERROR(*conn->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync…
2453 MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_UNBUFFERED_SETS);
2455 conn->current_result->conn = conn->m->get_reference(conn TSRMLS_CC);
2456 result = conn->current_result->m.use_result(conn->current_result, FALSE TSRMLS_CC);
2459 conn->current_result->m.free_result(conn->current_result, TRUE TSRMLS_CC);
2461 conn->current_result = NULL;
2464 conn->m->local_tx_end(conn, this_func, result == NULL? FAIL:PASS TSRMLS_CC);
2474 MYSQLND_METHOD(mysqlnd_conn_data, store_result)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
2480 DBG_INF_FMT("conn=%llu", conn->thread_id);
2482 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
2484 if (!conn->current_result) {
2489 if (conn->last_query_type != QUERY_SELECT || CONN_GET_STATE(conn) != CONN_FETCHING_DATA) {
2490 …SET_CLIENT_ERROR(*conn->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync…
2495 MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_BUFFERED_SETS);
2497 result = conn->current_result->m.store_result(conn->current_result, conn, FALSE TSRMLS_CC);
2499 conn->current_result->m.free_result(conn->current_result, TRUE TSRMLS_CC);
2501 conn->current_result = NULL;
2504 conn->m->local_tx_end(conn, this_func, result == NULL? FAIL:PASS TSRMLS_CC);
2513 MYSQLND_METHOD(mysqlnd_conn_data, get_connection_stats)(const MYSQLND_CONN_DATA * const conn,
2517 …mysqlnd_fill_stats_hash(conn->stats, mysqlnd_stats_values_names, return_value TSRMLS_CC ZEND_FILE_…
2525 MYSQLND_METHOD(mysqlnd_conn_data, set_autocommit)(MYSQLND_CONN_DATA * conn, unsigned int mode TSRML…
2531 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
2532 …ret = conn->m->query(conn, (mode) ? "SET AUTOCOMMIT=1":"SET AUTOCOMMIT=0", sizeof("SET AUTOCOMMIT=…
2533 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
2543 MYSQLND_METHOD(mysqlnd_conn_data, tx_commit)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
2549 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
2550 ret = conn->m->query(conn, "COMMIT", sizeof("COMMIT") - 1 TSRMLS_CC);
2551 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
2561 MYSQLND_METHOD(mysqlnd_conn_data, tx_rollback)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
2567 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
2568 ret = conn->m->query(conn, "ROLLBACK", sizeof("ROLLBACK") - 1 TSRMLS_CC);
2569 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);
2579 MYSQLND_METHOD(mysqlnd_conn_data, local_tx_start)(MYSQLND_CONN_DATA * conn, size_t this_func TSRMLS…
2590 MYSQLND_METHOD(mysqlnd_conn_data, local_tx_end)(MYSQLND_CONN_DATA * conn, size_t this_func, enum_fu…
2600 MYSQLND_METHOD(mysqlnd_conn_data, init)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
2603 mysqlnd_stats_init(&conn->stats, STAT_LAST);
2604 SET_ERROR_AFF_ROWS(conn);
2606 conn->net = mysqlnd_net_init(conn->persistent, conn->stats, conn->error_info TSRMLS_CC);
2607 conn->protocol = mysqlnd_protocol_init(conn->persistent TSRMLS_CC);
2609 DBG_RETURN(conn->stats && conn->net && conn->protocol? PASS:FAIL);
2614 MYSQLND_STMT * _mysqlnd_stmt_init(MYSQLND_CONN_DATA * const conn TSRMLS_DC);
2698 MYSQLND_METHOD(mysqlnd_conn, clone_object)(MYSQLND * const conn TSRMLS_DC)
2702 …ret = MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory).clone_connection_object(conn TSRMLS_…
2710 MYSQLND_METHOD_PRIVATE(mysqlnd_conn, dtor)(MYSQLND * conn TSRMLS_DC)
2713 DBG_INF_FMT("conn=%llu", conn->data->thread_id);
2715 conn->data->m->free_reference(conn->data TSRMLS_CC);
2717 mnd_pefree(conn, conn->persistent);
2729 MYSQLND_CONN_DATA * conn = conn_handle->data; local
2733 DBG_INF_FMT("conn=%llu", conn->thread_id);
2735 if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
2736 if (CONN_GET_STATE(conn) >= CONN_READY) {
2742 MYSQLND_INC_CONN_STATISTIC(conn->stats, close_type_to_stat_map[close_type]);
2749 ret = conn->m->send_close(conn TSRMLS_CC);
2752 conn->m->local_tx_end(conn, this_func, ret TSRMLS_CC);