List:Internals« Previous MessageNext Message »
From:Eric Herman Date:July 15 2005 11:57pm
Subject:bk commit into 5.0 tree (eric:1.1950)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of eric. When eric does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.1950 05/07/15 16:57:20 eric@stripped +4 -0
  ha_federated::repair and optimize

  sql/ha_federated.h
    1.14 05/07/15 16:57:12 eric@stripped +3 -0
    added optimize and repair

  sql/ha_federated.cc
    1.32 05/07/15 16:57:12 eric@stripped +54 -0
    added optimize and repair implementations

  mysql-test/t/federated.test
    1.11 05/07/15 16:57:11 eric@stripped +6 -0
    added very simple tests for optimize and repair

  mysql-test/r/federated.result
    1.13 05/07/15 16:57:11 eric@stripped +15 -0
    added test results for optimize and repair

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	eric
# Host:	sleek.local
# Root:	/Users/eric/bktmp/mysql-5.0

--- 1.12/mysql-test/r/federated.result	2005-05-27 13:07:35 -07:00
+++ 1.13/mysql-test/r/federated.result	2005-07-15 16:57:11 -07:00
@@ -1006,6 +1006,21 @@
 3	3	Marizio	33333	Italy
 4	4	Monty	33333	Finland
 5	5	Sanja	33333	Ukraine
+OPTIMIZE TABLE federated.t1;
+Table	Op	Msg_type	Msg_text
+federated.t1	optimize	status	OK
+REPAIR TABLE federated.t1;
+Table	Op	Msg_type	Msg_text
+federated.t1	repair	status	OK
+REPAIR TABLE federated.t1 QUICK;
+Table	Op	Msg_type	Msg_text
+federated.t1	repair	status	OK
+REPAIR TABLE federated.t1 EXTENDED;
+Table	Op	Msg_type	Msg_text
+federated.t1	repair	status	OK
+REPAIR TABLE federated.t1 USE_FRM;
+Table	Op	Msg_type	Msg_text
+federated.t1	repair	status	OK
 DROP TABLE federated.countries;
 DROP TABLE IF EXISTS federated.t1;
 DROP DATABASE IF EXISTS federated;

--- 1.10/mysql-test/t/federated.test	2005-05-27 13:07:36 -07:00
+++ 1.11/mysql-test/t/federated.test	2005-07-15 16:57:11 -07:00
@@ -925,6 +925,12 @@
 FROM federated.t1 RIGHT JOIN federated.countries 
 ON federated.t1.country_id = federated.countries.id 
 ORDER BY federated.t1.country_id;
+OPTIMIZE TABLE federated.t1;
+REPAIR TABLE federated.t1;
+REPAIR TABLE federated.t1 QUICK;
+REPAIR TABLE federated.t1 EXTENDED;
+REPAIR TABLE federated.t1 USE_FRM;
+
 
 DROP TABLE federated.countries;
 

--- 1.31/sql/ha_federated.cc	2005-07-06 18:56:07 -07:00
+++ 1.32/sql/ha_federated.cc	2005-07-15 16:57:12 -07:00
@@ -1222,6 +1222,60 @@
 }
 
 
+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("OPTIMIZE TABLE `");
+  query.append(share->table_base_name);
+  query.append("`");
+
+  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("REPAIR TABLE `", 14);
+  query.append(share->table_base_name);
+  query.append("`", 1);
+  if (check_opt->flags & T_QUICK)
+    query.append(" QUICK", 6);
+  if (check_opt->flags & T_EXTEND)
+    query.append(" EXTENDED", 9);
+  if (check_opt->sql_flags & TT_USEFRM)
+    query.append(" USE_FRM", 8);
+      
+  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

--- 1.13/sql/ha_federated.h	2005-06-05 12:00:39 -07:00
+++ 1.14/sql/ha_federated.h	2005-07-15 16:57:12 -07:00
@@ -176,6 +176,9 @@
   void position(const byte *record);                            //required
   void info(uint);                                              //required
 
+  int repair(THD* thd, HA_CHECK_OPT* check_opt);
+  int optimize(THD* thd, HA_CHECK_OPT* check_opt);
+
   int delete_all_rows(void);
   int create(const char *name, TABLE *form,
              HA_CREATE_INFO *create_info);                      //required
Thread
bk commit into 5.0 tree (eric:1.1950)Eric Herman16 Jul