From 24c08f5279ff350495d7334dcecd470a3c88cefb Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Fri, 16 Jul 2010 16:43:46 +0300 Subject: [PATCH] Fixed wrong error message from federatedx (which could lead to assert in DBUG code) mysql-test/suite/federated/federated_server.result: Update to new error message mysql-test/suite/federated/federated_server.test: Update to new error message storage/federatedx/ha_federatedx.cc: Return real error code, not 0, as in some cases before. --- mysql-test/suite/federated/federated_server.result | 2 +- mysql-test/suite/federated/federated_server.test | 2 +- storage/federatedx/ha_federatedx.cc | 9 +++------ 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/mysql-test/suite/federated/federated_server.result b/mysql-test/suite/federated/federated_server.result index 9c6a062f530..753b9286287 100644 --- a/mysql-test/suite/federated/federated_server.result +++ b/mysql-test/suite/federated/federated_server.result @@ -213,7 +213,7 @@ id name alter server s1 options (database 'db_bogus'); flush tables; select * from federated.t1; -ERROR HY000: There was a problem processing the query on the foreign data source. Data source error: : 1044 : Access denied for user 'test_fed'@'localhost' to databa +ERROR 42000: Got error: 1044 : Access denied for user 'test_fed'@'localhost' to database 'db_bogus' drop server if exists 's1'; ERROR 42000: Access denied; you need the SUPER privilege for this operation create server 's1' foreign data wrapper 'mysql' options diff --git a/mysql-test/suite/federated/federated_server.test b/mysql-test/suite/federated/federated_server.test index 65674abff63..d03c2d26014 100644 --- a/mysql-test/suite/federated/federated_server.test +++ b/mysql-test/suite/federated/federated_server.test @@ -239,7 +239,7 @@ alter server s1 options (database 'db_bogus'); connection master; flush tables; ---error ER_QUERY_ON_FOREIGN_DATA_SOURCE +--error ER_DBACCESS_DENIED_ERROR select * from federated.t1; connection conn_select; diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc index 57bfb1148bf..435530e8caa 100644 --- a/storage/federatedx/ha_federatedx.cc +++ b/storage/federatedx/ha_federatedx.cc @@ -2995,7 +2995,6 @@ int ha_federatedx::rnd_pos(uchar *buf, uchar *pos) int ha_federatedx::info(uint flag) { - char error_buffer[FEDERATEDX_QUERY_BUFFER_SIZE]; uint error_code; federatedx_io *tmp_io= 0, **iop= 0; DBUG_ENTER("ha_federatedx::info"); @@ -3037,12 +3036,10 @@ int ha_federatedx::info(uint flag) error: if (iop && *iop) { - my_sprintf(error_buffer, (error_buffer, ": %d : %s", - (*iop)->error_code(), (*iop)->error_str())); - my_error(error_code, MYF(0), error_buffer); + my_printf_error((*iop)->error_code(), "Got error: %d : %s", MYF(0), + (*iop)->error_code(), (*iop)->error_str()); } - else - if (remote_error_number != -1 /* error already reported */) + else if (remote_error_number != -1 /* error already reported */) { error_code= remote_error_number; my_error(error_code, MYF(0), ER(error_code));