summaryrefslogtreecommitdiff
path: root/sql/ha_federated.cc
diff options
context:
space:
mode:
authorunknown <jimw@mysql.com>2005-07-19 09:15:22 -0700
committerunknown <jimw@mysql.com>2005-07-19 09:15:22 -0700
commit6ae060305541019882bcb60bf086458b010faa45 (patch)
tree91161658401493ebad97db85872bd9ccb764fca4 /sql/ha_federated.cc
parent1e3be5e98ab82c9ab57e7b6e2ea67d4c2e38f88e (diff)
parentf1d5c0489b03d924750ae7112ffaf34da5d6fe7b (diff)
downloadmariadb-git-6ae060305541019882bcb60bf086458b010faa45.tar.gz
Merge mysql.com:/home/jimw/my/mysql-5.0-readline
into mysql.com:/home/jimw/my/mysql-5.0-clean
Diffstat (limited to 'sql/ha_federated.cc')
-rw-r--r--sql/ha_federated.cc58
1 files changed, 57 insertions, 1 deletions
diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc
index c953ff1d7ed..e0e35c6b866 100644
--- a/sql/ha_federated.cc
+++ b/sql/ha_federated.cc
@@ -495,7 +495,7 @@ static int check_foreign_data_source(
query.append(escaped_table_name);
query.append(FEDERATED_BTICK);
query.append(FEDERATED_WHERE);
- query.append(FEDERATED_1EQ0);
+ query.append(FEDERATED_FALSE);
DBUG_PRINT("info", ("check_foreign_data_source query %s", query.c_ptr_quick()));
if (mysql_real_query(mysql, query.ptr(), query.length()))
@@ -1661,6 +1661,62 @@ int ha_federated::write_row(byte *buf)
}
+int ha_federated::optimize(THD* thd, HA_CHECK_OPT* check_opt)
+{
+ char query_buffer[STRING_BUFFER_USUAL_SIZE];
+ String query(query_buffer, sizeof(query_buffer), &my_charset_bin);
+
+ DBUG_ENTER("ha_federated::optimize");
+
+ query.length(0);
+
+ query.set_charset(system_charset_info);
+ query.append(FEDERATED_OPTIMIZE);
+ query.append(FEDERATED_BTICK);
+ query.append(share->table_name, share->table_name_length);
+ query.append(FEDERATED_BTICK);
+
+ if (mysql_real_query(mysql, query.ptr(), query.length()))
+ {
+ my_error(-1, MYF(0), mysql_error(mysql));
+ DBUG_RETURN(-1);
+ }
+
+ DBUG_RETURN(0);
+}
+
+
+int ha_federated::repair(THD* thd, HA_CHECK_OPT* check_opt)
+{
+ char query_buffer[STRING_BUFFER_USUAL_SIZE];
+ String query(query_buffer, sizeof(query_buffer), &my_charset_bin);
+
+ DBUG_ENTER("ha_federated::repair");
+
+ query.length(0);
+
+ query.set_charset(system_charset_info);
+ query.append(FEDERATED_REPAIR);
+ query.append(FEDERATED_BTICK);
+ query.append(share->table_name, share->table_name_length);
+ query.append(FEDERATED_BTICK);
+ if (check_opt->flags & T_QUICK)
+ query.append(FEDERATED_QUICK);
+ if (check_opt->flags & T_EXTEND)
+ query.append(FEDERATED_EXTENDED);
+ if (check_opt->sql_flags & TT_USEFRM)
+ query.append(FEDERATED_USE_FRM);
+
+ if (mysql_real_query(mysql, query.ptr(), query.length()))
+ {
+ my_error(-1, MYF(0), mysql_error(mysql));
+ DBUG_RETURN(-1);
+ }
+
+ DBUG_RETURN(0);
+}
+
+
/*
Yes, update_row() does what you expect, it updates a row. old_data will have
the previous row record in it, while new_data will have the newest data in