diff options
-rwxr-xr-x | BUILD/compile-pentium-max | 2 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | include/my_pthread.h | 5 | ||||
-rw-r--r-- | innobase/include/data0data.ic | 2 | ||||
-rw-r--r-- | mysql-test/r/raid.result | 1 | ||||
-rw-r--r-- | mysql-test/t/raid.test | 1 | ||||
-rw-r--r-- | sql/sql_db.cc | 7 | ||||
-rw-r--r-- | sql/sql_select.cc | 17 | ||||
-rw-r--r-- | sql/sql_udf.cc | 11 |
9 files changed, 33 insertions, 15 deletions
diff --git a/BUILD/compile-pentium-max b/BUILD/compile-pentium-max index d41274d4f5e..34a497807df 100755 --- a/BUILD/compile-pentium-max +++ b/BUILD/compile-pentium-max @@ -9,6 +9,6 @@ strip=yes extra_configs="$extra_configs --with-innodb --with-berkeley-db \ --with-embedded-server --enable-thread-safe-client \ - --with-openssl --with-vio" + --with-openssl --with-vio --with-raid" . "$path/FINISH.sh" diff --git a/configure.in b/configure.in index bc9bad931ad..86a3daf84da 100644 --- a/configure.in +++ b/configure.in @@ -1815,7 +1815,7 @@ AC_CHECK_FUNCS(alarm bmove \ sigset sigthreadmask pthread_sigmask pthread_setprio pthread_setprio_np \ pthread_setschedparam pthread_attr_setprio pthread_attr_setschedparam \ pthread_attr_create pthread_getsequence_np pthread_attr_setstacksize \ - pthread_attr_getstacksize \ + pthread_attr_getstacksize pthread_key_delete \ pthread_condattr_create rwlock_init pthread_rwlock_rdlock \ fsync fdatasync fchmod getpass getpassphrase initgroups mlockall) diff --git a/include/my_pthread.h b/include/my_pthread.h index 59367ee903c..40302f48bd5 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -384,6 +384,11 @@ struct tm *localtime_r(const time_t *clock, struct tm *res); #define pthread_condattr_destroy pthread_condattr_delete #endif +/* FSU THREADS */ +#if !defined(HAVE_PTHREAD_KEY_DELETE) && !defined(pthread_key_delete) +#define pthread_key_delete(A) pthread_dummy(0) +#endif + #ifdef HAVE_CTHREADS_WRAPPER /* For MacOSX */ #define pthread_cond_destroy(A) pthread_dummy(0) #define pthread_mutex_destroy(A) pthread_dummy(0) diff --git a/innobase/include/data0data.ic b/innobase/include/data0data.ic index bc5a93cb2f8..def80d3f430 100644 --- a/innobase/include/data0data.ic +++ b/innobase/include/data0data.ic @@ -430,4 +430,4 @@ dtuple_contains_null( } return(FALSE); -}
\ No newline at end of file +} diff --git a/mysql-test/r/raid.result b/mysql-test/r/raid.result index fd47a9451f6..3d27a599cf3 100644 --- a/mysql-test/r/raid.result +++ b/mysql-test/r/raid.result @@ -1,5 +1,6 @@ create database test_raid; create table test_raid.r1 (i int) raid_type=1; +create table test_raid.r2 (i int) raid_type=1 raid_chunks=32; drop database test_raid; DROP TABLE IF EXISTS t1,t2; CREATE TABLE t1 ( diff --git a/mysql-test/t/raid.test b/mysql-test/t/raid.test index 4032993f2da..43ad58ab368 100644 --- a/mysql-test/t/raid.test +++ b/mysql-test/t/raid.test @@ -9,6 +9,7 @@ enable_query_log; create database test_raid; create table test_raid.r1 (i int) raid_type=1; +create table test_raid.r2 (i int) raid_type=1 raid_chunks=32; drop database test_raid; DROP TABLE IF EXISTS t1,t2; CREATE TABLE t1 ( diff --git a/sql/sql_db.cc b/sql/sql_db.cc index 3fa3f5b0907..ca9989d986c 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -219,7 +219,7 @@ exit2: /* Removes files with known extensions plus all found subdirectories that - are 2 digits (raid directories). + are 2 hex digits (raid directories). thd MUST be set when calling this function! */ @@ -245,7 +245,10 @@ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, const char *db, DBUG_PRINT("info",("Examining: %s", file->name)); /* Check if file is a raid directory */ - if (isdigit(file->name[0]) && isdigit(file->name[1]) && + if ((isdigit(file->name[0]) || + (file->name[0] >= 'a' && file->name[0] <= 'f')) && + (isdigit(file->name[1]) || + (file->name[1] >= 'a' && file->name[1] <= 'f')) && !file->name[2] && !level) { char newpath[FN_REFLEN]; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 36ef97cbf30..3e824ddc9f5 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2823,6 +2823,8 @@ make_join_readinfo(JOIN *join,uint options) { uint i; SELECT_LEX *select_lex = &(join->thd->lex.select_lex); + bool statistics= test(!(join->select_options & SELECT_DESCRIBE)); + DBUG_ENTER("make_join_readinfo"); for (i=join->const_tables ; i < join->tables ; i++) @@ -2907,7 +2909,8 @@ make_join_readinfo(JOIN *join,uint options) { select_lex->options|=QUERY_NO_GOOD_INDEX_USED; tab->read_first_record= join_init_quick_read_record; - statistic_increment(select_range_check_count, &LOCK_status); + if (statistics) + statistic_increment(select_range_check_count, &LOCK_status); } else { @@ -2916,24 +2919,28 @@ make_join_readinfo(JOIN *join,uint options) { if (tab->select && tab->select->quick) { - statistic_increment(select_range_count, &LOCK_status); + if (statistics) + statistic_increment(select_range_count, &LOCK_status); } else { select_lex->options|=QUERY_NO_INDEX_USED; - statistic_increment(select_scan_count, &LOCK_status); + if (statistics) + statistic_increment(select_scan_count, &LOCK_status); } } else { if (tab->select && tab->select->quick) { - statistic_increment(select_full_range_join_count, &LOCK_status); + if (statistics) + statistic_increment(select_full_range_join_count, &LOCK_status); } else { select_lex->options|=QUERY_NO_INDEX_USED; - statistic_increment(select_full_join_count, &LOCK_status); + if (statistics) + statistic_increment(select_full_join_count, &LOCK_status); } } if (!table->no_keyread) diff --git a/sql/sql_udf.cc b/sql/sql_udf.cc index 54613f82f00..431f8a13d28 100644 --- a/sql/sql_udf.cc +++ b/sql/sql_udf.cc @@ -116,6 +116,7 @@ void udf_init() udf_func *tmp; TABLE_LIST tables; READ_RECORD read_record_info; + TABLE *table; int error; DBUG_ENTER("ufd_init"); @@ -148,13 +149,11 @@ void udf_init() if (open_and_lock_tables(new_thd, &tables)) { DBUG_PRINT("error",("Can't open udf table")); - sql_print_error("Can't open mysql/func table"); - close_thread_tables(new_thd); - delete new_thd; - DBUG_VOID_RETURN; + sql_print_error("Can't open the mysql/func table. Please run the mysql_install_db script to create it."); + goto end; } - TABLE *table = tables.table; + table= tables.table; init_read_record(&read_record_info, new_thd, table, NULL,1,0); while (!(error = read_record_info.read_record(&read_record_info))) { @@ -200,6 +199,8 @@ void udf_init() sql_print_error(ER(ER_GET_ERRNO), my_errno); end_read_record(&read_record_info); new_thd->version--; // Force close to free memory + +end: close_thread_tables(new_thd); delete new_thd; /* Remember that we don't have a THD */ |