List:Internals« Previous MessageNext Message »
From:Sergei Golubchik Date:September 27 2005 8:11pm
Subject:bk commit into 5.0 tree (serg:1.1996)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of serg. When serg 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.1996 05/09/27 20:11:09 serg@stripped +12 -0
  CHECKSUM TABLE now allows concurrent inserts

  sql/sql_table.cc
    1.274 05/09/27 20:10:56 serg@stripped +1 -1
    CHECKSUM TABLE now allows concurrent inserts

  sql/ha_myisam.cc
    1.160 05/09/27 20:10:55 serg@stripped +1 -1
    info->s->state.checksum moved to info->state->checksum

  mysql-test/r/system_mysql_db.result
    1.28 05/09/27 20:10:55 serg@stripped +1 -1
    result fixed

  myisam/myisampack.c
    1.48 05/09/27 20:10:55 serg@stripped +2 -2
    info->s->state.checksum moved to info->state->checksum

  myisam/myisamdef.h
    1.80 05/09/27 20:10:55 serg@stripped +1 -1
    info->s->state.checksum moved to info->state->checksum

  myisam/myisamchk.c
    1.119 05/09/27 20:10:55 serg@stripped +2 -2
    info->s->state.checksum moved to info->state->checksum

  myisam/mi_write.c
    1.54 05/09/27 20:10:55 serg@stripped +1 -1
    info->s->state.checksum moved to info->state->checksum

  myisam/mi_update.c
    1.19 05/09/27 20:10:55 serg@stripped +1 -1
    info->s->state.checksum moved to info->state->checksum

  myisam/mi_open.c
    1.94 05/09/27 20:10:55 serg@stripped +2 -2
    info->s->state.checksum moved to info->state->checksum

  myisam/mi_delete_all.c
    1.16 05/09/27 20:10:55 serg@stripped +1 -1
    info->s->state.checksum moved to info->state->checksum

  myisam/mi_delete.c
    1.35 05/09/27 20:10:55 serg@stripped +1 -1
    info->s->state.checksum moved to info->state->checksum

  myisam/mi_check.c
    1.138 05/09/27 20:10:54 serg@stripped +5 -5
    info->s->state.checksum moved to info->state->checksum

# 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:	serg
# Host:	serg.mylan
# Root:	/usr/home/serg/Abk/mysql-5.0

--- 1.137/myisam/mi_check.c	Sat Sep 24 00:35:26 2005
+++ 1.138/myisam/mi_check.c	Tue Sep 27 20:10:54 2005
@@ -1092,7 +1092,7 @@ int chk_data_link(MI_CHECK *param, MI_IN
 			 "Keypointers and record positions doesn't match");
     error=1;
   }
-  else if (param->glob_crc != info->s->state.checksum &&
+  else if (param->glob_crc != info->state->checksum &&
 	   (info->s->options &
 	    (HA_OPTION_CHECKSUM | HA_OPTION_COMPRESS_RECORD)))
   {
@@ -1388,7 +1388,7 @@ int mi_repair(MI_CHECK *param, register 
     info->state->data_file_length=sort_param.max_pos;
   }
   if (param->testflag & T_CALC_CHECKSUM)
-    share->state.checksum=param->glob_crc;
+    info->state->checksum=param->glob_crc;
 
   if (!(param->testflag & T_SILENT))
   {
@@ -2156,7 +2156,7 @@ int mi_repair_by_sort(MI_CHECK *param, r
 			       my_errno);
   }
   if (param->testflag & T_CALC_CHECKSUM)
-    share->state.checksum=param->glob_crc;
+    info->state->checksum=param->glob_crc;
 
   if (my_chsize(share->kfile,info->state->key_file_length,0,MYF(0)))
     mi_check_print_warning(param,
@@ -2577,7 +2577,7 @@ int mi_repair_parallel(MI_CHECK *param, 
 			       my_errno);
   }
   if (param->testflag & T_CALC_CHECKSUM)
-    share->state.checksum=param->glob_crc;
+    info->state->checksum=param->glob_crc;
 
   if (my_chsize(share->kfile,info->state->key_file_length,0,MYF(0)))
     mi_check_print_warning(param,
@@ -3808,7 +3808,7 @@ int recreate_table(MI_CHECK *param, MI_I
     (*org_info)->s->state.create_time=share.state.create_time;
   (*org_info)->s->state.unique=(*org_info)->this_unique=
     share.state.unique;
-  (*org_info)->s->state.checksum=share.state.checksum;
+  (*org_info)->state->checksum=info.state->checksum;
   (*org_info)->state->del=info.state->del;
   (*org_info)->s->state.dellink=share.state.dellink;
   (*org_info)->state->empty=info.state->empty;

--- 1.34/myisam/mi_delete.c	Tue Jul 19 14:13:37 2005
+++ 1.35/myisam/mi_delete.c	Tue Sep 27 20:10:55 2005
@@ -93,7 +93,7 @@ int mi_delete(MI_INFO *info,const byte *
 
   if ((*share->delete_record)(info))
     goto err;				/* Remove record from database */
-  info->s->state.checksum-=info->checksum;
+  info->state->checksum-=info->checksum;
 
   info->update= HA_STATE_CHANGED+HA_STATE_DELETED+HA_STATE_ROW_CHANGED;
   info->state->records--;

--- 1.15/myisam/mi_delete_all.c	Thu Nov 20 21:06:18 2003
+++ 1.16/myisam/mi_delete_all.c	Tue Sep 27 20:10:55 2005
@@ -41,7 +41,7 @@ int mi_delete_all_rows(MI_INFO *info)
   info->state->key_file_length=share->base.keystart;
   info->state->data_file_length=0;
   info->state->empty=info->state->key_empty=0;
-  state->checksum=0;
+  info->state->checksum=0;
 
   for (i=share->base.max_key_block_length/MI_MIN_KEY_BLOCK_LENGTH ; i-- ; )
     state->key_del[i]= HA_OFFSET_ERROR;

--- 1.93/myisam/mi_open.c	Tue Jul 19 14:13:37 2005
+++ 1.94/myisam/mi_open.c	Tue Sep 27 20:10:55 2005
@@ -822,7 +822,7 @@ uint mi_state_info_write(File file, MI_S
   mi_sizestore(ptr,state->state.empty);		ptr +=8;
   mi_sizestore(ptr,state->state.key_empty);	ptr +=8;
   mi_int8store(ptr,state->auto_increment);	ptr +=8;
-  mi_int8store(ptr,(ulonglong) state->checksum);ptr +=8;
+  mi_int8store(ptr,(ulonglong) state->state.checksum);ptr +=8;
   mi_int4store(ptr,state->process);		ptr +=4;
   mi_int4store(ptr,state->unique);		ptr +=4;
   mi_int4store(ptr,state->status);		ptr +=4;
@@ -884,7 +884,7 @@ char *mi_state_info_read(uchar *ptr, MI_
   state->state.empty	= mi_sizekorr(ptr);	ptr +=8;
   state->state.key_empty= mi_sizekorr(ptr);	ptr +=8;
   state->auto_increment=mi_uint8korr(ptr);	ptr +=8;
-  state->checksum=(ha_checksum) mi_uint8korr(ptr);	ptr +=8;
+  state->state.checksum=(ha_checksum) mi_uint8korr(ptr);	ptr +=8;
   state->process= mi_uint4korr(ptr);		ptr +=4;
   state->unique = mi_uint4korr(ptr);		ptr +=4;
   state->status = mi_uint4korr(ptr);		ptr +=4;

--- 1.18/myisam/mi_update.c	Tue Jul 19 14:13:37 2005
+++ 1.19/myisam/mi_update.c	Tue Sep 27 20:10:55 2005
@@ -162,7 +162,7 @@ int mi_update(register MI_INFO *info, co
   if (auto_key_changed)
     update_auto_increment(info,newrec);
   if (share->calc_checksum)
-    share->state.checksum+=(info->checksum - old_checksum);
+    info->state->checksum+=(info->checksum - old_checksum);
 
   info->update= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED | HA_STATE_AKTIV |
 		 key_changed);

--- 1.53/myisam/mi_write.c	Tue Jul 19 14:13:37 2005
+++ 1.54/myisam/mi_write.c	Tue Sep 27 20:10:55 2005
@@ -142,7 +142,7 @@ int mi_write(MI_INFO *info, byte *record
   {
     if ((*share->write_record)(info,record))
       goto err;
-    share->state.checksum+=info->checksum;
+    info->state->checksum+=info->checksum;
   }
   if (share->base.auto_key)
     update_auto_increment(info,record);

--- 1.118/myisam/myisamchk.c	Sat Sep 24 00:35:27 2005
+++ 1.119/myisam/myisamchk.c	Tue Sep 27 20:10:55 2005
@@ -1261,7 +1261,7 @@ static void descript(MI_CHECK *param, re
 	     share->base.raid_chunksize);
     }
     if (share->options & (HA_OPTION_CHECKSUM | HA_OPTION_COMPRESS_RECORD))
-      printf("Checksum:  %23s\n",llstr(info->s->state.checksum,llbuff));
+      printf("Checksum:  %23s\n",llstr(info->state->checksum,llbuff));
 ;
     if (share->options & HA_OPTION_DELAY_KEY_WRITE)
       printf("Keys are only flushed at close\n");
@@ -1576,7 +1576,7 @@ static int mi_sort_records(MI_CHECK *par
   old_record_count=info->state->records;
   info->state->records=0;
   if (sort_info.new_data_file_type != COMPRESSED_RECORD)
-    share->state.checksum=0;
+    info->state->checksum=0;
 
   if (sort_record_index(&sort_param,info,keyinfo,share->state.key_root[sort_key],
 			temp_buff, sort_key,new_file,update_index) ||

--- 1.79/myisam/myisamdef.h	Fri Sep 23 17:27:00 2005
+++ 1.80/myisam/myisamdef.h	Tue Sep 27 20:10:55 2005
@@ -38,6 +38,7 @@ typedef struct st_mi_status_info
   my_off_t key_empty;			/* lost space in indexfile */
   my_off_t key_file_length;
   my_off_t data_file_length;
+  ha_checksum checksum;
 } MI_STATUS_INFO;
 
 typedef struct st_mi_state_info
@@ -75,7 +76,6 @@ typedef struct st_mi_state_info
   ulong sec_index_changed;		/* Updated when new sec_index */
   ulong sec_index_used;			/* which extra index are in use */
   ulonglong key_map;			/* Which keys are in use */
-  ha_checksum checksum;
   ulong version;			/* timestamp of create */
   time_t create_time;			/* Time when created database */
   time_t recover_time;			/* Time for last recover */

--- 1.47/myisam/myisampack.c	Mon Sep  5 15:28:50 2005
+++ 1.48/myisam/myisampack.c	Tue Sep 27 20:10:55 2005
@@ -2965,7 +2965,7 @@ static int save_state(MI_INFO *isam_file
     share->state.key_root[key]= HA_OFFSET_ERROR;
   for (key=0 ; key < share->state.header.max_block_size ; key++)
     share->state.key_del[key]= HA_OFFSET_ERROR;
-  share->state.checksum=crc;		/* Save crc here */
+  isam_file->state->checksum=crc;       /* Save crc here */
   share->changed=1;			/* Force write of header */
   share->state.open_count=0;
   share->global_changed=0;
@@ -3001,7 +3001,7 @@ static int save_state_mrg(File file,PACK
   state.dellink= HA_OFFSET_ERROR;
   state.version=(ulong) time((time_t*) 0);
   mi_clear_all_keys_active(state.key_map);
-  state.checksum=crc;
+  state.state.checksum=crc;
   if (isam_file->s->base.keys)
     isamchk_neaded=1;
   state.changed=STATE_CHANGED | STATE_NOT_ANALYZED; /* Force check of table */

--- 1.159/sql/ha_myisam.cc	Sat Sep 24 00:35:27 2005
+++ 1.160/sql/ha_myisam.cc	Tue Sep 27 20:10:55 2005
@@ -1703,6 +1703,6 @@ int ha_myisam::ft_read(byte * buf)
 
 uint ha_myisam::checksum() const
 {
-  return (uint)file->s->state.checksum;
+  return (uint)file->state->checksum;
 }
 

--- 1.273/sql/sql_table.cc	Thu Sep 15 01:57:52 2005
+++ 1.274/sql/sql_table.cc	Tue Sep 27 20:10:56 2005
@@ -4074,7 +4074,7 @@ bool mysql_checksum_table(THD *thd, TABL
 
     strxmov(table_name, table->db ,".", table->table_name, NullS);
 
-    t= table->table= open_ltable(thd, table, TL_READ_NO_INSERT);
+    t= table->table= open_ltable(thd, table, TL_READ);
     thd->clear_error();			// these errors shouldn't get client
 
     protocol->prepare_for_resend();

--- 1.27/mysql-test/r/system_mysql_db.result	Wed Jul 27 03:08:44 2005
+++ 1.28/mysql-test/r/system_mysql_db.result	Tue Sep 27 20:10:55 2005
@@ -73,7 +73,7 @@ Table	Create Table
 user	CREATE TABLE `user` (
   `Host` char(60) collate utf8_bin NOT NULL default '',
   `User` char(16) collate utf8_bin NOT NULL default '',
-  `Password` char(41) collate utf8_bin NOT NULL default '',
+  `Password` binary(41) NOT NULL default '',
   `Select_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
   `Insert_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
   `Update_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
Thread
bk commit into 5.0 tree (serg:1.1996)Sergei Golubchik27 Sep