MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Jim Winstead Date:July 21 2006 6:00pm
Subject:bk commit into 5.0 tree (jimw:1.2207) BUG#16502
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of jimw. When jimw 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@stripped, 2006-07-21 11:00:39-07:00, jimw@rama.(none) +3 -0
  Bug #16502: mysqlcheck gets confused with views
  
    Make mysqlcheck skip over views when processing all of the tables in a
    database.

  client/mysqlcheck.c@stripped, 2006-07-21 11:00:36-07:00, jimw@rama.(none) +10 -4
    Use SHOW FULL TABLES to get table list, and skip over things that aren't
    a BASE TABLE (like a VIEW).

  mysql-test/r/mysqlcheck.result@stripped, 2006-07-21 11:00:36-07:00, jimw@rama.(none) +7 -0
    Add new results

  mysql-test/t/mysqlcheck.test@stripped, 2006-07-21 11:00:36-07:00, jimw@rama.(none) +14 -0
    Add new regression test

# 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:	jimw
# Host:	rama.(none)
# Root:	/home/jimw/my/mysql-5.0-16502

--- 1.1/mysql-test/r/mysqlcheck.result	2006-07-21 11:00:42 -07:00
+++ 1.2/mysql-test/r/mysqlcheck.result	2006-07-21 11:00:42 -07:00
@@ -32,3 +32,10 @@ mysql.time_zone_name                    
 mysql.time_zone_transition                         OK
 mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
+create table t1 (a int);
+create view v1 as select * from t1;
+test.t1                                            OK
+test.t1                                            OK
+drop view v1;
+drop table t1;
+End of 5.0 tests

--- 1.1/mysql-test/t/mysqlcheck.test	2006-07-21 11:00:42 -07:00
+++ 1.2/mysql-test/t/mysqlcheck.test	2006-07-21 11:00:42 -07:00
@@ -9,3 +9,17 @@
 --replace_result 'Table is already up to date' OK
 --exec $MYSQL_CHECK --analyze --optimize  --databases test information_schema mysql
 --exec $MYSQL_CHECK --analyze --optimize information_schema schemata
+
+#
+# Bug #16502: mysqlcheck tries to check views
+#
+create table t1 (a int);
+create view v1 as select * from t1;
+--replace_result 'Table is already up to date' OK
+--exec $MYSQL_CHECK --analyze --optimize --databases test
+--replace_result 'Table is already up to date' OK
+--exec $MYSQL_CHECK --all-in-1 --analyze --optimize --databases test
+drop view v1;
+drop table t1;
+
+--echo End of 5.0 tests

--- 1.56/client/mysqlcheck.c	2006-07-21 11:00:42 -07:00
+++ 1.57/client/mysqlcheck.c	2006-07-21 11:00:42 -07:00
@@ -458,7 +458,7 @@ static int process_all_tables_in_db(char
   LINT_INIT(res);
   if (use_db(database))
     return 1;
-  if (mysql_query(sock, "SHOW TABLES") ||
+  if (mysql_query(sock, "SHOW FULL TABLES") ||
 	!((res= mysql_store_result(sock))))
     return 1;
 
@@ -484,8 +484,11 @@ static int process_all_tables_in_db(char
     }
     for (end = tables + 1; (row = mysql_fetch_row(res)) ;)
     {
-      end= fix_table_name(end, row[0]);
-      *end++= ',';
+      if (!strcmp(row[1], "BASE TABLE"))
+      {
+        end= fix_table_name(end, row[0]);
+        *end++= ',';
+      }
     }
     *--end = 0;
     if (tot_length)
@@ -495,7 +498,10 @@ static int process_all_tables_in_db(char
   else
   {
     while ((row = mysql_fetch_row(res)))
-      handle_request_for_tables(row[0], strlen(row[0]));
+      if (!strcmp(row[1], "BASE TABLE"))
+      {
+        handle_request_for_tables(row[0], strlen(row[0]));
+      }
   }
   mysql_free_result(res);
   return 0;
Thread
bk commit into 5.0 tree (jimw:1.2207) BUG#16502Jim Winstead21 Jul