summaryrefslogtreecommitdiff
path: root/sql/ha_federated.h
diff options
context:
space:
mode:
authoreric@mysql.com <>2005-09-13 23:31:17 -0700
committereric@mysql.com <>2005-09-13 23:31:17 -0700
commitef064015498049cd67894449532acd09b7c7c08b (patch)
tree69a23e7333dd480c5ad097cd0be4565963c6ffaa /sql/ha_federated.h
parent50c0e826dbaf2151ef6d21cc92baedbd925cdcb2 (diff)
downloadmariadb-git-ef064015498049cd67894449532acd09b7c7c08b.tar.gz
Improvement to federated for BUG#12659
Now many direct references to my_error() have been removed.
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);