summaryrefslogtreecommitdiff
path: root/sql/ha_federated.h
diff options
context:
space:
mode:
authorunknown <eric@mysql.com>2005-09-13 23:31:17 -0700
committerunknown <eric@mysql.com>2005-09-13 23:31:17 -0700
commitab5b9baf53d056b1dd3db1888b0fb32f3da95601 (patch)
tree69a23e7333dd480c5ad097cd0be4565963c6ffaa /sql/ha_federated.h
parent74b5120554269afb6e892f4766a25a9f5ed47fe1 (diff)
downloadmariadb-git-ab5b9baf53d056b1dd3db1888b0fb32f3da95601.tar.gz
Improvement to federated for BUG#12659
Now many direct references to my_error() have been removed. mysql-test/r/federated_archive.result: new results with new error message mysql-test/t/federated_archive.test: corrected error number sql/ha_federated.cc: some minor 80 column formatting corrected some error handling to be more handler print_error friendly moved duplicate code into new "stash_remote_error" function sql/ha_federated.h: added error number, and places to stash error message and number added private method to stash error
Diffstat (limited to 'sql/ha_federated.h')
-rw-r--r--sql/ha_federated.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/ha_federated.h b/sql/ha_federated.h
index f75fa21b1d6..b25071dda16 100644
--- a/sql/ha_federated.h
+++ b/sql/ha_federated.h
@@ -27,6 +27,14 @@
#include <mysql.h>
+/*
+ handler::print_error has a case statement for error numbers.
+ This value is (10000) is far out of range and will envoke the
+ default: case.
+ (Current error range is 120-159 from include/my_base.h)
+*/
+#define HA_FEDERATED_ERROR_WITH_REMOTE_SYSTEM 10000
+
#define FEDERATED_QUERY_BUFFER_SIZE STRING_BUFFER_USUAL_SIZE * 5
#define FEDERATED_RECORDS_IN_RANGE 2
@@ -149,6 +157,8 @@ class ha_federated: public handler
uint ref_length;
uint fetch_num; // stores the fetch num
MYSQL_ROW_OFFSET current_position; // Current position used by ::position()
+ int remote_error_number;
+ char remote_error_buf[FEDERATED_QUERY_BUFFER_SIZE];
private:
/*
@@ -160,6 +170,7 @@ private:
const key_range *start_key,
const key_range *end_key,
bool records_in_range);
+ int stash_remote_error();
public:
ha_federated(TABLE *table_arg);
@@ -286,6 +297,7 @@ public:
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
enum thr_lock_type lock_type); //required
+ virtual bool get_error_message(int error, String *buf);
};
bool federated_db_init(void);