mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
misc cleanup
This commit is contained in:
@ -46872,6 +46872,8 @@ Added @code{slave-skip-errors} option
|
||||
Added statistics variables for all MySQL commands. (@code{SHOW STATUS} is
|
||||
now much longer).
|
||||
@item
|
||||
Fixed default values for InnoDB tables.
|
||||
@item
|
||||
Fixed that @code{GROUP BY expr DESC} works.
|
||||
@item
|
||||
Fixed bug when using @code{t1 LEFT JOIN t2 ON t2.key=constant}.
|
||||
|
@ -27,7 +27,8 @@ typedef struct st_bitmap
|
||||
uchar *bitmap;
|
||||
uint bitmap_size;
|
||||
my_bool thread_safe; /* set if several threads access the bitmap */
|
||||
/* mutex will be acquired for the duration of each bitmap operation if
|
||||
/*
|
||||
mutex will be acquired for the duration of each bitmap operation if
|
||||
thread_safe flag is set. Otherwise, we optimize by not acquiring the
|
||||
mutex
|
||||
*/
|
||||
|
@ -1,5 +1,7 @@
|
||||
get_lock("lock",2)
|
||||
1
|
||||
release_lock("lock")
|
||||
0
|
||||
1
|
||||
get_lock("lock",3)
|
||||
1
|
||||
n
|
||||
|
@ -4,6 +4,7 @@ create table t1(n int);
|
||||
insert into t1 values(get_lock("lock",2));
|
||||
dirty_close master;
|
||||
connection master1;
|
||||
select get_lock("lock",2);
|
||||
select release_lock("lock");
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
|
@ -51,7 +51,7 @@ my_bool bitmap_init(MY_BITMAP *map, uint bitmap_size, my_bool thread_safe)
|
||||
return 1;
|
||||
dbug_assert(bitmap_size != ~(uint) 0);
|
||||
#ifdef THREAD
|
||||
map->thread_safe = thread_safe;
|
||||
if ((map->thread_safe = thread_safe))
|
||||
pthread_mutex_init(&map->mutex, MY_MUTEX_INIT_FAST);
|
||||
#endif
|
||||
map->bitmap_size=bitmap_size;
|
||||
@ -65,6 +65,7 @@ void bitmap_free(MY_BITMAP *map)
|
||||
my_free((char*) map->bitmap, MYF(0));
|
||||
map->bitmap=0;
|
||||
#ifdef THREAD
|
||||
if (map->thread_safe)
|
||||
pthread_mutex_destroy(&map->mutex);
|
||||
#endif
|
||||
}
|
||||
|
33
sql/slave.cc
33
sql/slave.cc
@ -78,8 +78,7 @@ static byte* get_table_key(TABLE_RULE_ENT* e, uint* len,
|
||||
/* called from get_options() in mysqld.cc on start-up */
|
||||
void init_slave_skip_errors(char* arg)
|
||||
{
|
||||
char* p,*end;
|
||||
int err_code = 0;
|
||||
char* p;
|
||||
my_bool last_was_digit = 0;
|
||||
if (bitmap_init(&slave_error_mask,MAX_SLAVE_ERROR,0))
|
||||
{
|
||||
@ -89,34 +88,20 @@ void init_slave_skip_errors(char* arg)
|
||||
use_slave_mask = 1;
|
||||
for (;isspace(*arg);++arg)
|
||||
/* empty */;
|
||||
/* force first three chars to lower case */
|
||||
for (p = arg, end = arg + 3; *p && p < end; ++p)
|
||||
*p = tolower(*p);
|
||||
if (!memcmp(arg,"all",3))
|
||||
if (!my_casecmp(arg,"all",3))
|
||||
{
|
||||
bitmap_set_all(&slave_error_mask);
|
||||
return;
|
||||
}
|
||||
for (p = arg, end = strend(arg); p < end; ++p)
|
||||
{
|
||||
int digit = *p - '0';
|
||||
if (digit >= 0 && digit < 10) /* found real digit */
|
||||
{
|
||||
err_code = err_code * 10 + digit;
|
||||
last_was_digit = 1;
|
||||
}
|
||||
else /* delimiter */
|
||||
{
|
||||
if (last_was_digit)
|
||||
for (p= arg ; *p; )
|
||||
{
|
||||
long err_code;
|
||||
if (!(p= str2int(p, 10, 0, LONG_MAX, &err_code)))
|
||||
break;
|
||||
if (err_code < MAX_SLAVE_ERROR)
|
||||
{
|
||||
bitmap_set_bit(&slave_error_mask,err_code);
|
||||
}
|
||||
err_code = 0;
|
||||
last_was_digit = 0;
|
||||
}
|
||||
}
|
||||
bitmap_set_bit(&slave_error_mask,(uint)err_code);
|
||||
while (!isdigit(*p) && *p)
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user