Commit 9b4306b8 authored by anozdrin/alik@quad's avatar anozdrin/alik@quad

Merge quad.:/mnt/raid/alik/MySQL/devel/5.0-rt

into  quad.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
parents 917c7952 1bf737a1
......@@ -512,14 +512,17 @@ static int process_all_tables_in_db(char *database)
{
MYSQL_RES *res;
MYSQL_ROW row;
uint num_columns;
LINT_INIT(res);
if (use_db(database))
return 1;
if (mysql_query(sock, "SHOW TABLE STATUS") ||
if (mysql_query(sock, "SHOW /*!50002 FULL*/ TABLES") ||
!((res= mysql_store_result(sock))))
return 1;
num_columns= mysql_num_fields(res);
if (opt_all_in_1)
{
/*
......@@ -542,12 +545,11 @@ static int process_all_tables_in_db(char *database)
}
for (end = tables + 1; (row = mysql_fetch_row(res)) ;)
{
/* Skip tables with an engine of NULL (probably a view). */
if (row[1])
{
end= fix_table_name(end, row[0]);
*end++= ',';
}
if ((num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
continue;
end= fix_table_name(end, row[0]);
*end++= ',';
}
*--end = 0;
if (tot_length)
......@@ -563,6 +565,9 @@ static int process_all_tables_in_db(char *database)
*/
if (row[1] || what_to_do == DO_UPGRADE)
{
if ((num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
continue;
handle_request_for_tables(row[0], fixed_name_length(row[0]));
}
}
......
......@@ -799,6 +799,8 @@ AC_CHECK_FUNC(p2open, , AC_CHECK_LIB(gen, p2open))
AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
# See if we need a library for address lookup.
AC_SEARCH_LIBS(inet_aton, [socket nsl resolv])
# For the sched_yield() function on Solaris
AC_CHECK_FUNC(sched_yield, , AC_CHECK_LIB(posix4, sched_yield))
......
......@@ -116,11 +116,13 @@ int main(int argc, char **argv)
while (argc--)
{
struct in_addr addr;
ip = *argv++;
if (my_isdigit(&my_charset_latin1,ip[0]))
/* Not compatible with IPv6! Probably should use getnameinfo(). */
if (inet_aton(ip, &addr) != 0)
{
taddr = inet_addr(ip);
taddr= addr.s_addr;
if (taddr == htonl(INADDR_BROADCAST))
{
puts("Broadcast");
......
......@@ -62,6 +62,17 @@ create table `t 1`(a int);
test.t 1 OK
test.t`1 OK
drop table `t``1`, `t 1`;
create database d_bug25347;
use d_bug25347;
create table t_bug25347 (a int);
create view v_bug25347 as select * from t_bug25347;
flush tables;
removing and creating
d_bug25347.t_bug25347 OK
drop view v_bug25347;
drop table t_bug25347;
drop database d_bug25347;
use test;
End of 5.0 tests
create table t1(a int);
create view v1 as select * from t1;
......
......@@ -220,7 +220,7 @@ select * from information_schema.global_variables where variable_name like 'myis
VARIABLE_NAME VARIABLE_VALUE
MYISAM_MAX_SORT_FILE_SIZE 1048576
set GLOBAL myisam_max_sort_file_size=default;
show variables like 'myisam_max_sort_file_size';
show global variables like 'myisam_max_sort_file_size';
Variable_name Value
myisam_max_sort_file_size FILE_SIZE
select * from information_schema.session_variables where variable_name like 'myisam_max_sort_file_size';
......
......@@ -46,6 +46,24 @@ create table `t 1`(a int);
--exec $MYSQL_CHECK --databases test
drop table `t``1`, `t 1`;
#
# Bug#25347: mysqlcheck -A -r doesn't repair table marked as crashed
#
create database d_bug25347;
use d_bug25347;
create table t_bug25347 (a int);
create view v_bug25347 as select * from t_bug25347;
flush tables;
--echo removing and creating
--remove_file $MYSQLTEST_VARDIR/master-data/d_bug25347/t_bug25347.MYI
--write_file $MYSQLTEST_VARDIR/master-data/d_bug25347/t_bug25347.MYI
EOF
--exec $MYSQL_CHECK --repair --databases --use-frm d_bug25347
drop view v_bug25347;
drop table t_bug25347;
drop database d_bug25347;
use test;
--echo End of 5.0 tests
#
......
......@@ -120,8 +120,7 @@ static int check_max_delayed_threads(THD *thd, set_var *var);
static void fix_thd_mem_root(THD *thd, enum_var_type type);
static void fix_trans_mem_root(THD *thd, enum_var_type type);
static void fix_server_id(THD *thd, enum_var_type type);
static ulonglong fix_unsigned(THD *thd, ulonglong num,
const struct my_option *option_limits);
static ulonglong fix_unsigned(THD *, ulonglong, const struct my_option *);
static bool get_unsigned(THD *thd, set_var *var);
static void throw_bounds_warning(THD *thd, const char *name, ulonglong num);
static KEY_CACHE *create_key_cache(const char *name, uint length);
......@@ -1178,8 +1177,10 @@ bool sys_var_long_ptr_global::update(THD *thd, set_var *var)
void sys_var_long_ptr_global::set_default(THD *thd, enum_var_type type)
{
bool not_used;
pthread_mutex_lock(guard);
*value= (ulong) option_limits->def_value;
*value= (ulong) getopt_ull_limit_value((ulong) option_limits->def_value,
option_limits, &not_used);
pthread_mutex_unlock(guard);
}
......@@ -1199,8 +1200,10 @@ bool sys_var_ulonglong_ptr::update(THD *thd, set_var *var)
void sys_var_ulonglong_ptr::set_default(THD *thd, enum_var_type type)
{
bool not_used;
pthread_mutex_lock(&LOCK_global_system_variables);
*value= (ulonglong) option_limits->def_value;
*value= getopt_ull_limit_value((ulonglong) option_limits->def_value,
option_limits, &not_used);
pthread_mutex_unlock(&LOCK_global_system_variables);
}
......@@ -1277,8 +1280,11 @@ void sys_var_thd_ulong::set_default(THD *thd, enum_var_type type)
{
if (type == OPT_GLOBAL)
{
bool not_used;
/* We will not come here if option_limits is not set */
global_system_variables.*offset= (ulong) option_limits->def_value;
global_system_variables.*offset=
(ulong) getopt_ull_limit_value((ulong) option_limits->def_value,
option_limits, &not_used);
}
else
thd->variables.*offset= global_system_variables.*offset;
......@@ -1321,9 +1327,12 @@ void sys_var_thd_ha_rows::set_default(THD *thd, enum_var_type type)
{
if (type == OPT_GLOBAL)
{
bool not_used;
/* We will not come here if option_limits is not set */
pthread_mutex_lock(&LOCK_global_system_variables);
global_system_variables.*offset= (ha_rows) option_limits->def_value;
global_system_variables.*offset=
(ha_rows) getopt_ull_limit_value((ha_rows) option_limits->def_value,
option_limits, &not_used);
pthread_mutex_unlock(&LOCK_global_system_variables);
}
else
......@@ -1370,8 +1379,11 @@ void sys_var_thd_ulonglong::set_default(THD *thd, enum_var_type type)
{
if (type == OPT_GLOBAL)
{
bool not_used;
pthread_mutex_lock(&LOCK_global_system_variables);
global_system_variables.*offset= (ulonglong) option_limits->def_value;
global_system_variables.*offset=
getopt_ull_limit_value((ulonglong) option_limits->def_value,
option_limits, &not_used);
pthread_mutex_unlock(&LOCK_global_system_variables);
}
else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment