Branch Coverage

MariaDB.xs
Criterion Covered Total %
branch 47 1252 3.7


line true false branch
186 0 0 if (self->state == STATE_IDLE && !ngx_queue_empty(&self->send_queue))
0 0 if (self->state == STATE_IDLE && !ngx_queue_empty(&self->send_queue))
188 0 0 else if (self->state == STATE_IDLE) {
202 0 0 if (cbt_freelist) {
213 0 0 if (cbt_freelist_size >= MAX_FREELIST_DEPTH) {
229 0 0 if (send_freelist) {
240 0 0 if (send_freelist_size >= MAX_FREELIST_DEPTH) {
264 0 2 while (!ngx_queue_empty(&self->send_queue)) {
273 0 2 while (!ngx_queue_empty(&self->cb_queue)) {
286 0 0 if (!self->reading && self->fd >= 0) {
0 0 if (!self->reading && self->fd >= 0) {
293 0 2 if (self->reading) {
300 0 0 if (!self->writing && self->fd >= 0) {
0 0 if (!self->writing && self->fd >= 0) {
307 0 2 if (self->writing) {
314 0 0 if (!self->timing) {
316 0 0 if (ms > 0) {
325 0 2 if (self->timing) {
332 0 0 if (status & (MYSQL_WAIT_READ | MYSQL_WAIT_EXCEPT)) start_reading(self); else stop_reading(self);
333 0 0 if (status & MYSQL_WAIT_WRITE) start_writing(self); else stop_writing(self);
334 0 0 if (status & MYSQL_WAIT_TIMEOUT) start_timer(self); else stop_timer(self);
345 0 0 if (self->magic == EV_MARIADB_FREED &&
346 0 0 self->callback_depth == 0) {
355 0 0 if (NULL == self->on_error) return;
361 0 0 PUSHMARK(SP);
362 0 0 XPUSHs(sv_2mortal(newSVpv(msg, 0)));
366 0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
367 0 0 warn("EV::MariaDB: exception in error handler: %s", SvPV_nolen(ERRSV));
368 0 0 sv_setpvn(ERRSV, "", 0);
371 0 0 FREETMPS;
381 0 0 if (ngx_queue_empty(&self->cb_queue)) return NULL;
399 0 0 PUSHMARK(SP);
404 0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
405 0 0 warn("EV::MariaDB: exception in callback: %s", SvPV_nolen(ERRSV));
406 0 0 sv_setpvn(ERRSV, "", 0);
409 0 0 FREETMPS;
418 0 0 PUSHMARK(SP);
422 0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
423 0 0 warn("EV::MariaDB: exception in stream callback: %s", SvPV_nolen(ERRSV));
424 0 0 sv_setpvn(ERRSV, "", 0);
427 0 0 FREETMPS;
434 0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
435 0 0 warn("EV::MariaDB: exception in callback: %s", SvPV_nolen(ERRSV));
436 0 0 sv_setpvn(ERRSV, "", 0);
446 0 0 if (cb == NULL) {
447 0 0 if (res) {
460 0 0 PUSHMARK(SP);
462 0 0 if (res == NULL && mysql_field_count(self->conn) > 0) {
0 0 if (res == NULL && mysql_field_count(self->conn) > 0) {
466 0 0 else if (res != NULL) {
475 0 0 if (nrows > 0) av_extend(rows, (SSize_t)(nrows < (my_ulonglong)SSize_t_MAX ? nrows - 1 : SSize_t_MAX));
0 0 if (nrows > 0) av_extend(rows, (SSize_t)(nrows < (my_ulonglong)SSize_t_MAX ? nrows - 1 : SSize_t_MAX));
476 0 0 while ((row = mysql_fetch_row(res)) != NULL) {
480 0 0 if (ncols > 0) av_extend(r, ncols - 1);
481 0 0 for (c = 0; c < ncols; c++) {
482 0 0 if (row[c] == NULL) {
486 0 0 if (self->utf8 && is_utf8_charset(fields[c].charsetnr))
0 0 if (self->utf8 && is_utf8_charset(fields[c].charsetnr))
508 0 0 FREETMPS;
519 0 0 if (cb == NULL) return 0;
533 0 0 if (cb == NULL) {
544 0 0 PUSHMARK(SP);
548 0 0 FREETMPS;
558 0 0 int is_fork = IS_FORKED(self);
0 0 int is_fork = IS_FORKED(self);
568 0 0 if (self->op_data_ptr) {
578 0 0 while (ctx) {
580 0 0 if (!is_fork && ctx->stmt) {
0 0 if (!is_fork && ctx->stmt) {
581 0 0 if (ctx->stmt == self->op_stmt)
592 0 0 if (is_fork) {
597 0 0 if (self->op_result && saved_fd >= 0)
0 0 if (self->op_result && saved_fd >= 0)
600 0 0 if (self->op_stmt) {
604 0 0 if (self->op_result) {
608 0 0 if (self->conn) {
623 0 2 if (!ngx_queue_empty(&self->send_queue)) {
628 0 2 if (!ngx_queue_empty(&self->cb_queue)) {
637 0 2 if (self->stream_cb) {
645 0 2 while (!ngx_queue_empty(&local_send)) {
658 0 2 while (!ngx_queue_empty(&local_cb)) {
688 2 0 if (has_arg) {
689 0 2 if (NULL != *slot) {
693 2 0 if (NULL != handler && SvOK(handler) &&
2 0 if (NULL != handler && SvOK(handler) &&
694 2 0 SvROK(handler) && SvTYPE(SvRV(handler)) == SVt_PVCV) {
2 0 SvROK(handler) && SvTYPE(SvRV(handler)) == SVt_PVCV) {
701 2 0 : &PL_sv_undef;
711 0 0 if (status != 0) {
723 0 0 if (self->op_ret > 0) {
730 0 0 if (check_destroyed(self)) return;
731 0 0 if (self->state != STATE_IDLE) return;
732 0 0 if (self->conn && mysql_more_results(self->conn)) {
0 0 if (self->conn && mysql_more_results(self->conn)) {
740 0 0 if (self->op_ret == -1) {
746 0 0 if (mysql_field_count(self->conn) > 0) {
748 0 0 if (status != 0) {
754 0 0 if (self->op_result) {
761 0 0 if (!mysql_more_results(self->conn))
765 0 0 if (status != 0) {
793 0 0 if (check_destroyed(self)) return;
794 0 0 if (self->state != STATE_IDLE) return;
796 0 0 if (check_destroyed(self)) return;
797 0 0 if (self->state != STATE_IDLE) return;
807 0 0 if (self->op_ret != 0) {
824 0 0 if (self->op_bool_ret != 0) {
828 0 0 if (deliver_error(self, mysql_error(self->conn))) return;
829 0 0 if (self->state != STATE_IDLE) return;
831 0 0 if (self->conn && mysql_more_results(self->conn)) {
0 0 if (self->conn && mysql_more_results(self->conn)) {
839 0 0 if (mysql_field_count(self->conn) > 0) {
842 0 0 if (status != 0) {
854 0 0 if (deliver_result(self)) return;
855 0 0 if (self->state != STATE_IDLE) return;
857 0 0 if (self->conn && mysql_more_results(self->conn)) {
0 0 if (self->conn && mysql_more_results(self->conn)) {
867 0 0 if (self->draining) {
871 0 0 if (res) mysql_free_result(res);
872 0 0 if (self->conn && mysql_more_results(self->conn)) {
0 0 if (self->conn && mysql_more_results(self->conn)) {
874 0 0 if (status != 0) {
891 0 0 if (deliver_result(self)) return;
892 0 0 if (self->state != STATE_IDLE) return;
894 0 0 if (self->conn && mysql_more_results(self->conn)) {
0 0 if (self->conn && mysql_more_results(self->conn)) {
919 0 0 while (!ngx_queue_empty(&self->send_queue) &&
920 0 0 self->send_count < MAX_PIPELINE_DEPTH) {
927 0 0 if (status != 0) {
937 0 0 if (self->op_ret != 0) {
949 0 0 while (self->send_count > 0) {
952 0 0 if (status != 0) {
959 0 0 if (self->op_bool_ret != 0) {
962 0 0 if (deliver_error(self, mysql_error(self->conn))) return;
964 0 0 if (self->state != STATE_IDLE) return;
965 0 0 if (self->conn && mysql_more_results(self->conn)) {
0 0 if (self->conn && mysql_more_results(self->conn)) {
969 0 0 if (!ngx_queue_empty(&self->send_queue)) goto send_phase;
973 0 0 if (mysql_field_count(self->conn) > 0) {
976 0 0 if (status != 0) {
985 0 0 if (deliver_result(self)) return;
987 0 0 if (self->state != STATE_IDLE) return;
988 0 0 if (self->conn && mysql_more_results(self->conn)) {
0 0 if (self->conn && mysql_more_results(self->conn)) {
993 0 0 if (!ngx_queue_empty(&self->send_queue)) goto send_phase;
1005 0 0 if (self->op_conn_ret == NULL) {
1011 0 0 if (check_destroyed(self)) return;
1014 0 0 if (self->state != STATE_IDLE) return;
1016 0 0 if (check_destroyed(self)) return;
1017 0 0 if (self->state != STATE_IDLE) return;
1030 0 0 if (self->fd < 0) {
1034 0 0 if (check_destroyed(self)) return;
1035 0 0 if (self->state != STATE_IDLE) return;
1037 0 0 if (check_destroyed(self)) return;
1038 0 0 if (self->state != STATE_IDLE) return;
1046 0 0 if (NULL != self->on_connect) {
1054 0 0 PUSHMARK(SP);
1058 0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
1059 0 0 warn("EV::MariaDB: exception in connect handler: %s", SvPV_nolen(ERRSV));
1060 0 0 sv_setpvn(ERRSV, "", 0);
1063 0 0 FREETMPS;
1068 0 0 if (check_destroyed(self)) return;
1082 0 0 if (self->op_ret != 0) {
1086 0 0 if (deliver_error(self, errbuf)) return;
1097 0 0 if (deliver_value(self, newSViv(PTR2IV(ctx)))) return;
1107 0 0 if (self->op_ret != 0) {
1108 0 0 if (deliver_error(self, mysql_stmt_error(stmt))) return;
1119 0 0 if (cb == NULL) {
1120 0 0 if (self->op_result) {
1133 0 0 PUSHMARK(SP);
1135 0 0 if (self->op_result == NULL) {
1159 0 0 for (c = 0; c < ncols; c++) {
1161 0 0 if (buflen < 256) buflen = 256;
1171 0 0 if (mysql_stmt_bind_result(stmt, bind)) {
1182 0 0 while ((fetch_ret = mysql_stmt_fetch(stmt)) == 0) {
1184 0 0 if (ncols > 0) av_extend(row, ncols - 1);
1185 0 0 for (c = 0; c < ncols; c++) {
1186 0 0 if (is_null[c]) {
1190 0 0 if (self->utf8 && is_utf8_charset(fields[c].charsetnr))
0 0 if (self->utf8 && is_utf8_charset(fields[c].charsetnr))
1198 0 0 if (fetch_ret != 0 && fetch_ret != MYSQL_NO_DATA) {
0 0 if (fetch_ret != 0 && fetch_ret != MYSQL_NO_DATA) {
1204 0 0 if (fetch_ret == MYSQL_DATA_TRUNCATED)
1222 0 0 FREETMPS;
1226 0 0 if (check_destroyed(self)) return;
1232 0 0 if (self->op_ret != 0) {
1236 0 0 if (deliver_error(self, mysql_stmt_error(stmt))) return;
1245 0 0 while (*pp) {
1246 0 0 if (*pp == ctx) { *pp = ctx->next; return; }
1253 0 0 if (self->op_stmt_ctx) {
1259 0 0 if (self->op_bool_ret != 0) {
1260 0 0 if (deliver_error(self, mysql_error(self->conn))) return;
1262 0 0 if (deliver_value(self, newSViv(1))) return;
1271 0 0 if (self->op_bool_ret != 0) {
1272 0 0 if (deliver_error(self, mysql_stmt_error(stmt))) return;
1274 0 0 if (deliver_value(self, newSViv(1))) return;
1283 0 0 if (failed) {
1284 0 0 if (deliver_error(self, mysql_error(self->conn))) return;
1286 0 0 if (deliver_value(self, newSViv(1))) return;
1293 0 0 if (!ctx->bind_params) return;
1294 0 0 for (i = 0; i < ctx->bind_param_count; i++) {
1305 0 0 if (self->op_ret != 0) {
1310 0 0 if (status == 0) {
1335 0 0 if (self->op_ret != 0) {
1337 0 0 if (check_destroyed(self)) return;
1343 0 0 if (!self->op_result) {
1345 0 0 if (err && err[0]) {
0 0 if (err && err[0]) {
1347 0 0 if (check_destroyed(self)) return;
1357 0 0 if (check_destroyed(self)) return;
1364 0 0 if (status == 0) {
1373 0 0 MYSQL_FIELD *fields = (self->utf8 && self->op_result)
1374 0 0 ? mysql_fetch_fields(self->op_result) : NULL;
1379 0 0 if (row == NULL) break;
1388 0 0 if (ncols > 0) av_extend(r, ncols - 1);
1389 0 0 for (c = 0; c < ncols; c++) {
1390 0 0 if (row[c] == NULL) {
1394 0 0 if (fields && is_utf8_charset(fields[c].charsetnr))
0 0 if (fields && is_utf8_charset(fields[c].charsetnr))
1413 0 0 PUSHMARK(SP);
1417 0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
1418 0 0 warn("EV::MariaDB: exception in stream callback: %s", SvPV_nolen(ERRSV));
1419 0 0 sv_setpvn(ERRSV, "", 0);
1421 0 0 FREETMPS;
1425 0 0 if (check_destroyed(self)) {
1431 0 0 if (self->stream_cb != NULL) {
1434 0 0 } else if (self->conn == NULL || self->op_result == NULL) {
0 0 } else if (self->conn == NULL || self->op_result == NULL) {
1449 0 0 if (status != 0) {
1462 0 0 int has_error = (err && err[0]);
0 0 int has_error = (err && err[0]);
1463 0 0 if (has_error) COPY_ERROR(errbuf, err);
1472 0 0 if (has_error) {
1478 0 0 if (check_destroyed(self)) return;
1480 0 0 if (self->conn && mysql_more_results(self->conn)) {
0 0 if (self->conn && mysql_more_results(self->conn)) {
1506 0 0 if (check_destroyed(self)) {
1511 0 0 if (cb) {
1518 0 0 PUSHMARK(SP);
1522 0 0 FREETMPS;
1526 0 0 if (check_destroyed(self)) return;
1536 0 0 if (self->op_data_ptr) {
1543 0 0 if (self->op_bool_ret != 0) {
1544 0 0 if (deliver_error(self, mysql_stmt_error(stmt))) return;
1546 0 0 if (deliver_value(self, newSViv(1))) return;
1559 0 0 if (status == 0) {
1568 0 0 if (status == 0) {
1577 0 0 if (status == 0) {
1586 0 0 if (status == 0) {
1595 0 0 if (status == 0) {
1604 0 0 if (status == 0) {
1613 0 0 if (status == 0) {
1622 0 0 if (status == 0) {
1631 0 0 if (status == 0) {
1640 0 0 if (status == 0) {
1649 0 0 if (status == 0) {
1658 0 0 if (status == 0) {
1667 0 0 if (status == 0) {
1676 0 0 if (status == 0) {
1685 0 0 if (status == 0) {
1694 0 0 if (status == 0) {
1703 0 0 if (status == 0) {
1712 0 0 if (status == 0) {
1721 0 0 if (status == 0) {
1730 0 0 if (status == 0) {
1739 0 0 if (status == 0) {
1748 0 0 if (status == 0) {
1766 0 0 if (self == NULL || self->magic != EV_MARIADB_MAGIC) return;
0 0 if (self == NULL || self->magic != EV_MARIADB_MAGIC) return;
1767 0 0 if (NULL == self->conn) return;
1769 0 0 if (revents & EV_READ) events |= MYSQL_WAIT_READ | MYSQL_WAIT_EXCEPT;
1770 0 0 if (revents & EV_WRITE) events |= MYSQL_WAIT_WRITE;
1780 0 0 if (self == NULL || self->magic != EV_MARIADB_MAGIC) return;
0 0 if (self == NULL || self->magic != EV_MARIADB_MAGIC) return;
1781 0 0 if (NULL == self->conn) return;
1790 0 0 if (!s) return NULL;
1798 0 2 if (self->host) { Safefree(self->host); self->host = NULL; }
1799 0 2 if (self->user) { Safefree(self->user); self->user = NULL; }
1800 0 2 if (self->password) { Safefree(self->password); self->password = NULL; }
1801 0 2 if (self->database) { Safefree(self->database); self->database = NULL; }
1802 0 2 if (self->unix_socket) { Safefree(self->unix_socket); self->unix_socket = NULL; }
1806 0 2 if (self->charset) { Safefree(self->charset); self->charset = NULL; }
1807 0 2 if (self->init_command) { Safefree(self->init_command); self->init_command = NULL; }
1808 0 2 if (self->ssl_key) { Safefree(self->ssl_key); self->ssl_key = NULL; }
1809 0 2 if (self->ssl_cert) { Safefree(self->ssl_cert); self->ssl_cert = NULL; }
1810 0 2 if (self->ssl_ca) { Safefree(self->ssl_ca); self->ssl_ca = NULL; }
1811 0 2 if (self->ssl_capath) { Safefree(self->ssl_capath); self->ssl_capath = NULL; }
1812 0 2 if (self->ssl_cipher) { Safefree(self->ssl_cipher); self->ssl_cipher = NULL; }
1819 0 0 if (self->connect_timeout > 0)
1821 0 0 if (self->read_timeout > 0)
1823 0 0 if (self->write_timeout > 0)
1825 0 0 if (self->compress)
1827 0 0 if (self->charset)
1829 0 0 if (self->init_command)
1831 0 0 if (self->ssl_ca || self->ssl_capath || self->ssl_cert || self->ssl_key || self->ssl_cipher)
0 0 if (self->ssl_ca || self->ssl_capath || self->ssl_cert || self->ssl_key || self->ssl_cipher)
0 0 if (self->ssl_ca || self->ssl_capath || self->ssl_cert || self->ssl_key || self->ssl_cipher)
0 0 if (self->ssl_ca || self->ssl_capath || self->ssl_cert || self->ssl_key || self->ssl_cipher)
0 0 if (self->ssl_ca || self->ssl_capath || self->ssl_cert || self->ssl_key || self->ssl_cipher)
1833 0 0 if (self->ssl_verify_server_cert) {
1837 0 0 if (self->multi_statements)
1839 0 0 if (self->found_rows)
1850 0 0 return charsetnr == 33 || charsetnr == 83
1851 0 0 || (charsetnr >= 192 && charsetnr <= 211)
0 0 || (charsetnr >= 192 && charsetnr <= 211)
1852 0 0 || charsetnr == 45 || charsetnr == 46
0 0 || charsetnr == 45 || charsetnr == 46
1853 0 0 || (charsetnr >= 224 && charsetnr <= 247)
0 0 || (charsetnr >= 224 && charsetnr <= 247)
1854 0 0 || charsetnr == 255
1855 0 0 || (charsetnr >= 256 && charsetnr <= 309)
0 0 || (charsetnr >= 256 && charsetnr <= 309)
1856 0 0 || (charsetnr >= 2048 && charsetnr <= 2559);
0 0 || (charsetnr >= 2048 && charsetnr <= 2559);
0 0 || (charsetnr >= 2048 && charsetnr <= 2559);
1861 0 0 if (!conn) return 0;
1863 0 0 return (cs && strncmp(cs, "utf8", 4) == 0);
0 0 return (cs && strncmp(cs, "utf8", 4) == 0);
1870 0 0 if (ncols > 0) av_extend(fnames, ncols - 1);
1871 0 0 for (i = 0; i < ncols; i++) {
1873 0 0 if (utf8_names)
1887 0 0 if ((unsigned long)nparams != expected)
1891 0 0 if (nparams == 0) return;
1899 0 0 for (i = 0; i < nparams; i++) {
1901 0 0 if (svp && SvOK(*svp)) {
0 0 if (svp && SvOK(*svp)) {
1902 0 0 if (SvIOK(*svp)) {
1905 0 0 if (SvIsUV(*svp)) {
1914 0 0 } else if (SvNOK(*svp)) {
1937 0 0 if (mysql_stmt_bind_param(ctx->stmt, bp)) {
1949 0 0 if (NULL == self->conn) {
1962 0 0 if (status == 0) {
1966 0 0 if (self->fd < 0) {
1983 0 15 I_EV_API("EV::MariaDB");
15 0 I_EV_API("EV::MariaDB");
0 15 I_EV_API("EV::MariaDB");
2009 0 2 if (self->magic != EV_MARIADB_MAGIC)
2018 0 2 if (PL_dirty) {
2021 0 0 int is_fork = IS_FORKED(self);
0 0 int is_fork = IS_FORKED(self);
2022 0 0 while (!ngx_queue_empty(&self->send_queue)) {
2029 0 0 while (!ngx_queue_empty(&self->cb_queue)) {
2035 0 0 if (self->op_data_ptr) Safefree(self->op_data_ptr);
2039 0 0 while (ctx) {
2042 0 0 if (!is_fork && ctx->stmt) mysql_stmt_close(ctx->stmt);
0 0 if (!is_fork && ctx->stmt) mysql_stmt_close(ctx->stmt);
2047 0 0 if (!is_fork) {
2048 0 0 if (self->op_result) mysql_free_result(self->op_result);
2049 0 0 if (self->conn) mysql_close(self->conn);
2062 0 2 if (self->op_data_ptr) {
2069 0 2 int is_fork = IS_FORKED(self);
0 0 int is_fork = IS_FORKED(self);
2071 0 2 while (ctx) {
2074 0 0 if (!is_fork && ctx->stmt) mysql_stmt_close(ctx->stmt);
0 0 if (!is_fork && ctx->stmt) mysql_stmt_close(ctx->stmt);
2080 2 0 if (!is_fork && self->op_stmt && !self->op_stmt_ctx) {
0 2 if (!is_fork && self->op_stmt && !self->op_stmt_ctx) {
0 0 if (!is_fork && self->op_stmt && !self->op_stmt_ctx) {
2086 0 2 if (is_fork) {
2090 0 2 if (self->op_result) {
2097 0 2 if (conn) mysql_close(conn);
2104 0 2 if (NULL != self->on_connect) {
2108 2 0 if (NULL != self->on_error) {
2116 2 0 if (self->callback_depth == 0)
2124 0 0 if (NULL != self->conn) {
2125 0 0 croak(self->state == STATE_CONNECTING
2139 0 0 if (unix_socket_sv && SvOK(unix_socket_sv)) {
0 0 if (unix_socket_sv && SvOK(unix_socket_sv)) {
2150 0 0 if (NULL == self->host) {
2156 0 0 if (check_destroyed(self)) return;
2157 0 0 if (self->state != STATE_IDLE) return;
2168 0 0 if (check_destroyed(self)) return;
2196 0 0 if (NULL == self->conn) {
2199 0 0 if (IS_FORKED(self)) {
0 0 if (IS_FORKED(self)) {
2202 0 0 if (self->state >= STATE_STMT_PREPARE) {
2205 0 0 if (!(SvROK(cb) && SvTYPE(SvRV(cb)) == SVt_PVCV)) {
0 0 if (!(SvROK(cb) && SvTYPE(SvRV(cb)) == SVt_PVCV)) {
2212 0 0 if (self->state == STATE_IDLE && self->callback_depth == 0)
0 0 if (self->state == STATE_IDLE && self->callback_depth == 0)
2226 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2229 0 0 if (NULL == stmt) {
2243 0 0 if (status == 0) {
2257 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2260 0 0 CHECK_STMT(ctx);
0 0 CHECK_STMT(ctx);
2262 0 0 if (SvOK(params_ref)) {
2263 0 0 if (!SvROK(params_ref) || SvTYPE(SvRV(params_ref)) != SVt_PVAV)
0 0 if (!SvROK(params_ref) || SvTYPE(SvRV(params_ref)) != SVt_PVAV)
2274 0 0 if (status == 0) {
2287 0 0 if (NULL == self->conn || self->state == STATE_CONNECTING)
0 0 if (NULL == self->conn || self->state == STATE_CONNECTING)
2289 0 0 if (IS_FORKED(self))
0 0 if (IS_FORKED(self))
2291 0 0 if (self->state != STATE_IDLE)
2293 0 0 if (!SvROK(params_ref) || SvTYPE(SvRV(params_ref)) != SVt_PVAV)
0 0 if (!SvROK(params_ref) || SvTYPE(SvRV(params_ref)) != SVt_PVAV)
2297 0 0 CHECK_STMT(ctx);
0 0 CHECK_STMT(ctx);
2308 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2311 0 0 if (ctx->closed) {
2316 0 0 if (deliver_value(self, newSViv(1))) return;
2327 0 0 if (status == 0) {
2341 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2344 0 0 CHECK_STMT(ctx);
0 0 CHECK_STMT(ctx);
2350 0 0 if (status == 0) {
2363 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2369 0 0 if (status == 0) {
2383 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2385 0 0 db = (SvOK(db_sv)) ? SvPV_nolen(db_sv) : NULL;
2388 0 0 if (self->user) Safefree(self->user);
2390 0 0 if (self->password) Safefree(self->password);
2392 0 0 if (db) {
2393 0 0 if (self->database) Safefree(self->database);
2402 0 0 if (status == 0) {
2415 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2418 0 0 if (self->database) Safefree(self->database);
2425 0 0 if (status == 0) {
2438 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2444 0 0 if (status == 0) {
2457 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2460 0 0 if (self->charset) Safefree(self->charset);
2467 0 0 if (status == 0) {
2480 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2486 0 0 if (status == 0) {
2499 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2505 0 0 if (status == 0) {
2518 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2524 0 0 if (status == 0) {
2539 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2547 0 0 if (status == 0) {
2560 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2566 0 0 if (status == 0) {
2582 0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
0 0 CHECK_READY(self, cb);
2585 0 0 CHECK_STMT(ctx);
0 0 CHECK_STMT(ctx);
2588 0 0 Newx(data, data_len > 0 ? data_len : 1, char);
2598 0 0 if (status == 0) {
2609 0 0 if (strcmp(key, "connect_timeout") == 0) {
2611 0 0 } else if (strcmp(key, "read_timeout") == 0) {
2613 0 0 } else if (strcmp(key, "write_timeout") == 0) {
2615 0 0 } else if (strcmp(key, "compress") == 0) {
2617 0 0 } else if (strcmp(key, "multi_statements") == 0) {
2619 0 0 } else if (strcmp(key, "found_rows") == 0) {
2621 0 0 } else if (strcmp(key, "charset") == 0) {
2622 0 0 SET_STR_OPTION(charset);
0 0 SET_STR_OPTION(charset);
2623 0 0 } else if (strcmp(key, "init_command") == 0) {
2624 0 0 SET_STR_OPTION(init_command);
0 0 SET_STR_OPTION(init_command);
2625 0 0 } else if (strcmp(key, "ssl_key") == 0) {
2626 0 0 SET_STR_OPTION(ssl_key);
0 0 SET_STR_OPTION(ssl_key);
2627 0 0 } else if (strcmp(key, "ssl_cert") == 0) {
2628 0 0 SET_STR_OPTION(ssl_cert);
0 0 SET_STR_OPTION(ssl_cert);
2629 0 0 } else if (strcmp(key, "ssl_ca") == 0) {
2630 0 0 SET_STR_OPTION(ssl_ca);
0 0 SET_STR_OPTION(ssl_ca);
2631 0 0 } else if (strcmp(key, "ssl_capath") == 0) {
2632 0 0 SET_STR_OPTION(ssl_capath);
0 0 SET_STR_OPTION(ssl_capath);
2633 0 0 } else if (strcmp(key, "ssl_cipher") == 0) {
2634 0 0 SET_STR_OPTION(ssl_cipher);
0 0 SET_STR_OPTION(ssl_cipher);
2635 0 0 } else if (strcmp(key, "ssl_verify_server_cert") == 0) {
2637 0 0 } else if (strcmp(key, "utf8") == 0) {
2648 0 1 RETVAL = (NULL != self->conn && self->state != STATE_CONNECTING) ? 1 : 0;
0 0 RETVAL = (NULL != self->conn && self->state != STATE_CONNECTING) ? 1 : 0;
0 1 RETVAL = (NULL != self->conn && self->state != STATE_CONNECTING) ? 1 : 0;
2657 0 0 if (NULL != self->conn) {
2659 0 0 RETVAL = (msg && msg[0]) ? newSVpv(msg, 0) : &PL_sv_undef;
0 0 RETVAL = (msg && msg[0]) ? newSVpv(msg, 0) : &PL_sv_undef;
2672 0 0 RETVAL = (NULL != self->conn) ? mysql_errno(self->conn) : 0;
0 0 RETVAL = (NULL != self->conn) ? mysql_errno(self->conn) : 0;
2681 0 0 if (NULL != self->conn) {
2683 0 0 RETVAL = (s && s[0]) ? newSVpv(s, 0) : &PL_sv_undef;
0 0 RETVAL = (s && s[0]) ? newSVpv(s, 0) : &PL_sv_undef;
2696 0 0 if (NULL != self->conn) {
2711 0 0 RETVAL = (NULL != self->conn) ? mysql_warning_count(self->conn) : 0;
0 0 RETVAL = (NULL != self->conn) ? mysql_warning_count(self->conn) : 0;
2720 0 0 if (NULL != self->conn) {
2722 0 0 RETVAL = (i && i[0]) ? newSVpv(i, 0) : &PL_sv_undef;
0 0 RETVAL = (i && i[0]) ? newSVpv(i, 0) : &PL_sv_undef;
2735 0 0 RETVAL = (NULL != self->conn) ? (UV)mysql_get_server_version(self->conn) : 0;
0 0 RETVAL = (NULL != self->conn) ? (UV)mysql_get_server_version(self->conn) : 0;
2744 0 0 if (NULL != self->conn) {
2746 0 0 RETVAL = (info && info[0]) ? newSVpv(info, 0) : &PL_sv_undef;
0 0 RETVAL = (info && info[0]) ? newSVpv(info, 0) : &PL_sv_undef;
2759 0 0 RETVAL = (NULL != self->conn) ? (UV)mysql_thread_id(self->conn) : 0;
0 0 RETVAL = (NULL != self->conn) ? (UV)mysql_thread_id(self->conn) : 0;
2768 0 0 if (NULL != self->conn) {
2770 0 0 RETVAL = (info && info[0]) ? newSVpv(info, 0) : &PL_sv_undef;
0 0 RETVAL = (info && info[0]) ? newSVpv(info, 0) : &PL_sv_undef;
2783 0 0 if (NULL != self->conn) {
2785 0 0 RETVAL = (cs && cs[0]) ? newSVpv(cs, 0) : &PL_sv_undef;
0 0 RETVAL = (cs && cs[0]) ? newSVpv(cs, 0) : &PL_sv_undef;
2798 0 0 RETVAL = (NULL != self->conn) ? (int)mysql_get_socket(self->conn) : -1;
0 0 RETVAL = (NULL != self->conn) ? (int)mysql_get_socket(self->conn) : -1;
2807 0 0 if (NULL != self->conn) {
2809 0 0 RETVAL = (rows == (my_ulonglong)-1) ? &PL_sv_undef : newSVuv((UV)rows);
2826 0 0 if (NULL == self->conn || self->state == STATE_CONNECTING
0 0 if (NULL == self->conn || self->state == STATE_CONNECTING
2827 0 0 || self->state == STATE_CLOSE
2828 0 0 || IS_FORKED(self)) {
0 0 || IS_FORKED(self)) {
2832 0 0 if (SvUTF8(str)) {
2834 0 0 if (!cs || (strncmp(cs, "utf8", 4) != 0)) {
0 0 if (!cs || (strncmp(cs, "utf8", 4) != 0)) {
2835 0 0 warn("EV::MariaDB: escaping a UTF-8 string on a non-utf8 connection (%s) may cause corruption or injection vulnerabilities", cs ? cs : "unknown");
2841 0 0 if (elen == (unsigned long)-1) {
2855 0 0 RETVAL = self->pending_count;
2864 0 0 if (self->state != STATE_IDLE || self->send_count > 0) {
0 0 if (self->state != STATE_IDLE || self->send_count > 0) {
2868 0 0 if (check_destroyed(self)) return;