List:Commits« Previous MessageNext Message »
From:tim Date:October 3 2006 2:37am
Subject:bk commit into 5.0 tree (tsmith:1.2304)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of tim. When tim 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-10-02 18:37:15-06:00, tsmith@stripped +15 -0
  Merge siva.hindu.god:/usr/home/tim/m/bk/41
  into  siva.hindu.god:/usr/home/tim/m/bk/50
  MERGE: 1.1616.2144.205

  BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e@stripped, 2006-10-02 18:26:05-06:00,
tsmith@stripped +0 -0
    Auto merged
    MERGE: 1.70.33.2

  BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e@stripped, 2006-10-02 18:26:03-06:00,
tsmith@stripped +0 -0
    Merge rename: sql/share/english/errmsg.txt ->
BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e

  myisam/mi_delete.c@stripped, 2006-10-02 18:26:06-06:00, tsmith@stripped +0 -0
    Auto merged
    MERGE: 1.31.1.4

  myisam/mi_dynrec.c@stripped, 2006-10-02 18:26:07-06:00, tsmith@stripped +0 -0
    Auto merged
    MERGE: 1.36.1.4

  myisam/mi_rkey.c@stripped, 2006-10-02 18:26:08-06:00, tsmith@stripped +0 -0
    Auto merged
    MERGE: 1.16.1.7

  myisammrg/myrg_open.c@stripped, 2006-10-02 18:26:08-06:00, tsmith@stripped +0 -0
    Auto merged
    MERGE: 1.29.1.3

  myisammrg/myrg_queue.c@stripped, 2006-10-02 18:26:08-06:00, tsmith@stripped +0 -0
    Auto merged
    MERGE: 1.11.1.1

  mysql-test/r/lowercase_table3.result@stripped, 2006-10-02 18:28:25-06:00,
tsmith@stripped +0 -1
    Manual merge (use local)
    MERGE: 1.5.1.2

  mysql-test/r/merge.result@stripped, 2006-10-02 18:29:54-06:00, tsmith@stripped +0 -17
    Manual merge (use local)
    MERGE: 1.32.1.10

  mysql-test/r/myisam.result@stripped, 2006-10-02 18:26:08-06:00, tsmith@stripped +0 -0
    Auto merged
    MERGE: 1.45.1.22

  mysql-test/r/repair.result@stripped, 2006-10-02 18:32:42-06:00, tsmith@stripped +0 -1
    Manual merge (use local)
    MERGE: 1.14.1.4

  mysql-test/t/lowercase_table3.test@stripped, 2006-10-02 18:33:36-06:00,
tsmith@stripped +0 -1
    Manual merge (use local)
    MERGE: 1.6.1.3

  mysql-test/t/merge.test@stripped, 2006-10-02 18:26:09-06:00, tsmith@stripped +0 -3
    Auto merged
    MERGE: 1.28.1.12

  mysql-test/t/myisam.test@stripped, 2006-10-02 18:26:09-06:00, tsmith@stripped +0 -0
    Auto merged
    MERGE: 1.33.1.20

  scripts/mysqlhotcopy.sh@stripped, 2006-10-02 18:26:10-06:00, tsmith@stripped +0 -0
    Auto merged
    MERGE: 1.50.1.1

  sql/table.cc@stripped, 2006-10-02 18:36:56-06:00, tsmith@stripped +0 -8
    Manual merge
    MERGE: 1.111.4.8

# 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:	tsmith
# Host:	siva.hindu.god
# Root:	/usr/home/tim/m/bk/50/RESYNC

--- 1.39/myisam/mi_delete.c	2006-10-02 18:37:47 -06:00
+++ 1.40/myisam/mi_delete.c	2006-10-02 18:37:47 -06:00
@@ -446,7 +446,7 @@ static int del(register MI_INFO *info, r
 	else
 	{
 	  DBUG_PRINT("test",("Inserting of key when deleting"));
-	  if (_mi_get_last_key(info,keyinfo,leaf_buff,keybuff,endpos,
+	  if (!_mi_get_last_key(info,keyinfo,leaf_buff,keybuff,endpos,
 				&tmp))
 	    goto err;
 	  ret_value=_mi_insert(info,keyinfo,key,leaf_buff,endpos,keybuff,

--- 1.31/myisammrg/myrg_open.c	2006-10-02 18:37:47 -06:00
+++ 1.32/myisammrg/myrg_open.c	2006-10-02 18:37:47 -06:00
@@ -33,7 +33,7 @@
 MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking)
 {
   int save_errno,errpos=0;
-  uint files=0,i,dir_length,length,key_parts;
+  uint files= 0, i, dir_length, length, key_parts, min_keys= 0;
   ulonglong file_offset=0;
   char name_buff[FN_REFLEN*2],buff[FN_REFLEN],*end;
   MYRG_INFO *m_info=0;
@@ -89,7 +89,10 @@ MYRG_INFO *myrg_open(const char *name, i
     else
       fn_format(buff, buff, "", "", 0);
     if (!(isam=mi_open(buff,mode,(handle_locking?HA_OPEN_WAIT_IF_LOCKED:0))))
+    {
+      my_errno= HA_ERR_WRONG_MRG_TABLE_DEF;
       goto err;
+    }
     if (!m_info)                                /* First file */
     {
       key_parts=isam->s->base.key_parts;
@@ -106,6 +109,7 @@ MYRG_INFO *myrg_open(const char *name, i
         files= 0;
       }
       m_info->reclength=isam->s->base.reclength;
+      min_keys= isam->s->base.keys;
       errpos=3;
     }
     m_info->open_tables[files].table= isam;
@@ -121,6 +125,8 @@ MYRG_INFO *myrg_open(const char *name, i
     m_info->records+= isam->state->records;
     m_info->del+= isam->state->del;
     m_info->data_file_length+= isam->state->data_file_length;
+    if (min_keys > isam->s->base.keys)
+      min_keys= isam->s->base.keys;
     for (i=0; i < key_parts; i++)
       m_info->rec_per_key_part[i]+= (isam->s->state.rec_per_key_part[i] /
                                      m_info->tables);
@@ -138,7 +144,7 @@ MYRG_INFO *myrg_open(const char *name, i
     my_errno=HA_ERR_RECORD_FILE_FULL;
     goto err;
   }
-  m_info->keys= files ? isam->s->base.keys : 0;
+  m_info->keys= min_keys;
   bzero((char*) &m_info->by_key,sizeof(m_info->by_key));
 
   /* this works ok if the table list is empty */

--- 1.51/scripts/mysqlhotcopy.sh	2006-10-02 18:37:47 -06:00
+++ 1.52/scripts/mysqlhotcopy.sh	2006-10-02 18:37:47 -06:00
@@ -263,6 +263,7 @@ my $hc_locks = "";
 my $hc_tables = "";
 my $num_tables = 0;
 my $num_files = 0;
+my $raid_dir_regex = '[A-Za-z0-9]{2}';
 
 foreach my $rdb ( @db_desc ) {
     my $db = $rdb->{src};
@@ -294,7 +295,7 @@ foreach my $rdb ( @db_desc ) {
     my @raid_dir = ();
 
     while ( defined( my $name = readdir DBDIR ) ) {
-	if ( $name =~ /^\d\d$/ && -d "$db_dir/$name" ) {
+	if ( $name =~ /^$raid_dir_regex$/ && -d "$db_dir/$name" ) {
 	    push @raid_dir, $name;
 	}
 	else {
@@ -602,7 +603,7 @@ sub copy_files {
 	# add recursive option for scp
 	$cp.= " -r" if $^O =~ /m^(solaris|linux|freebsd|darwin)$/ && $method =~
/^scp\b/;
 
-	my @non_raid = map { "'$_'" } grep { ! m:/\d{2}/[^/]+$: } @$files;
+	my @non_raid = map { "'$_'" } grep { ! m:/$raid_dir_regex/[^/]+$: } @$files;
 
 	# add files to copy and the destination directory
 	safe_system( $cp, @non_raid, "'$target'" ) if (@non_raid);
@@ -810,7 +811,7 @@ sub get_raid_dirs {
 
     my %dirs = ();
     foreach my $f ( @$r_files ) {
-	if ( $f =~ m:^(\d\d)/: ) {
+	if ( $f =~ m:^($raid_dir_regex)/: ) {
 	    $dirs{$1} = 1;
 	}
     }

--- 1.70.33.1/sql/share/english/errmsg.txt	2006-10-02 18:37:47 -06:00
+++ 1.141/BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e	2006-10-02 18:37:47 -06:00
@@ -279,12 +279,12 @@ character-set=latin1
 "%d line(s) were cut by GROUP_CONCAT()",
 "Row %ld doesn't contain data for all columns",
 "Row %ld was truncated; it contained more data than there were input columns",
-"Data truncated; NULL supplied to NOT NULL column '%s' at row %ld",
-"Data truncated; out of range for column '%s' at row %ld",
+"Column set to default value; NULL supplied to NOT NULL column '%s' at row %ld",
+"Out of range value adjusted for column '%s' at row %ld",
 "Data truncated for column '%s' at row %ld",
 "Using storage engine %s for table '%s'",
 "Illegal mix of collations (%s,%s) and (%s,%s) for operation '%s'",
-"Can't drop one or more of the requested users",
+"Cannot drop one or more of the requested users",
 "Can't revoke all privileges, grant for one or more of the requested users",
 "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'",
 "Illegal mix of collations for operation '%s'",
@@ -319,3 +319,97 @@ character-set=latin1
 "Invalid %s character string: '%.64s'",
 "Result of %s() was larger than max_allowed_packet (%ld) - truncated"
 "Conflicting declarations: '%s%s' and '%s%s'",
+"Can't create a %s from within another stored routine"
+"%s %s already exists"
+"%s %s does not exist"
+"Failed to DROP %s %s"
+"Failed to CREATE %s %s"
+"%s with no matching label: %s"
+"Redefining label %s"
+"End-label %s without match"
+"Referring to uninitialized variable %s"
+"SELECT in a stored procedure must have INTO"
+"RETURN is only allowed in a FUNCTION"
+"Statements like SELECT, INSERT, UPDATE (and others) are not allowed in a FUNCTION"
+"The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been
ignored"
+"The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been
translated to SET SQL_LOG_BIN"
+"Query execution was interrupted"
+"Incorrect number of arguments for %s %s; expected %u, got %u"
+"Undefined CONDITION: %s"
+"No RETURN found in FUNCTION %s"
+"FUNCTION %s ended without RETURN"
+"Cursor statement must be a SELECT"
+"Cursor SELECT must not have INTO"
+"Undefined CURSOR: %s"
+"Cursor is already open"
+"Cursor is not open"
+"Undeclared variable: %s"
+"Incorrect number of FETCH variables"
+"No data to FETCH"
+"Duplicate parameter: %s"
+"Duplicate variable: %s"
+"Duplicate condition: %s"
+"Duplicate cursor: %s"
+"Failed to ALTER %s %s"
+"Subselect value not supported"
+"USE is not allowed in a stored procedure"
+"Variable or condition declaration after cursor or handler declaration"
+"Cursor declaration after handler declaration"
+"Case not found for CASE statement"
+"Configuration file '%-.64s' is too big"
+"Malformed file type header in file '%-.64s'"
+"Unexpected end of file while parsing comment '%-.64s'"
+"Error while parsing parameter '%-.64s' (line: '%-.64s')"
+"Unexpected end of file while skipping unknown parameter '%-.64s'"
+"EXPLAIN/SHOW can not be issued; lacking privileges for underlying table"
+"File '%-.64s' has unknown type '%-.64s' in its header"
+"'%-.64s.%-.64s' is not %s"
+"Column '%-.64s' is not updatable"
+"View's SELECT contains a subquery in the FROM clause"
+"View's SELECT contains a '%s' clause"
+"View's SELECT contains a variable or parameter" 
+"View's SELECT contains a temporary table '%-.64s'"
+"View's SELECT and view's field list have different column counts"
+"View merge algorithm can't be used here for now (assumed undefined algorithm)"
+"View being updated does not have complete key of underlying table in it"
+"View '%-.64s.%-.64s' references invalid table(s) or column(s)"
+"Can't drop a %s from within another stored routine"
+"GOTO is not allowed in a stored procedure handler"
+"Trigger already exists"
+"Trigger does not exist"
+"Trigger's '%-.64s' is view or temporary table"
+"Updating of %s row is not allowed in %strigger"
+"There is no %s row in %s trigger"
+"Field '%-.64s' doesn't have a default value",
+"Division by 0",
+"Incorrect %-.32s value: '%-.128s' for column '%.64s' at row %ld",
+"Illegal %s '%-.64s' value found during parsing",
+"CHECK OPTION on non-updatable view '%-.64s.%-.64s'"
+"CHECK OPTION failed '%-.64s.%-.64s'"
+"Access denied; you are not the procedure/function definer of '%s'"
+"Failed purging old relay logs: %s"
+"Password hash should be a %d-digit hexadecimal number"
+"Target log not found in binlog index"
+"I/O error reading log index file"
+"Server configuration does not permit binlog purge"
+"Failed on fseek()"
+"Fatal error during log purge"
+"A purgeable log is in use, will not purge"
+"Unknown error during log purge"
+"Failed initializing relay log position: %s"
+"You are not using binary logging"
+"The '%-.64s' syntax is reserved for purposes internal to the MySQL server"
+"WSAStartup Failed"
+"Can't handle procedures with differents groups yet"
+"Select must have a group with this procedure"
+"Can't use ORDER clause with this procedure"
+"Binary logging and replication forbid changing the global server %s"
+"Can't map file: %-.64s, errno: %d"
+"Wrong magic in %-.64s"
+"Prepared statement contains too many placeholders"
+"Key part '%-.64s' length cannot be 0"
+"View text checksum failed"
+"Can not modify more than one base table through a join view '%-.64s.%-.64s'"
+"Can not insert into join view '%-.64s.%-.64s' without fields list"
+"Can not delete from join view '%-.64s.%-.64s'"
+"Operation %s failed for %.256s",

--- 1.233/sql/table.cc	2006-10-02 18:37:48 -06:00
+++ 1.234/sql/table.cc	2006-10-02 18:37:48 -06:00
@@ -963,7 +963,7 @@ int openfrm(THD *thd, const char *name, 
 
   delete crypted;
   *root_ptr= old_root;
-  if (! error_reported)
+  if (!error_reported)
     frm_error(error,outparam,name,ME_ERROR+ME_WAITTANG, errarg);
   delete outparam->file;
   outparam->file=0;				// For easier errorchecking

--- 1.43/mysql-test/t/merge.test	2006-10-02 18:37:48 -06:00
+++ 1.44/mysql-test/t/merge.test	2006-10-02 18:37:49 -06:00
@@ -378,6 +378,31 @@ select * from t3;
 check table t1, t2;
 drop table t1, t2, t3;
 
+#
+# BUG#21617 - crash when selecting from merge table with inconsistent
+# indexes
+#
+CREATE TABLE t1(a INT);
+INSERT INTO t1 VALUES(2),(1);
+CREATE TABLE t2(a INT, KEY(a)) ENGINE=MERGE UNION=(t1);
+--error 1030
+SELECT * FROM t2 WHERE a=2;
+DROP TABLE t1, t2;
+
+#
+# BUG#10974 - No error message if merge table based on union of innodb,
+# memory
+#
+CREATE TABLE t1(a INT) ENGINE=MEMORY;
+CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t1);
+--error 1168
+SELECT * FROM t2;
+DROP TABLE t1, t2;
+CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t3);
+--error 1168
+SELECT * FROM t2;
+DROP TABLE t2;
+
 # End of 4.1 tests
 
 #

--- 1.12/myisammrg/myrg_queue.c	2006-10-02 18:37:50 -06:00
+++ 1.13/myisammrg/myrg_queue.c	2006-10-02 18:37:50 -06:00
@@ -65,6 +65,8 @@ int _myrg_init_queue(MYRG_INFO *info,int
 	error=my_errno;
     }
   }
+  else
+    my_errno= error= HA_ERR_WRONG_INDEX;
   return error;
 }
 
Thread
bk commit into 5.0 tree (tsmith:1.2304)tim3 Oct