diff options
author | unknown <eric@mysql.com> | 2005-09-13 23:31:17 -0700 |
---|---|---|
committer | unknown <eric@mysql.com> | 2005-09-13 23:31:17 -0700 |
commit | ab5b9baf53d056b1dd3db1888b0fb32f3da95601 (patch) | |
tree | 69a23e7333dd480c5ad097cd0be4565963c6ffaa /sql/ha_federated.h | |
parent | 74b5120554269afb6e892f4766a25a9f5ed47fe1 (diff) | |
download | mariadb-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.h | 12 |
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); |