summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2013-05-20 23:58:44 +0200
committerSergei Golubchik <sergii@pisem.net>2013-05-20 23:58:44 +0200
commit62ab6982a43a99f9da1d4b140111a5db6f377de1 (patch)
tree4b257e337b83f5251d386453fca7fc981ab27d07
parent7e4150d7cd893d8f27276b2304bebb39e909feda (diff)
downloadmariadb-git-62ab6982a43a99f9da1d4b140111a5db6f377de1.tar.gz
MDEV-388 Creating a federated table with a non-existing server returns a random error code
-rw-r--r--mysql-test/suite/federated/federatedx.result7
-rw-r--r--mysql-test/suite/federated/federatedx.test8
-rw-r--r--storage/federated/ha_federated.cc2
-rw-r--r--storage/federatedx/ha_federatedx.cc2
4 files changed, 17 insertions, 2 deletions
diff --git a/mysql-test/suite/federated/federatedx.result b/mysql-test/suite/federated/federatedx.result
index 2ece1a32b4f..af34af05e7d 100644
--- a/mysql-test/suite/federated/federatedx.result
+++ b/mysql-test/suite/federated/federatedx.result
@@ -2157,6 +2157,13 @@ DROP TABLE federated.t1;
End of 5.1 tests
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
+CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='non_existing';
+ERROR HY000: Can't create/write to file 'server name: 'non_existing' doesn't exist!' (Errcode: 16)
+SHOW WARNINGS;
+Level Code Message
+Error 1 Can't create/write to file 'server name: 'non_existing' doesn't exist!' (Errcode: 16)
+Error 1 Can't create/write to file 'non_existing' (Errcode: 14)
+Error 1005 Can't create table 'test.t1' (errno: 1)
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1;
diff --git a/mysql-test/suite/federated/federatedx.test b/mysql-test/suite/federated/federatedx.test
index 15fdd47c4da..688893bb856 100644
--- a/mysql-test/suite/federated/federatedx.test
+++ b/mysql-test/suite/federated/federatedx.test
@@ -1999,4 +1999,12 @@ connection slave;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
connection default;
+
+#
+# MDEV-388 Creating a federated table with a non-existing server returns a random error code
+#
+--error 1
+CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='non_existing';
+SHOW WARNINGS;
+
source include/federated_cleanup.inc;
diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc
index 55394e859c5..40b8d3d24d9 100644
--- a/storage/federated/ha_federated.cc
+++ b/storage/federated/ha_federated.cc
@@ -587,7 +587,7 @@ static int parse_url_error(FEDERATED_SHARE *share, TABLE *table, int error_num)
buf_len= min(table->s->connect_string.length,
FEDERATED_QUERY_BUFFER_SIZE-1);
strmake(buf, table->s->connect_string.str, buf_len);
- my_error(error_num, MYF(0), buf);
+ my_error(error_num, MYF(0), buf, 14);
DBUG_RETURN(error_num);
}
diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc
index eb4d7f11d33..2d6ae6ccc4d 100644
--- a/storage/federatedx/ha_federatedx.cc
+++ b/storage/federatedx/ha_federatedx.cc
@@ -525,7 +525,7 @@ static int parse_url_error(FEDERATEDX_SHARE *share, TABLE *table, int error_num)
buf_len= min(table->s->connect_string.length,
FEDERATEDX_QUERY_BUFFER_SIZE-1);
strmake(buf, table->s->connect_string.str, buf_len);
- my_error(error_num, MYF(0), buf);
+ my_error(error_num, MYF(0), buf, 14);
DBUG_RETURN(error_num);
}