Commit d218ebcc authored by monty@donna.mysql.com's avatar monty@donna.mysql.com
Browse files

Added locks needed for Innobase

Fixed mutex problem when doing automatic repair of MyISAM tables
parent ece13efd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -41442,6 +41442,9 @@ not yet 100 % confident in this code.
@appendixsubsec Changes in release 3.23.34
@itemize @bullet
@item
Fixed problem in automatic repair that could let some threads in state
@code{Waiting for table}.
@item
@code{SHOW CREATE TABLE} now dumps the @code{UNION()} for @code{MERGE} tables.
@item
Fixed bug when replicating timestamps.
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ extern ulong locks_immediate,locks_waited ;
enum thr_lock_type { TL_IGNORE=-1,
		     TL_UNLOCK,			/* UNLOCK ANY LOCK */
		     TL_READ,			/* Read lock */
		     TL_READ_WITH_SHARED_LOCKS,
		     /* High prior. than TL_WRITE. Allow concurrent insert */
		     TL_READ_HIGH_PRIORITY,
		     /* READ, Don't allow concurrent insert */
+37 −0
Original line number Diff line number Diff line
a
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
145
146
place_id	shows
1	1
+10 −0
Original line number Diff line number Diff line
@@ -7,6 +7,16 @@ create table t1 (a int auto_increment , primary key (a));
insert into t1 values (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL); 
update t1 set a=a+10 where a > 34;
update t1 set a=a+100 where a > 0;

# Some strange updates to test some otherwise unused code
update t1 set a=a+100 where a=1 and a=2;
--error 1054
update t1 set a=b+100 where a=1 and a=2; 
--error 1054
update t1 set a=b+100 where c=1 and a=2; 
--error 1054
update t1 set d=a+100 where a=1;
select * from t1;
drop table t1;

CREATE TABLE t1
+11 −3
Original line number Diff line number Diff line
@@ -52,11 +52,17 @@ my_bool set_changeable_var(my_string str,CHANGEABLE_VAR *vars)
      fprintf(stderr,"Can't find '=' in expression '%s' to option -O\n",str);
    else
    {
      uint length=(uint) (end-str),found_count=0;
      CHANGEABLE_VAR *var,*found;
      uint length,found_count=0;
      CHANGEABLE_VAR *var,*found, *var_end;
      const char *name;
      long num;

      /* Skip end space from variable */
      for (var_end=end ; end > str && is_space(end[-1]) ; end--) ;
      length=(uint) (var_end-str);
      /* Skip start space from argument */
      for (end++ ; is_space(*end) ; end++) ;

      for (var=vars,found=0 ; (name=var->name) ; var++)
      {
	if (!my_casecmp(name,str,length))
@@ -80,11 +86,13 @@ my_bool set_changeable_var(my_string str,CHANGEABLE_VAR *vars)
	DBUG_RETURN(1);
      }

      num=(long) atol(end+1); endchar=strend(end+1)[-1];
      num=(long) atol(end); endchar=strend(end)[-1];
      if (endchar == 'k' || endchar == 'K')
	num*=1024;
      else if (endchar == 'm' || endchar == 'M')
	num*=1024L*1024L;
      else if (endchar == 'g' || endchar == 'G')
	num*=1024L*1024L*1024L;
      else if (!isdigit(endchar))
      {
	fprintf(stderr,"Unknown prefix used for variable value '%s'\n",str);
Loading