summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pdo_mysql')
-rw-r--r--ext/pdo_mysql/get_error_codes.php4
-rwxr-xr-xext/pdo_mysql/mysql_driver.c55
-rwxr-xr-xext/pdo_mysql/mysql_statement.c14
-rwxr-xr-xext/pdo_mysql/pdo_mysql.c26
-rwxr-xr-xext/pdo_mysql/php_pdo_mysql.h4
-rwxr-xr-xext/pdo_mysql/php_pdo_mysql_int.h4
-rw-r--r--ext/pdo_mysql/php_pdo_mysql_sqlstate.h774
-rw-r--r--ext/pdo_mysql/tests/mysql_pdo_test.inc11
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql___construct.phpt4
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql___construct_options.phpt2
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_interface.phpt3
11 files changed, 590 insertions, 311 deletions
diff --git a/ext/pdo_mysql/get_error_codes.php b/ext/pdo_mysql/get_error_codes.php
index 2785c93b9..a1ed85016 100644
--- a/ext/pdo_mysql/get_error_codes.php
+++ b/ext/pdo_mysql/get_error_codes.php
@@ -5,7 +5,7 @@
while (!feof(STDIN)) {
$line = fgets(STDIN);
- if (ereg('^(ER_.*),[[:space:]]+"(.*)",[[:space:]]+"(.*)"', $line, $matches)) {
+ if (ereg('^\{[[:space:]]+(ER_.*)[[:space:]]+,[[:space:]]*"(.*)",[[:space:]]*"(.*)"', $line, $matches)) {
$codes[$matches[1]] = $matches[2];
$maxlen = max($maxlen, strlen($matches[1]));
}
@@ -24,4 +24,4 @@
}
-?> \ No newline at end of file
+?>
diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c
index ff161f7f6..88b2ba6ed 100755
--- a/ext/pdo_mysql/mysql_driver.c
+++ b/ext/pdo_mysql/mysql_driver.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_driver.c 310239 2011-04-15 14:24:40Z rrichards $ */
+/* $Id: mysql_driver.c 321634 2012-01-01 13:15:04Z felipe $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -42,7 +42,7 @@
# define pdo_mysql_init(persistent) mysql_init(NULL)
#endif
-#if !HAVE_MYSQL_SQLSTATE && !PDO_USE_MYSQLND
+#if !defined(HAVE_MYSQL_SQLSTATE) && !defined(PDO_USE_MYSQLND)
static const char *pdo_mysql_get_sqlstate(unsigned int my_errno) { /* {{{ */
switch (my_errno) {
/* import auto-generated case: code */
@@ -54,7 +54,7 @@ static const char *pdo_mysql_get_sqlstate(unsigned int my_errno) { /* {{{ */
#endif
/* {{{ _pdo_mysql_error */
-int _pdo_mysql_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *file, int line TSRMLS_DC) /* {{{ */
+int _pdo_mysql_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *file, int line TSRMLS_DC)
{
pdo_mysql_db_handle *H = (pdo_mysql_db_handle *)dbh->driver_data;
pdo_error_type *pdo_err;
@@ -72,7 +72,7 @@ int _pdo_mysql_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *file, int lin
einfo = &H->einfo;
}
-#if HAVE_MYSQL_STMT_PREPARE || PDO_USE_MYSQLND
+#if defined(HAVE_MYSQL_STMT_PREPARE) || defined(PDO_USE_MYSQLND)
if (S && S->stmt) {
einfo->errcode = mysql_stmt_errno(S->stmt);
}
@@ -112,8 +112,8 @@ int _pdo_mysql_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *file, int lin
PDO_DBG_RETURN(0);
}
-#if HAVE_MYSQL_SQLSTATE || PDO_USE_MYSQLND
-# if HAVE_MYSQL_STMT_PREPARE || PDO_USE_MYSQLND
+#if defined(HAVE_MYSQL_SQLSTATE) || defined(PDO_USE_MYSQLND)
+# if defined(HAVE_MYSQL_STMT_PREPARE) || defined(PDO_USE_MYSQLND)
if (S && S->stmt) {
strcpy(*pdo_err, mysql_stmt_sqlstate(S->stmt));
} else
@@ -160,7 +160,7 @@ static int pdo_mysql_fetch_error_func(pdo_dbh_t *dbh, pdo_stmt_t *stmt, zval *in
/* }}} */
/* {{{ mysql_handle_closer */
-static int mysql_handle_closer(pdo_dbh_t *dbh TSRMLS_DC) /* {{{ */
+static int mysql_handle_closer(pdo_dbh_t *dbh TSRMLS_DC)
{
pdo_mysql_db_handle *H = (pdo_mysql_db_handle *)dbh->driver_data;
@@ -187,7 +187,7 @@ static int mysql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
{
pdo_mysql_db_handle *H = (pdo_mysql_db_handle *)dbh->driver_data;
pdo_mysql_stmt *S = ecalloc(1, sizeof(pdo_mysql_stmt));
-#if HAVE_MYSQL_STMT_PREPARE || PDO_USE_MYSQLND
+#if defined(HAVE_MYSQL_STMT_PREPARE) || defined(PDO_USE_MYSQLND)
char *nsql = NULL;
int nsql_len = 0;
int ret;
@@ -206,7 +206,7 @@ static int mysql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
goto end;
}
-#if HAVE_MYSQL_STMT_PREPARE || PDO_USE_MYSQLND
+#if defined(HAVE_MYSQL_STMT_PREPARE) || defined(PDO_USE_MYSQLND)
server_version = mysql_get_server_version(H->server);
if (server_version < 40100) {
goto fallback;
@@ -255,7 +255,7 @@ static int mysql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
if (S->num_params) {
S->params_given = 0;
-#if PDO_USE_MYSQLND
+#ifdef PDO_USE_MYSQLND
S->params = NULL;
#else
S->params = ecalloc(S->num_params, sizeof(MYSQL_BIND));
@@ -296,7 +296,7 @@ static long mysql_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRM
PDO_DBG_RETURN(H->einfo.errcode ? -1 : 0);
} else {
-#if HAVE_MYSQL_NEXT_RESULT || PDO_USE_MYSQLND
+#if defined(HAVE_MYSQL_NEXT_RESULT) || defined(PDO_USE_MYSQLND)
/* MULTI_QUERY support - eat up all unfetched result sets */
MYSQL_RES* result;
while (mysql_more_results(H->server)) {
@@ -324,6 +324,7 @@ static char *pdo_mysql_last_insert_id(pdo_dbh_t *dbh, const char *name, unsigned
*len = strlen(id);
PDO_DBG_RETURN(id);
}
+/* }}} */
/* {{{ mysql_handle_quoter */
static int mysql_handle_quoter(pdo_dbh_t *dbh, const char *unquoted, int unquotedlen, char **quoted, int *quotedlen, enum pdo_param_type paramtype TSRMLS_DC)
@@ -361,6 +362,7 @@ static int mysql_handle_commit(pdo_dbh_t *dbh TSRMLS_DC)
PDO_DBG_RETURN(0 <= mysql_handle_doer(dbh, ZEND_STRL("COMMIT") TSRMLS_CC));
#endif
}
+/* }}} */
/* {{{ mysql_handle_rollback */
static int mysql_handle_rollback(pdo_dbh_t *dbh TSRMLS_DC)
@@ -461,7 +463,7 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value
break;
case PDO_ATTR_SERVER_INFO: {
char *tmp;
-#if PDO_USE_MYSQLND
+#ifdef PDO_USE_MYSQLND
unsigned int tmp_len;
if (mysqlnd_stat(H->server, &tmp, &tmp_len) == PASS) {
@@ -503,7 +505,7 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value
/* }}} */
/* {{{ pdo_mysql_check_liveness */
-static int pdo_mysql_check_liveness(pdo_dbh_t *dbh TSRMLS_DC) /* {{{ */
+static int pdo_mysql_check_liveness(pdo_dbh_t *dbh TSRMLS_DC)
{
pdo_mysql_db_handle *H = (pdo_mysql_db_handle *)dbh->driver_data;
#if MYSQL_VERSION_ID <= 32230
@@ -551,16 +553,15 @@ static struct pdo_dbh_methods mysql_methods = {
pdo_mysql_check_liveness
};
/* }}} */
-#ifdef PDO_USE_MYSQLND
-# ifdef PHP_WIN32
-# define MYSQL_UNIX_ADDR "MySQL"
-# else
-# define MYSQL_UNIX_ADDR PDO_MYSQL_G(default_socket)
-# endif
+
+#ifdef PHP_WIN32
+# define MYSQL_UNIX_ADDR NULL
+#else
+# define MYSQL_UNIX_ADDR PDO_MYSQL_G(default_socket)
#endif
/* {{{ pdo_mysql_handle_factory */
-static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_DC) /* {{{ */
+static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_DC)
{
pdo_mysql_db_handle *H;
int i, ret = 0;
@@ -583,7 +584,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
#endif
;
-#if PDO_USE_MYSQLND
+#ifdef PDO_USE_MYSQLND
int dbname_len = 0;
int password_len = 0;
#endif
@@ -625,7 +626,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
char *default_file = NULL, *default_group = NULL;
long compress = 0;
#endif
-#if HAVE_MYSQL_STMT_PREPARE || PDO_USE_MYSLQND
+#if defined(HAVE_MYSQL_STMT_PREPARE) || defined(PDO_USE_MYSQLND)
char *ssl_key = NULL, *ssl_cert = NULL, *ssl_ca = NULL, *ssl_capath = NULL, *ssl_cipher = NULL;
#endif
H->buffered = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 1 TSRMLS_CC);
@@ -660,7 +661,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
{
local_infile = 0;
}
-#ifdef MYSQL_OPT_LOCAL_INFILE
+#if defined(MYSQL_OPT_LOCAL_INFILE) || defined(PDO_USE_MYSQLND)
if (mysql_options(H->server, MYSQL_OPT_LOCAL_INFILE, (const char *)&local_infile)) {
pdo_mysql_error(dbh);
goto cleanup;
@@ -668,7 +669,9 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
#endif
#ifdef MYSQL_OPT_RECONNECT
/* since 5.0.3, the default for this option is 0 if not specified.
- * we want the old behaviour */
+ * we want the old behaviour
+ * mysqlnd doesn't support reconnect, thus we don't have "|| defined(PDO_USE_MYSQLND)"
+ */
{
long reconnect = 1;
mysql_options(H->server, MYSQL_OPT_RECONNECT, (const char*)&reconnect);
@@ -712,7 +715,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
}
}
#endif
-#if HAVE_MYSQL_STMT_PREPARE || PDO_USE_MYSLQND
+#if defined(HAVE_MYSQL_STMT_PREPARE) || defined(PDO_USE_MYSQLND)
ssl_key = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_SSL_KEY, NULL TSRMLS_CC);
ssl_cert = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_SSL_CERT, NULL TSRMLS_CC);
ssl_ca = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_SSL_CA, NULL TSRMLS_CC);
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c
index c2a593f1d..4c8c3559a 100755
--- a/ext/pdo_mysql/mysql_statement.c
+++ b/ext/pdo_mysql/mysql_statement.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_statement.c 311088 2011-05-16 15:37:39Z johannes $ */
+/* $Id: mysql_statement.c 321634 2012-01-01 13:15:04Z felipe $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -335,7 +335,7 @@ static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC) /* {{{ */
PDO_DBG_RETURN(1);
}
-/* {{{ */
+/* }}} */
static int pdo_mysql_stmt_next_rowset(pdo_stmt_t *stmt TSRMLS_DC) /* {{{ */
{
@@ -461,8 +461,7 @@ static const char * const pdo_param_event_names[] =
};
-static int pdo_mysql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *param,
- enum pdo_param_event event_type TSRMLS_DC) /* {{{ */
+static int pdo_mysql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *param, enum pdo_param_event event_type TSRMLS_DC) /* {{{ */
{
#ifndef PDO_USE_MYSQLND
PDO_MYSQL_PARAM_BIND *b;
@@ -604,8 +603,7 @@ static int pdo_mysql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_da
}
/* }}} */
-static int pdo_mysql_stmt_fetch(pdo_stmt_t *stmt,
- enum pdo_fetch_orientation ori, long offset TSRMLS_DC) /* {{{ */
+static int pdo_mysql_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori, long offset TSRMLS_DC) /* {{{ */
{
pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data;
#if PDO_USE_MYSQLND
@@ -777,7 +775,7 @@ static int pdo_mysql_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, unsig
PDO_DBG_RETURN(1);
} /* }}} */
-static char *type_to_name_native(int type) /* }}} */
+static char *type_to_name_native(int type) /* {{{ */
{
#define PDO_MYSQL_NATIVE_TYPE_NAME(x) case FIELD_TYPE_##x: return #x;
diff --git a/ext/pdo_mysql/pdo_mysql.c b/ext/pdo_mysql/pdo_mysql.c
index 85829e208..aa122efc9 100755
--- a/ext/pdo_mysql/pdo_mysql.c
+++ b/ext/pdo_mysql/pdo_mysql.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_mysql.c 314376 2011-08-06 14:47:44Z felipe $ */
+/* $Id: pdo_mysql.c 321634 2012-01-01 13:15:04Z felipe $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -37,12 +37,22 @@ ZEND_GET_MODULE(pdo_mysql)
ZEND_DECLARE_MODULE_GLOBALS(pdo_mysql);
-#ifndef PHP_WIN32
-# ifndef PDO_MYSQL_UNIX_ADDR
-# ifdef PHP_MYSQL_UNIX_SOCK_ADDR
-# define PDO_MYSQL_UNIX_ADDR PHP_MYSQL_UNIX_SOCK_ADDR
-# else
+/*
+ The default socket location is sometimes defined by configure.
+ With libmysql `mysql_config --socket` will fill PDO_MYSQL_UNIX_ADDR
+ and the user can use --with-mysql-sock=SOCKET which will fill
+ PDO_MYSQL_UNIX_ADDR. If both aren't set we're using mysqlnd and use
+ /tmp/mysql.sock as default on *nix and NULL for Windows (default
+ named pipe name is set in mysqlnd).
+*/
+#ifndef PDO_MYSQL_UNIX_ADDR
+# ifdef PHP_MYSQL_UNIX_SOCK_ADDR
+# define PDO_MYSQL_UNIX_ADDR PHP_MYSQL_UNIX_SOCK_ADDR
+# else
+# if !PHP_WIN32
# define PDO_MYSQL_UNIX_ADDR "/tmp/mysql.sock"
+# else
+# define PDO_MYSQL_UNIX_ADDR NULL
# endif
# endif
#endif
@@ -112,7 +122,7 @@ static PHP_MINFO_FUNCTION(pdo_mysql)
php_info_print_table_end();
-#ifdef PDO_USE_MYSQLND
+#ifndef PHP_WIN32
DISPLAY_INI_ENTRIES();
#endif
}
diff --git a/ext/pdo_mysql/php_pdo_mysql.h b/ext/pdo_mysql/php_pdo_mysql.h
index 8319b0774..1b55273f7 100755
--- a/ext/pdo_mysql/php_pdo_mysql.h
+++ b/ext/pdo_mysql/php_pdo_mysql.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_pdo_mysql.h 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: php_pdo_mysql.h 321634 2012-01-01 13:15:04Z felipe $ */
#ifndef PHP_PDO_MYSQL_H
#define PHP_PDO_MYSQL_H
diff --git a/ext/pdo_mysql/php_pdo_mysql_int.h b/ext/pdo_mysql/php_pdo_mysql_int.h
index 7a3c89995..1eae578a0 100755
--- a/ext/pdo_mysql/php_pdo_mysql_int.h
+++ b/ext/pdo_mysql/php_pdo_mysql_int.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_pdo_mysql_int.h 310850 2011-05-09 11:34:17Z johannes $ */
+/* $Id: php_pdo_mysql_int.h 321634 2012-01-01 13:15:04Z felipe $ */
#ifndef PHP_PDO_MYSQL_INT_H
#define PHP_PDO_MYSQL_INT_H
diff --git a/ext/pdo_mysql/php_pdo_mysql_sqlstate.h b/ext/pdo_mysql/php_pdo_mysql_sqlstate.h
index 97724b72e..70fc95ef7 100644
--- a/ext/pdo_mysql/php_pdo_mysql_sqlstate.h
+++ b/ext/pdo_mysql/php_pdo_mysql_sqlstate.h
@@ -1,388 +1,646 @@
/* DO NOT EDIT THIS FILE!!! It is auto generated by get_error_codes.php */
-#ifdef ER_DUP_KEY
- case ER_DUP_KEY : return "23000";
+#ifdef ER_DUP_KEY
+ case ER_DUP_KEY : return "23000";
#endif
-#ifdef ER_OUTOFMEMORY
- case ER_OUTOFMEMORY : return "HY001";
+#ifdef ER_OUTOFMEMORY
+ case ER_OUTOFMEMORY : return "HY001";
#endif
-#ifdef ER_OUT_OF_SORTMEMORY
- case ER_OUT_OF_SORTMEMORY : return "HY001";
+#ifdef ER_OUT_OF_SORTMEMORY
+ case ER_OUT_OF_SORTMEMORY : return "HY001";
#endif
-#ifdef ER_CON_COUNT_ERROR
- case ER_CON_COUNT_ERROR : return "08004";
+#ifdef ER_CON_COUNT_ERROR
+ case ER_CON_COUNT_ERROR : return "08004";
#endif
-#ifdef ER_BAD_HOST_ERROR
- case ER_BAD_HOST_ERROR : return "08S01";
+#ifdef ER_BAD_HOST_ERROR
+ case ER_BAD_HOST_ERROR : return "08S01";
#endif
-#ifdef ER_HANDSHAKE_ERROR
- case ER_HANDSHAKE_ERROR : return "08S01";
+#ifdef ER_HANDSHAKE_ERROR
+ case ER_HANDSHAKE_ERROR : return "08S01";
#endif
-#ifdef ER_DBACCESS_DENIED_ERROR
- case ER_DBACCESS_DENIED_ERROR : return "42000";
+#ifdef ER_DBACCESS_DENIED_ERROR
+ case ER_DBACCESS_DENIED_ERROR : return "42000";
#endif
-#ifdef ER_ACCESS_DENIED_ERROR
- case ER_ACCESS_DENIED_ERROR : return "28000";
+#ifdef ER_ACCESS_DENIED_ERROR
+ case ER_ACCESS_DENIED_ERROR : return "28000";
#endif
-#ifdef ER_NO_DB_ERROR
- case ER_NO_DB_ERROR : return "3D000";
+#ifdef ER_NO_DB_ERROR
+ case ER_NO_DB_ERROR : return "3D000";
#endif
-#ifdef ER_UNKNOWN_COM_ERROR
- case ER_UNKNOWN_COM_ERROR : return "08S01";
+#ifdef ER_UNKNOWN_COM_ERROR
+ case ER_UNKNOWN_COM_ERROR : return "08S01";
#endif
-#ifdef ER_BAD_NULL_ERROR
- case ER_BAD_NULL_ERROR : return "23000";
+#ifdef ER_BAD_NULL_ERROR
+ case ER_BAD_NULL_ERROR : return "23000";
#endif
-#ifdef ER_BAD_DB_ERROR
- case ER_BAD_DB_ERROR : return "42000";
+#ifdef ER_BAD_DB_ERROR
+ case ER_BAD_DB_ERROR : return "42000";
#endif
-#ifdef ER_TABLE_EXISTS_ERROR
- case ER_TABLE_EXISTS_ERROR : return "42S01";
+#ifdef ER_TABLE_EXISTS_ERROR
+ case ER_TABLE_EXISTS_ERROR : return "42S01";
#endif
-#ifdef ER_BAD_TABLE_ERROR
- case ER_BAD_TABLE_ERROR : return "42S02";
+#ifdef ER_BAD_TABLE_ERROR
+ case ER_BAD_TABLE_ERROR : return "42S02";
#endif
-#ifdef ER_NON_UNIQ_ERROR
- case ER_NON_UNIQ_ERROR : return "23000";
+#ifdef ER_NON_UNIQ_ERROR
+ case ER_NON_UNIQ_ERROR : return "23000";
#endif
-#ifdef ER_SERVER_SHUTDOWN
- case ER_SERVER_SHUTDOWN : return "08S01";
+#ifdef ER_SERVER_SHUTDOWN
+ case ER_SERVER_SHUTDOWN : return "08S01";
#endif
-#ifdef ER_BAD_FIELD_ERROR
- case ER_BAD_FIELD_ERROR : return "42S22";
+#ifdef ER_BAD_FIELD_ERROR
+ case ER_BAD_FIELD_ERROR : return "42S22";
#endif
-#ifdef ER_WRONG_FIELD_WITH_GROUP
- case ER_WRONG_FIELD_WITH_GROUP : return "42000";
+#ifdef ER_WRONG_FIELD_WITH_GROUP
+ case ER_WRONG_FIELD_WITH_GROUP : return "42000";
#endif
-#ifdef ER_WRONG_GROUP_FIELD
- case ER_WRONG_GROUP_FIELD : return "42000";
+#ifdef ER_WRONG_GROUP_FIELD
+ case ER_WRONG_GROUP_FIELD : return "42000";
#endif
-#ifdef ER_WRONG_SUM_SELECT
- case ER_WRONG_SUM_SELECT : return "42000";
+#ifdef ER_WRONG_SUM_SELECT
+ case ER_WRONG_SUM_SELECT : return "42000";
#endif
-#ifdef ER_WRONG_VALUE_COUNT
- case ER_WRONG_VALUE_COUNT : return "21S01";
+#ifdef ER_WRONG_VALUE_COUNT
+ case ER_WRONG_VALUE_COUNT : return "21S01";
#endif
-#ifdef ER_TOO_LONG_IDENT
- case ER_TOO_LONG_IDENT : return "42000";
+#ifdef ER_TOO_LONG_IDENT
+ case ER_TOO_LONG_IDENT : return "42000";
#endif
-#ifdef ER_DUP_FIELDNAME
- case ER_DUP_FIELDNAME : return "42S21";
+#ifdef ER_DUP_FIELDNAME
+ case ER_DUP_FIELDNAME : return "42S21";
#endif
-#ifdef ER_DUP_KEYNAME
- case ER_DUP_KEYNAME : return "42000";
+#ifdef ER_DUP_KEYNAME
+ case ER_DUP_KEYNAME : return "42000";
#endif
-#ifdef ER_DUP_ENTRY
- case ER_DUP_ENTRY : return "23000";
+#ifdef ER_DUP_ENTRY
+ case ER_DUP_ENTRY : return "23000";
#endif
-#ifdef ER_WRONG_FIELD_SPEC
- case ER_WRONG_FIELD_SPEC : return "42000";
+#ifdef ER_WRONG_FIELD_SPEC
+ case ER_WRONG_FIELD_SPEC : return "42000";
#endif
-#ifdef ER_PARSE_ERROR
- case ER_PARSE_ERROR : return "42000";
+#ifdef ER_PARSE_ERROR
+ case ER_PARSE_ERROR : return "42000";
#endif
-#ifdef ER_NONUNIQ_TABLE
- case ER_NONUNIQ_TABLE : return "42000";
+#ifdef ER_EMPTY_QUERY
+ case ER_EMPTY_QUERY : return "42000";
#endif
-#ifdef ER_INVALID_DEFAULT
- case ER_INVALID_DEFAULT : return "42000";
+#ifdef ER_NONUNIQ_TABLE
+ case ER_NONUNIQ_TABLE : return "42000";
#endif
-#ifdef ER_MULTIPLE_PRI_KEY
- case ER_MULTIPLE_PRI_KEY : return "42000";
+#ifdef ER_INVALID_DEFAULT
+ case ER_INVALID_DEFAULT : return "42000";
#endif
-#ifdef ER_TOO_MANY_KEYS
- case ER_TOO_MANY_KEYS : return "42000";
+#ifdef ER_MULTIPLE_PRI_KEY
+ case ER_MULTIPLE_PRI_KEY : return "42000";
#endif
-#ifdef ER_TOO_MANY_KEY_PARTS
- case ER_TOO_MANY_KEY_PARTS : return "42000";
+#ifdef ER_TOO_MANY_KEYS
+ case ER_TOO_MANY_KEYS : return "42000";
#endif
-#ifdef ER_TOO_LONG_KEY
- case ER_TOO_LONG_KEY : return "42000";
+#ifdef ER_TOO_MANY_KEY_PARTS
+ case ER_TOO_MANY_KEY_PARTS : return "42000";
#endif
-#ifdef ER_KEY_COLUMN_DOES_NOT_EXITS
- case ER_KEY_COLUMN_DOES_NOT_EXITS : return "42000";
+#ifdef ER_TOO_LONG_KEY
+ case ER_TOO_LONG_KEY : return "42000";
#endif
-#ifdef ER_BLOB_USED_AS_KEY
- case ER_BLOB_USED_AS_KEY : return "42000";
+#ifdef ER_KEY_COLUMN_DOES_NOT_EXITS
+ case ER_KEY_COLUMN_DOES_NOT_EXITS : return "42000";
#endif
-#ifdef ER_TOO_BIG_FIELDLENGTH
- case ER_TOO_BIG_FIELDLENGTH : return "42000";
+#ifdef ER_BLOB_USED_AS_KEY
+ case ER_BLOB_USED_AS_KEY : return "42000";
#endif
-#ifdef ER_WRONG_AUTO_KEY
- case ER_WRONG_AUTO_KEY : return "42000";
+#ifdef ER_TOO_BIG_FIELDLENGTH
+ case ER_TOO_BIG_FIELDLENGTH : return "42000";
#endif
-#ifdef ER_FORCING_CLOSE
- case ER_FORCING_CLOSE : return "08S01";
+#ifdef ER_WRONG_AUTO_KEY
+ case ER_WRONG_AUTO_KEY : return "42000";
#endif
-#ifdef ER_IPSOCK_ERROR
- case ER_IPSOCK_ERROR : return "08S01";
+#ifdef ER_FORCING_CLOSE
+ case ER_FORCING_CLOSE : return "08S01";
#endif
-#ifdef ER_NO_SUCH_INDEX
- case ER_NO_SUCH_INDEX : return "42S12";
+#ifdef ER_IPSOCK_ERROR
+ case ER_IPSOCK_ERROR : return "08S01";
#endif
-#ifdef ER_WRONG_FIELD_TERMINATORS
- case ER_WRONG_FIELD_TERMINATORS : return "42000";
+#ifdef ER_NO_SUCH_INDEX
+ case ER_NO_SUCH_INDEX : return "42S12";
#endif
-#ifdef ER_BLOBS_AND_NO_TERMINATED
- case ER_BLOBS_AND_NO_TERMINATED : return "42000";
+#ifdef ER_WRONG_FIELD_TERMINATORS
+ case ER_WRONG_FIELD_TERMINATORS : return "42000";
#endif
-#ifdef ER_CANT_REMOVE_ALL_FIELDS
- case ER_CANT_REMOVE_ALL_FIELDS : return "42000";
+#ifdef ER_BLOBS_AND_NO_TERMINATED
+ case ER_BLOBS_AND_NO_TERMINATED : return "42000";
#endif
-#ifdef ER_CANT_DROP_FIELD_OR_KEY
- case ER_CANT_DROP_FIELD_OR_KEY : return "42000";
+#ifdef ER_CANT_REMOVE_ALL_FIELDS
+ case ER_CANT_REMOVE_ALL_FIELDS : return "42000";
#endif
-#ifdef ER_BLOB_CANT_HAVE_DEFAULT
- case ER_BLOB_CANT_HAVE_DEFAULT : return "42000";
+#ifdef ER_CANT_DROP_FIELD_OR_KEY
+ case ER_CANT_DROP_FIELD_OR_KEY : return "42000";
#endif
-#ifdef ER_WRONG_DB_NAME
- case ER_WRONG_DB_NAME : return "42000";
+#ifdef ER_BLOB_CANT_HAVE_DEFAULT
+ case ER_BLOB_CANT_HAVE_DEFAULT : return "42000";
#endif
-#ifdef ER_WRONG_TABLE_NAME
- case ER_WRONG_TABLE_NAME : return "42000";
+#ifdef ER_WRONG_DB_NAME
+ case ER_WRONG_DB_NAME : return "42000";
#endif
-#ifdef ER_TOO_BIG_SELECT
- case ER_TOO_BIG_SELECT : return "42000";
+#ifdef ER_WRONG_TABLE_NAME
+ case ER_WRONG_TABLE_NAME : return "42000";
#endif
-#ifdef ER_UNKNOWN_PROCEDURE
- case ER_UNKNOWN_PROCEDURE : return "42000";
+#ifdef ER_TOO_BIG_SELECT
+ case ER_TOO_BIG_SELECT : return "42000";
#endif
-#ifdef ER_WRONG_PARAMCOUNT_TO_PROCEDURE
- case ER_WRONG_PARAMCOUNT_TO_PROCEDURE : return "42000";
+#ifdef ER_UNKNOWN_PROCEDURE
+ case ER_UNKNOWN_PROCEDURE : return "42000";
#endif
-#ifdef ER_UNKNOWN_TABLE
- case ER_UNKNOWN_TABLE : return "42S02";
+#ifdef ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+ case ER_WRONG_PARAMCOUNT_TO_PROCEDURE : return "42000";
#endif
-#ifdef ER_FIELD_SPECIFIED_TWICE
- case ER_FIELD_SPECIFIED_TWICE : return "42000";
+#ifdef ER_UNKNOWN_TABLE
+ case ER_UNKNOWN_TABLE : return "42S02";
#endif
-#ifdef ER_UNSUPPORTED_EXTENSION
- case ER_UNSUPPORTED_EXTENSION : return "42000";
+#ifdef ER_FIELD_SPECIFIED_TWICE
+ case ER_FIELD_SPECIFIED_TWICE : return "42000";
#endif
-#ifdef ER_TABLE_MUST_HAVE_COLUMNS
- case ER_TABLE_MUST_HAVE_COLUMNS : return "42000";
+#ifdef ER_UNSUPPORTED_EXTENSION
+ case ER_UNSUPPORTED_EXTENSION : return "42000";
#endif
-#ifdef ER_UNKNOWN_CHARACTER_SET
- case ER_UNKNOWN_CHARACTER_SET : return "42000";
+#ifdef ER_TABLE_MUST_HAVE_COLUMNS
+ case ER_TABLE_MUST_HAVE_COLUMNS : return "42000";
#endif
-#ifdef ER_TOO_BIG_ROWSIZE
- case ER_TOO_BIG_ROWSIZE : return "42000";
+#ifdef ER_UNKNOWN_CHARACTER_SET
+ case ER_UNKNOWN_CHARACTER_SET : return "42000";
#endif
-#ifdef ER_WRONG_OUTER_JOIN
- case ER_WRONG_OUTER_JOIN : return "42000";
+#ifdef ER_TOO_BIG_ROWSIZE
+ case ER_TOO_BIG_ROWSIZE : return "42000";
#endif
-#ifdef ER_NULL_COLUMN_IN_INDEX
- case ER_NULL_COLUMN_IN_INDEX : return "42000";
+#ifdef ER_WRONG_OUTER_JOIN
+ case ER_WRONG_OUTER_JOIN : return "42000";
#endif
-#ifdef ER_PASSWORD_ANONYMOUS_USER
- case ER_PASSWORD_ANONYMOUS_USER : return "42000";
+#ifdef ER_NULL_COLUMN_IN_INDEX
+ case ER_NULL_COLUMN_IN_INDEX : return "42000";
#endif
-#ifdef ER_PASSWORD_NOT_ALLOWED
- case ER_PASSWORD_NOT_ALLOWED : return "42000";
+#ifdef ER_PASSWORD_ANONYMOUS_USER
+ case ER_PASSWORD_ANONYMOUS_USER : return "42000";
#endif
-#ifdef ER_PASSWORD_NO_MATCH
- case ER_PASSWORD_NO_MATCH : return "42000";
+#ifdef ER_PASSWORD_NOT_ALLOWED
+ case ER_PASSWORD_NOT_ALLOWED : return "42000";
#endif
-#ifdef ER_WRONG_VALUE_COUNT_ON_ROW
- case ER_WRONG_VALUE_COUNT_ON_ROW : return "21S01";
+#ifdef ER_PASSWORD_NO_MATCH
+ case ER_PASSWORD_NO_MATCH : return "42000";
#endif
-#ifdef ER_INVALID_USE_OF_NULL
- case ER_INVALID_USE_OF_NULL : return "42000";
+#ifdef ER_WRONG_VALUE_COUNT_ON_ROW
+ case ER_WRONG_VALUE_COUNT_ON_ROW : return "21S01";
#endif
-#ifdef ER_REGEXP_ERROR
- case ER_REGEXP_ERROR : return "42000";
+#ifdef ER_INVALID_USE_OF_NULL
+ case ER_INVALID_USE_OF_NULL : return "22004";
#endif
-#ifdef ER_NONEXISTING_GRANT
- case ER_NONEXISTING_GRANT : return "42000";
+#ifdef ER_REGEXP_ERROR
+ case ER_REGEXP_ERROR : return "42000";
#endif
-#ifdef ER_TABLEACCESS_DENIED_ERROR
- case ER_TABLEACCESS_DENIED_ERROR : return "42000";
+#ifdef ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+ case ER_MIX_OF_GROUP_FUNC_AND_FIELDS : return "42000";
#endif
-#ifdef ER_COLUMNACCESS_DENIED_ERROR
- case ER_COLUMNACCESS_DENIED_ERROR : return "42000";
+#ifdef ER_NONEXISTING_GRANT
+ case ER_NONEXISTING_GRANT : return "42000";
#endif
-#ifdef ER_ILLEGAL_GRANT_FOR_TABLE
- case ER_ILLEGAL_GRANT_FOR_TABLE : return "42000";
+#ifdef ER_TABLEACCESS_DENIED_ERROR
+ case ER_TABLEACCESS_DENIED_ERROR : return "42000";
#endif
-#ifdef ER_GRANT_WRONG_HOST_OR_USER
- case ER_GRANT_WRONG_HOST_OR_USER : return "42000";
+#ifdef ER_COLUMNACCESS_DENIED_ERROR
+ case ER_COLUMNACCESS_DENIED_ERROR : return "42000";
#endif
-#ifdef ER_NO_SUCH_TABLE
- case ER_NO_SUCH_TABLE : return "42S02";
+#ifdef ER_ILLEGAL_GRANT_FOR_TABLE
+ case ER_ILLEGAL_GRANT_FOR_TABLE : return "42000";
#endif
-#ifdef ER_NONEXISTING_TABLE_GRANT
- case ER_NONEXISTING_TABLE_GRANT : return "42000";
+#ifdef ER_GRANT_WRONG_HOST_OR_USER
+ case ER_GRANT_WRONG_HOST_OR_USER : return "42000";
#endif
-#ifdef ER_NOT_ALLOWED_COMMAND
- case ER_NOT_ALLOWED_COMMAND : return "42000";
+#ifdef ER_NO_SUCH_TABLE
+ case ER_NO_SUCH_TABLE : return "42S02";
#endif
-#ifdef ER_SYNTAX_ERROR
- case ER_SYNTAX_ERROR : return "42000";
+#ifdef ER_NONEXISTING_TABLE_GRANT
+ case ER_NONEXISTING_TABLE_GRANT : return "42000";
#endif
-#ifdef ER_ABORTING_CONNECTION
- case ER_ABORTING_CONNECTION : return "08S01";
+#ifdef ER_NOT_ALLOWED_COMMAND
+ case ER_NOT_ALLOWED_COMMAND : return "42000";
#endif
-#ifdef ER_NET_PACKET_TOO_LARGE
- case ER_NET_PACKET_TOO_LARGE : return "08S01";
+#ifdef ER_SYNTAX_ERROR
+ case ER_SYNTAX_ERROR : return "42000";
#endif
-#ifdef ER_NET_READ_ERROR_FROM_PIPE
- case ER_NET_READ_ERROR_FROM_PIPE : return "08S01";
+#ifdef ER_ABORTING_CONNECTION
+ case ER_ABORTING_CONNECTION : return "08S01";
#endif
-#ifdef ER_NET_FCNTL_ERROR
- case ER_NET_FCNTL_ERROR : return "08S01";
+#ifdef ER_NET_PACKET_TOO_LARGE
+ case ER_NET_PACKET_TOO_LARGE : return "08S01";
#endif
-#ifdef ER_NET_PACKETS_OUT_OF_ORDER
- case ER_NET_PACKETS_OUT_OF_ORDER : return "08S01";
+#ifdef ER_NET_READ_ERROR_FROM_PIPE
+ case ER_NET_READ_ERROR_FROM_PIPE : return "08S01";
#endif
-#ifdef ER_NET_UNCOMPRESS_ERROR
- case ER_NET_UNCOMPRESS_ERROR : return "08S01";
+#ifdef ER_NET_FCNTL_ERROR
+ case ER_NET_FCNTL_ERROR : return "08S01";
#endif
-#ifdef ER_NET_READ_ERROR
- case ER_NET_READ_ERROR : return "08S01";
+#ifdef ER_NET_PACKETS_OUT_OF_ORDER
+ case ER_NET_PACKETS_OUT_OF_ORDER : return "08S01";
#endif
-#ifdef ER_NET_READ_INTERRUPTED
- case ER_NET_READ_INTERRUPTED : return "08S01";
+#ifdef ER_NET_UNCOMPRESS_ERROR
+ case ER_NET_UNCOMPRESS_ERROR : return "08S01";
#endif
-#ifdef ER_NET_ERROR_ON_WRITE
- case ER_NET_ERROR_ON_WRITE : return "08S01";
+#ifdef ER_NET_READ_ERROR
+ case ER_NET_READ_ERROR : return "08S01";
#endif
-#ifdef ER_NET_WRITE_INTERRUPTED
- case ER_NET_WRITE_INTERRUPTED : return "08S01";
+#ifdef ER_NET_READ_INTERRUPTED
+ case ER_NET_READ_INTERRUPTED : return "08S01";
#endif
-#ifdef ER_TOO_LONG_STRING
- case ER_TOO_LONG_STRING : return "42000";
+#ifdef ER_NET_ERROR_ON_WRITE
+ case ER_NET_ERROR_ON_WRITE : return "08S01";
#endif
-#ifdef ER_TABLE_CANT_HANDLE_BLOB
- case ER_TABLE_CANT_HANDLE_BLOB : return "42000";
+#ifdef ER_NET_WRITE_INTERRUPTED
+ case ER_NET_WRITE_INTERRUPTED : return "08S01";
#endif
-#ifdef ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
- case ER_TABLE_CANT_HANDLE_AUTO_INCREMENT : return "42000";
+#ifdef ER_TOO_LONG_STRING
+ case ER_TOO_LONG_STRING : return "42000";
#endif
-#ifdef ER_WRONG_COLUMN_NAME
- case ER_WRONG_COLUMN_NAME : return "42000";
+#ifdef ER_TABLE_CANT_HANDLE_BLOB
+ case ER_TABLE_CANT_HANDLE_BLOB : return "42000";
#endif
-#ifdef ER_WRONG_KEY_COLUMN
- case ER_WRONG_KEY_COLUMN : return "42000";
+#ifdef ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+ case ER_TABLE_CANT_HANDLE_AUTO_INCREMENT : return "42000";
#endif
-#ifdef ER_DUP_UNIQUE
- case ER_DUP_UNIQUE : return "23000";
+#ifdef ER_WRONG_COLUMN_NAME
+ case ER_WRONG_COLUMN_NAME : return "42000";
#endif
-#ifdef ER_BLOB_KEY_WITHOUT_LENGTH
- case ER_BLOB_KEY_WITHOUT_LENGTH : return "42000";
+#ifdef ER_WRONG_KEY_COLUMN
+ case ER_WRONG_KEY_COLUMN : return "42000";
#endif
-#ifdef ER_PRIMARY_CANT_HAVE_NULL
- case ER_PRIMARY_CANT_HAVE_NULL : return "42000";
+#ifdef ER_DUP_UNIQUE
+ case ER_DUP_UNIQUE : return "23000";
#endif
-#ifdef ER_TOO_MANY_ROWS
- case ER_TOO_MANY_ROWS : return "42000";
+#ifdef ER_BLOB_KEY_WITHOUT_LENGTH
+ case ER_BLOB_KEY_WITHOUT_LENGTH : return "42000";
#endif
-#ifdef ER_REQUIRES_PRIMARY_KEY
- case ER_REQUIRES_PRIMARY_KEY : return "42000";
+#ifdef ER_PRIMARY_CANT_HAVE_NULL
+ case ER_PRIMARY_CANT_HAVE_NULL : return "42000";
#endif
-#ifdef ER_CHECK_NO_SUCH_TABLE
- case ER_CHECK_NO_SUCH_TABLE : return "42000";
+#ifdef ER_TOO_MANY_ROWS
+ case ER_TOO_MANY_ROWS : return "42000";
#endif
-#ifdef ER_CHECK_NOT_IMPLEMENTED
- case ER_CHECK_NOT_IMPLEMENTED : return "42000";
+#ifdef ER_REQUIRES_PRIMARY_KEY
+ case ER_REQUIRES_PRIMARY_KEY : return "42000";
#endif
-#ifdef ER_CANT_DO_THIS_DURING_AN_TRANSACTION
- case ER_CANT_DO_THIS_DURING_AN_TRANSACTION: return "25000";
+#ifdef ER_KEY_DOES_NOT_EXITS
+ case ER_KEY_DOES_NOT_EXITS : return "42000";
#endif
-#ifdef ER_NEW_ABORTING_CONNECTION
- case ER_NEW_ABORTING_CONNECTION : return "08S01";
+#ifdef ER_CHECK_NO_SUCH_TABLE
+ case ER_CHECK_NO_SUCH_TABLE : return "42000";
#endif
-#ifdef ER_MASTER_NET_READ
- case ER_MASTER_NET_READ : return "08S01";
+#ifdef ER_CHECK_NOT_IMPLEMENTED
+ case ER_CHECK_NOT_IMPLEMENTED : return "42000";
#endif
-#ifdef ER_MASTER_NET_WRITE
- case ER_MASTER_NET_WRITE : return "08S01";
+#ifdef ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+ case ER_CANT_DO_THIS_DURING_AN_TRANSACTION : return "25000";
#endif
-#ifdef ER_TOO_MANY_USER_CONNECTIONS
- case ER_TOO_MANY_USER_CONNECTIONS : return "42000";
+#ifdef ER_NEW_ABORTING_CONNECTION
+ case ER_NEW_ABORTING_CONNECTION : return "08S01";
#endif
-#ifdef ER_READ_ONLY_TRANSACTION
- case ER_READ_ONLY_TRANSACTION : return "25000";
+#ifdef ER_MASTER_NET_READ
+ case ER_MASTER_NET_READ : return "08S01";
#endif
-#ifdef ER_LOCK_DEADLOCK
- case ER_LOCK_DEADLOCK : return "40001";
+#ifdef ER_MASTER_NET_WRITE
+ case ER_MASTER_NET_WRITE : return "08S01";
#endif
-#ifdef ER_NO_REFERENCED_ROW
- case ER_NO_REFERENCED_ROW : return "23000";
+#ifdef ER_TOO_MANY_USER_CONNECTIONS
+ case ER_TOO_MANY_USER_CONNECTIONS : return "42000";
#endif
-#ifdef ER_ROW_IS_REFERENCED
- case ER_ROW_IS_REFERENCED : return "23000";
+#ifdef ER_READ_ONLY_TRANSACTION
+ case ER_READ_ONLY_TRANSACTION : return "25000";
#endif
-#ifdef ER_CONNECT_TO_MASTER
- case ER_CONNECT_TO_MASTER : return "08S01";
+#ifdef ER_NO_PERMISSION_TO_CREATE_USER
+ case ER_NO_PERMISSION_TO_CREATE_USER : return "42000";
#endif
-#ifdef ER_USER_LIMIT_REACHED
- case ER_USER_LIMIT_REACHED : return "42000";
+#ifdef ER_LOCK_DEADLOCK
+ case ER_LOCK_DEADLOCK : return "40001";
#endif
-#ifdef ER_NO_DEFAULT
- case ER_NO_DEFAULT : return "42000";
+#ifdef ER_NO_REFERENCED_ROW
+ case ER_NO_REFERENCED_ROW : return "23000";
#endif
-#ifdef ER_WRONG_VALUE_FOR_VAR
- case ER_WRONG_VALUE_FOR_VAR : return "42000";
+#ifdef ER_ROW_IS_REFERENCED
+ case ER_ROW_IS_REFERENCED : return "23000";
#endif
-#ifdef ER_WRONG_TYPE_FOR_VAR
- case ER_WRONG_TYPE_FOR_VAR : return "42000";
+#ifdef ER_CONNECT_TO_MASTER
+ case ER_CONNECT_TO_MASTER : return "08S01";
#endif
-#ifdef ER_CANT_USE_OPTION_HERE
- case ER_CANT_USE_OPTION_HERE : return "42000";
+#ifdef ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+ case ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT : return "21000";
#endif
-#ifdef ER_NOT_SUPPORTED_YET
- case ER_NOT_SUPPORTED_YET : return "42000";
+#ifdef ER_USER_LIMIT_REACHED
+ case ER_USER_LIMIT_REACHED : return "42000";
#endif
-#ifdef ER_WRONG_FK_DEF
- case ER_WRONG_FK_DEF : return "42000";
+#ifdef ER_SPECIFIC_ACCESS_DENIED_ERROR
+ case ER_SPECIFIC_ACCESS_DENIED_ERROR : return "42000";
#endif
-#ifdef ER_OPERAND_COLUMNS
- case ER_OPERAND_COLUMNS : return "21000";
+#ifdef ER_NO_DEFAULT
+ case ER_NO_DEFAULT : return "42000";
#endif
-#ifdef ER_SUBQUERY_NO_1_ROW
- case ER_SUBQUERY_NO_1_ROW : return "21000";
+#ifdef ER_WRONG_VALUE_FOR_VAR
+ case ER_WRONG_VALUE_FOR_VAR : return "42000";
#endif
-#ifdef ER_ILLEGAL_REFERENCE
- case ER_ILLEGAL_REFERENCE : return "42S22";
+#ifdef ER_WRONG_TYPE_FOR_VAR
+ case ER_WRONG_TYPE_FOR_VAR : return "42000";
#endif
-#ifdef ER_DERIVED_MUST_HAVE_ALIAS
- case ER_DERIVED_MUST_HAVE_ALIAS : return "42000";
+#ifdef ER_CANT_USE_OPTION_HERE
+ case ER_CANT_USE_OPTION_HERE : return "42000";
#endif
-#ifdef ER_SELECT_REDUCED
- case ER_SELECT_REDUCED : return "01000";
+#ifdef ER_NOT_SUPPORTED_YET
+ case ER_NOT_SUPPORTED_YET : return "42000";
#endif
-#ifdef ER_TABLENAME_NOT_ALLOWED_HERE
- case ER_TABLENAME_NOT_ALLOWED_HERE : return "42000";
+#ifdef ER_WRONG_FK_DEF
+ case ER_WRONG_FK_DEF : return "42000";
#endif
-#ifdef ER_NOT_SUPPORTED_AUTH_MODE
- case ER_NOT_SUPPORTED_AUTH_MODE : return "08004";
+#ifdef ER_OPERAND_COLUMNS
+ case ER_OPERAND_COLUMNS : return "21000";
#endif
-#ifdef ER_SPATIAL_CANT_HAVE_NULL
- case ER_SPATIAL_CANT_HAVE_NULL : return "42000";
+#ifdef ER_SUBQUERY_NO_1_ROW
+ case ER_SUBQUERY_NO_1_ROW : return "21000";
#endif
-#ifdef ER_COLLATION_CHARSET_MISMATCH
- case ER_COLLATION_CHARSET_MISMATCH : return "42000";
+#ifdef ER_ILLEGAL_REFERENCE
+ case ER_ILLEGAL_REFERENCE : return "42S22";
#endif
-#ifdef ER_WARN_TOO_FEW_RECORDS
- case ER_WARN_TOO_FEW_RECORDS : return "01000";
+#ifdef ER_DERIVED_MUST_HAVE_ALIAS
+ case ER_DERIVED_MUST_HAVE_ALIAS : return "42000";
#endif
-#ifdef ER_WARN_TOO_MANY_RECORDS
- case ER_WARN_TOO_MANY_RECORDS : return "01000";
+#ifdef ER_SELECT_REDUCED
+ case ER_SELECT_REDUCED : return "01000";
#endif
-#ifdef ER_WARN_NULL_TO_NOTNULL
- case ER_WARN_NULL_TO_NOTNULL : return "01000";
+#ifdef ER_TABLENAME_NOT_ALLOWED_HERE
+ case ER_TABLENAME_NOT_ALLOWED_HERE : return "42000";
#endif
-#ifdef ER_WARN_DATA_OUT_OF_RANGE
- case ER_WARN_DATA_OUT_OF_RANGE : return "01000";
+#ifdef ER_NOT_SUPPORTED_AUTH_MODE
+ case ER_NOT_SUPPORTED_AUTH_MODE : return "08004";
#endif
-#ifdef ER_WARN_DATA_TRUNCATED
- case ER_WARN_DATA_TRUNCATED : return "01000";
+#ifdef ER_SPATIAL_CANT_HAVE_NULL
+ case ER_SPATIAL_CANT_HAVE_NULL : return "42000";
#endif
-#ifdef ER_WRONG_NAME_FOR_INDEX
- case ER_WRONG_NAME_FOR_INDEX : return "42000";
+#ifdef ER_COLLATION_CHARSET_MISMATCH
+ case ER_COLLATION_CHARSET_MISMATCH : return "42000";
#endif
-#ifdef ER_WRONG_NAME_FOR_CATALOG
- case ER_WRONG_NAME_FOR_CATALOG : return "42000";
+#ifdef ER_WARN_TOO_FEW_RECORDS
+ case ER_WARN_TOO_FEW_RECORDS : return "01000";
#endif
-#ifdef ER_UNKNOWN_STORAGE_ENGINE
- case ER_UNKNOWN_STORAGE_ENGINE : return "42000";
+#ifdef ER_WARN_TOO_MANY_RECORDS
+ case ER_WARN_TOO_MANY_RECORDS : return "01000";
+#endif
+#ifdef ER_WARN_NULL_TO_NOTNULL
+ case ER_WARN_NULL_TO_NOTNULL : return "22004";
+#endif
+#ifdef ER_WARN_DATA_OUT_OF_RANGE
+ case ER_WARN_DATA_OUT_OF_RANGE : return "22003";
+#endif
+#ifdef ER_WRONG_NAME_FOR_INDEX
+ case ER_WRONG_NAME_FOR_INDEX : return "42000";
+#endif
+#ifdef ER_WRONG_NAME_FOR_CATALOG
+ case ER_WRONG_NAME_FOR_CATALOG : return "42000";
+#endif
+#ifdef ER_UNKNOWN_STORAGE_ENGINE
+ case ER_UNKNOWN_STORAGE_ENGINE : return "42000";
+#endif
+#ifdef ER_TRUNCATED_WRONG_VALUE
+ case ER_TRUNCATED_WRONG_VALUE : return "22007";
+#endif
+#ifdef ER_SP_NO_RECURSIVE_CREATE
+ case ER_SP_NO_RECURSIVE_CREATE : return "2F003";
+#endif
+#ifdef ER_SP_ALREADY_EXISTS
+ case ER_SP_ALREADY_EXISTS : return "42000";
+#endif
+#ifdef ER_SP_DOES_NOT_EXIST
+ case ER_SP_DOES_NOT_EXIST : return "42000";
+#endif
+#ifdef ER_SP_LILABEL_MISMATCH
+ case ER_SP_LILABEL_MISMATCH : return "42000";
+#endif
+#ifdef ER_SP_LABEL_REDEFINE
+ case ER_SP_LABEL_REDEFINE : return "42000";
+#endif
+#ifdef ER_SP_LABEL_MISMATCH
+ case ER_SP_LABEL_MISMATCH : return "42000";
+#endif
+#ifdef ER_SP_UNINIT_VAR
+ case ER_SP_UNINIT_VAR : return "01000";
+#endif
+#ifdef ER_SP_BADSELECT
+ case ER_SP_BADSELECT : return "0A000";
+#endif
+#ifdef ER_SP_BADRETURN
+ case ER_SP_BADRETURN : return "42000";
+#endif
+#ifdef ER_SP_BADSTATEMENT
+ case ER_SP_BADSTATEMENT : return "0A000";
+#endif
+#ifdef ER_UPDATE_LOG_DEPRECATED_IGNORED
+ case ER_UPDATE_LOG_DEPRECATED_IGNORED : return "42000";
+#endif
+#ifdef ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+ case ER_UPDATE_LOG_DEPRECATED_TRANSLATED : return "42000";
+#endif
+#ifdef ER_QUERY_INTERRUPTED
+ case ER_QUERY_INTERRUPTED : return "70100";
+#endif
+#ifdef ER_SP_WRONG_NO_OF_ARGS
+ case ER_SP_WRONG_NO_OF_ARGS : return "42000";
+#endif
+#ifdef ER_SP_COND_MISMATCH
+ case ER_SP_COND_MISMATCH : return "42000";
+#endif
+#ifdef ER_SP_NORETURN
+ case ER_SP_NORETURN : return "42000";
+#endif
+#ifdef ER_SP_NORETURNEND
+ case ER_SP_NORETURNEND : return "2F005";
+#endif
+#ifdef ER_SP_BAD_CURSOR_QUERY
+ case ER_SP_BAD_CURSOR_QUERY : return "42000";
+#endif
+#ifdef ER_SP_BAD_CURSOR_SELECT
+ case ER_SP_BAD_CURSOR_SELECT : return "42000";
+#endif
+#ifdef ER_SP_CURSOR_MISMATCH
+ case ER_SP_CURSOR_MISMATCH : return "42000";
+#endif
+#ifdef ER_SP_CURSOR_ALREADY_OPEN
+ case ER_SP_CURSOR_ALREADY_OPEN : return "24000";
+#endif
+#ifdef ER_SP_CURSOR_NOT_OPEN
+ case ER_SP_CURSOR_NOT_OPEN : return "24000";
+#endif
+#ifdef ER_SP_UNDECLARED_VAR
+ case ER_SP_UNDECLARED_VAR : return "42000";
+#endif
+#ifdef ER_SP_FETCH_NO_DATA
+ case ER_SP_FETCH_NO_DATA : return "02000";
+#endif
+#ifdef ER_SP_DUP_PARAM
+ case ER_SP_DUP_PARAM : return "42000";
+#endif
+#ifdef ER_SP_DUP_VAR
+ case ER_SP_DUP_VAR : return "42000";
+#endif
+#ifdef ER_SP_DUP_COND
+ case ER_SP_DUP_COND : return "42000";
+#endif
+#ifdef ER_SP_DUP_CURS
+ case ER_SP_DUP_CURS : return "42000";
+#endif
+#ifdef ER_SP_SUBSELECT_NYI
+ case ER_SP_SUBSELECT_NYI : return "0A000";
+#endif
+#ifdef ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+ case ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG : return "0A000";
+#endif
+#ifdef ER_SP_VARCOND_AFTER_CURSHNDLR
+ case ER_SP_VARCOND_AFTER_CURSHNDLR : return "42000";
+#endif
+#ifdef ER_SP_CURSOR_AFTER_HANDLER
+ case ER_SP_CURSOR_AFTER_HANDLER : return "42000";
+#endif
+#ifdef ER_SP_CASE_NOT_FOUND
+ case ER_SP_CASE_NOT_FOUND : return "20000";
+#endif
+#ifdef ER_DIVISION_BY_ZERO
+ case ER_DIVISION_BY_ZERO : return "22012";
+#endif
+#ifdef ER_ILLEGAL_VALUE_FOR_TYPE
+ case ER_ILLEGAL_VALUE_FOR_TYPE : return "22007";
+#endif
+#ifdef ER_PROCACCESS_DENIED_ERROR
+ case ER_PROCACCESS_DENIED_ERROR : return "42000";
+#endif
+#ifdef ER_XAER_NOTA
+ case ER_XAER_NOTA : return "XAE04";
+#endif
+#ifdef ER_XAER_INVAL
+ case ER_XAER_INVAL : return "XAE05";
+#endif
+#ifdef ER_XAER_RMFAIL
+ case ER_XAER_RMFAIL : return "XAE07";
+#endif
+#ifdef ER_XAER_OUTSIDE
+ case ER_XAER_OUTSIDE : return "XAE09";
+#endif
+#ifdef ER_XAER_RMERR
+ case ER_XAER_RMERR : return "XAE03";
+#endif
+#ifdef ER_XA_RBROLLBACK
+ case ER_XA_RBROLLBACK : return "XA100";
+#endif
+#ifdef ER_NONEXISTING_PROC_GRANT
+ case ER_NONEXISTING_PROC_GRANT : return "42000";
+#endif
+#ifdef ER_DATA_TOO_LONG
+ case ER_DATA_TOO_LONG : return "22001";
+#endif
+#ifdef ER_SP_BAD_SQLSTATE
+ case ER_SP_BAD_SQLSTATE : return "42000";
+#endif
+#ifdef ER_CANT_CREATE_USER_WITH_GRANT
+ case ER_CANT_CREATE_USER_WITH_GRANT : return "42000";
+#endif
+#ifdef ER_SP_DUP_HANDLER
+ case ER_SP_DUP_HANDLER : return "42000";
+#endif
+#ifdef ER_SP_NOT_VAR_ARG
+ case ER_SP_NOT_VAR_ARG : return "42000";
+#endif
+#ifdef ER_SP_NO_RETSET
+ case ER_SP_NO_RETSET : return "0A000";
+#endif
+#ifdef ER_CANT_CREATE_GEOMETRY_OBJECT
+ case ER_CANT_CREATE_GEOMETRY_OBJECT : return "22003";
+#endif
+#ifdef ER_TOO_BIG_SCALE
+ case ER_TOO_BIG_SCALE : return "42000";
+#endif
+#ifdef ER_TOO_BIG_PRECISION
+ case ER_TOO_BIG_PRECISION : return "42000";
+#endif
+#ifdef ER_M_BIGGER_THAN_D
+ case ER_M_BIGGER_THAN_D : return "42000";
+#endif
+#ifdef ER_TOO_LONG_BODY
+ case ER_TOO_LONG_BODY : return "42000";
+#endif
+#ifdef ER_TOO_BIG_DISPLAYWIDTH
+ case ER_TOO_BIG_DISPLAYWIDTH : return "42000";
+#endif
+#ifdef ER_XAER_DUPID
+ case ER_XAER_DUPID : return "XAE08";
+#endif
+#ifdef ER_DATETIME_FUNCTION_OVERFLOW
+ case ER_DATETIME_FUNCTION_OVERFLOW : return "22008";
+#endif
+#ifdef ER_ROW_IS_REFERENCED_2
+ case ER_ROW_IS_REFERENCED_2 : return "23000";
+#endif
+#ifdef ER_NO_REFERENCED_ROW_2
+ case ER_NO_REFERENCED_ROW_2 : return "23000";
+#endif
+#ifdef ER_SP_BAD_VAR_SHADOW
+ case ER_SP_BAD_VAR_SHADOW : return "42000";
+#endif
+#ifdef ER_SP_WRONG_NAME
+ case ER_SP_WRONG_NAME : return "42000";
+#endif
+#ifdef ER_SP_NO_AGGREGATE
+ case ER_SP_NO_AGGREGATE : return "42000";
+#endif
+#ifdef ER_MAX_PREPARED_STMT_COUNT_REACHED
+ case ER_MAX_PREPARED_STMT_COUNT_REACHED : return "42000";
+#endif
+#ifdef ER_NON_GROUPING_FIELD_USED
+ case ER_NON_GROUPING_FIELD_USED : return "42000";
+#endif
+#ifdef ER_FOREIGN_DUPLICATE_KEY
+ case ER_FOREIGN_DUPLICATE_KEY : return "23000";
+#endif
+#ifdef ER_CANT_CHANGE_TX_ISOLATION
+ case ER_CANT_CHANGE_TX_ISOLATION : return "25001";
+#endif
+#ifdef ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+ case ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT : return "42000";
+#endif
+#ifdef ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+ case ER_WRONG_PARAMETERS_TO_NATIVE_FCT : return "42000";
+#endif
+#ifdef ER_WRONG_PARAMETERS_TO_STORED_FCT
+ case ER_WRONG_PARAMETERS_TO_STORED_FCT : return "42000";
+#endif
+#ifdef ER_DUP_ENTRY_WITH_KEY_NAME
+ case ER_DUP_ENTRY_WITH_KEY_NAME : return "23000";
+#endif
+#ifdef ER_XA_RBTIMEOUT
+ case ER_XA_RBTIMEOUT : return "XA106";
+#endif
+#ifdef ER_XA_RBDEADLOCK
+ case ER_XA_RBDEADLOCK : return "XA102";
+#endif
+#ifdef ER_FUNC_INEXISTENT_NAME_COLLISION
+ case ER_FUNC_INEXISTENT_NAME_COLLISION : return "42000";
+#endif
+#ifdef ER_DUP_SIGNAL_SET
+ case ER_DUP_SIGNAL_SET : return "42000";
+#endif
+#ifdef ER_SIGNAL_WARN
+ case ER_SIGNAL_WARN : return "01000";
+#endif
+#ifdef ER_SIGNAL_NOT_FOUND
+ case ER_SIGNAL_NOT_FOUND : return "02000";
+#endif
+#ifdef ER_SIGNAL_EXCEPTION
+ case ER_SIGNAL_EXCEPTION : return "HY000";
+#endif
+#ifdef ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER
+ case ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER : return "0K000";
+#endif
+#ifdef ER_SPATIAL_MUST_HAVE_GEOM_COL
+ case ER_SPATIAL_MUST_HAVE_GEOM_COL : return "42000";
+#endif
+#ifdef ER_DATA_OUT_OF_RANGE
+ case ER_DATA_OUT_OF_RANGE : return "22003";
#endif
diff --git a/ext/pdo_mysql/tests/mysql_pdo_test.inc b/ext/pdo_mysql/tests/mysql_pdo_test.inc
index 0af2e6df6..115aeadc5 100644
--- a/ext/pdo_mysql/tests/mysql_pdo_test.inc
+++ b/ext/pdo_mysql/tests/mysql_pdo_test.inc
@@ -141,12 +141,19 @@ class MySQLPDOTest extends PDOTest {
}
- static function detect_transactional_mysql_engine($db) {
+ static function detect_transactional_mysql_engine($db) {
foreach ($db->query("show variables like 'have%'") as $row) {
- if ($row[1] == 'YES' && ($row[0] == 'have_innodb' || $row[0] == 'have_bdb')) {
+ if (!empty($row) && $row[1] == 'YES' && ($row[0] == 'have_innodb' || $row[0] == 'have_bdb')) {
return str_replace("have_", "", $row[0]);
}
}
+ /* MySQL 5.6.1+ */
+ foreach ($db->query("SHOW ENGINES") as $row) {
+ if (isset($row['engine']) && isset($row['support'])) {
+ if ('InnoDB' == $row['engine'] && ('YES' == $row['support'] || 'DEFAULT' == $row['support']))
+ return 'innodb';
+ }
+ }
return false;
}
diff --git a/ext/pdo_mysql/tests/pdo_mysql___construct.phpt b/ext/pdo_mysql/tests/pdo_mysql___construct.phpt
index 46015533d..9092004fe 100644
--- a/ext/pdo_mysql/tests/pdo_mysql___construct.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql___construct.phpt
@@ -294,7 +294,7 @@ MySQLPDOTest::skip();
[005] invalid data source name, [n/a] n/a
[006] invalid data source name, [n/a] n/a
[007] could not find driver, [n/a] n/a
-[009] SQLSTATE[28000] [1045] Access denied for user 'dont%s'@'%s' (using password: YES), [n/a] n/a
-[010] SQLSTATE[28000] [1045] Access denied for user 'dont%s'@'%s' (using password: YES), [n/a] n/a
+[009] SQLSTATE[%s] [1045] Access denied for user 'dont%s'@'%s' (using password: YES), [n/a] n/a
+[010] SQLSTATE[%s] [1045] Access denied for user 'dont%s'@'%s' (using password: YES), [n/a] n/a
[017] DSN=%s, SQLSTATE[%s] [%d] %s
[033] DSN = mysql:%s, character sets has not been set, @@character_set_connection reports 'latin1', expecting 'latin2'done!
diff --git a/ext/pdo_mysql/tests/pdo_mysql___construct_options.phpt b/ext/pdo_mysql/tests/pdo_mysql___construct_options.phpt
index ea25cdc32..29b3c11f7 100644
--- a/ext/pdo_mysql/tests/pdo_mysql___construct_options.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql___construct_options.phpt
@@ -3,6 +3,8 @@ MySQL PDO->__construct(), options
--SKIPIF--
<?php
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
+require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
+MySQLPDOTest::skip();
?>
--FILE--
<?php
diff --git a/ext/pdo_mysql/tests/pdo_mysql_interface.phpt b/ext/pdo_mysql/tests/pdo_mysql_interface.phpt
index 9e13908a5..24b19ae3f 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_interface.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_interface.phpt
@@ -4,7 +4,8 @@ MySQL PDO class interface
<?php
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
-$db = MySQLPDOTest::getDriver();
+MySQLPDOTest::skip();
+$db = MySQLPDOTest::factory();
if (false == MySQLPDOTest::detect_transactional_mysql_engine($db))
die("skip Transactional engine not found");
?>