summaryrefslogtreecommitdiff
path: root/sql/ha_myisam.cc
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2000-08-18 12:48:00 +0300
committerunknown <monty@donna.mysql.com>2000-08-18 12:48:00 +0300
commit6a5d4b6b80899ccffb7fab93c7fe2099bdb15eb8 (patch)
treedc12a8a920e65278811e12ea88c8d7d24390be23 /sql/ha_myisam.cc
parentc4543517a39e376ce12a86b2d68baf98fde4880e (diff)
downloadmariadb-git-6a5d4b6b80899ccffb7fab93c7fe2099bdb15eb8.tar.gz
Updated benchmark and results for PostgreSQL 7.0.2
Added more status to the MyISAM files to avoid checking files that has already been checked. Docs/manual.texi: Turn off RCS flag BitKeeper/deleted/.del-ATIS-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-pg_fast-Linux_2.2.14_5.0_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg: ***MISSING WEAVE*** dbug/Makefile.am: Fix for bitkeeper extra/Makefile.am: Fix for bitkeeper heap/Makefile.am: Fix for bitkeeper isam/Makefile.am: Fix for bitkeeper merge/Makefile.am: Fix for bitkeeper myisam/ChangeLog: Added more status for the MyISAM table myisam/Makefile.am: Fix for bitkeeper myisam/mi_check.c: Added more status for the MyISAM table myisam/mi_extra.c: Added more status for the MyISAM table myisam/mi_page.c: Added more status for the MyISAM table myisam/myisamchk.c: Added more status for the MyISAM table myisammrg/Makefile.am: Fix for bitkeeper mysys/Makefile.am: Fix for bitkeeper readline/Makefile.am: Fix for bitkeeper regex/Makefile.am: Fix for bitkeeper scripts/Makefile.am: Fix for bitkeeper sql-bench/Comments/Access.crash-me: Comments for crash-me sql-bench/Comments/Adabas.crash-me: Comments for crash-me sql-bench/Comments/Empress.crash-me: Comments for crash-me sql-bench/Comments/Informix.crash-me: Comments for crash-me sql-bench/Comments/postgres.benchmark: Updated documentation sql-bench/Comments/postgres.crash-me: Comments for crash-me sql-bench/Makefile.am: Added the Comments directory sql-bench/Results/ATIS-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/ATIS-pg_fast-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/RUN-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/RUN-pg_fast-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/alter-table-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/alter-table-pg_fast-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/big-tables-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/big-tables-pg_fast-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/connect-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/connect-pg_fast-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/create-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/create-pg_fast-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/insert-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/insert-pg_fast-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/select-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/select-pg_fast-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/wisconsin-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Version number fix sql-bench/compare-results.sh: Fix bug in --relative sql-bench/test-insert.sh: Fix for duplicate key test sql/ha_myisam.cc: Don't check checked tables sql/lex.h: Remove MAX as a reserved keyword sql/sql_yacc.yy: Remove MAX as a reserved keyword strings/Makefile.am: Fix for bitkeeper support-files/Makefile.am: Fix for bitkeeper tests/Makefile.am: Fix for bitkeeper vio/Makefile.am: Fix for bitkeeper
Diffstat (limited to 'sql/ha_myisam.cc')
-rw-r--r--sql/ha_myisam.cc42
1 files changed, 26 insertions, 16 deletions
diff --git a/sql/ha_myisam.cc b/sql/ha_myisam.cc
index 9c68d1bb4b6..fe22c29c21c 100644
--- a/sql/ha_myisam.cc
+++ b/sql/ha_myisam.cc
@@ -246,7 +246,9 @@ int ha_myisam::check(THD* thd, HA_CHECK_OPT* check_opt)
if (!mi_is_crashed(file) &&
(((param.testflag & T_CHECK_ONLY_CHANGED) &&
- !share->state.changed && share->state.open_count == 0) ||
+ (share->state.changed & (STATE_CHANGED | STATE_CRASHED |
+ STATE_CRASHED_ON_REPAIR)) &&
+ share->state.open_count == 0) ||
((param.testflag & T_FAST) && share->state.open_count == 0)))
return HA_CHECK_ALREADY_CHECKED;
@@ -269,14 +271,18 @@ int ha_myisam::check(THD* thd, HA_CHECK_OPT* check_opt)
}
if (!error)
{
- if (share->state.changed || (param.testflag & T_STATISTICS))
+ if ((share->state.changed & (STATE_CHANGED |
+ STATE_CRASHED_ON_REPAIR |
+ STATE_CRASHED | STATE_NOT_ANALYZED)) ||
+ (param.testflag & T_STATISTICS))
{
file->update|=HA_STATE_CHANGED | HA_STATE_ROW_CHANGED;
pthread_mutex_lock(&share->intern_lock);
#ifndef HAVE_PREAD
pthread_mutex_lock(&THR_LOCK_keycache); // QQ; Has to be removed!
#endif
- share->state.changed=0;
+ share->state.changed&= ~(STATE_CHANGED | STATE_CRASHED |
+ STATE_CRASHED_ON_REPAIR);
if (!(table->db_stat & HA_READ_ONLY))
error=update_state_info(&param,file,UPDATE_TIME | UPDATE_OPEN_COUNT |
UPDATE_STAT);
@@ -306,7 +312,7 @@ int ha_myisam::check(THD* thd, HA_CHECK_OPT* check_opt)
int ha_myisam::analyze(THD *thd)
{
- int error;
+ int error=0;
MI_CHECK param;
MYISAM_SHARE* share = file->s;
@@ -318,21 +324,24 @@ int ha_myisam::analyze(THD *thd)
T_DONT_CHECK_CHECKSUM);
param.using_global_keycache = 1;
- error = chk_key(&param, file);
- if (!error)
- {
- pthread_mutex_lock(&share->intern_lock);
+ if (share->state.changed & STATE_NOT_ANALYZED)
+ {
+ error = chk_key(&param, file);
+ if (!error)
+ {
+ pthread_mutex_lock(&share->intern_lock);
#ifndef HAVE_PREAD
- pthread_mutex_lock(&THR_LOCK_keycache); // QQ; Has to be removed!
+ pthread_mutex_lock(&THR_LOCK_keycache); // QQ; Has to be removed!
#endif
- error=update_state_info(&param,file,UPDATE_STAT);
+ error=update_state_info(&param,file,UPDATE_STAT);
#ifndef HAVE_PREAD
- pthread_mutex_unlock(&THR_LOCK_keycache);// QQ; Has to be removed!
+ pthread_mutex_unlock(&THR_LOCK_keycache);// QQ; Has to be removed!
#endif
- pthread_mutex_unlock(&share->intern_lock);
+ pthread_mutex_unlock(&share->intern_lock);
+ }
+ else if (!mi_is_crashed(file))
+ mi_mark_crashed(file);
}
- else if (!mi_is_crashed(file))
- mi_mark_crashed(file);
return error ? HA_CHECK_CORRUPT : HA_CHECK_OK;
}
@@ -373,9 +382,10 @@ int ha_myisam::repair(THD *thd, MI_CHECK &param)
error= mi_repair(&param, file, fixed_name, param.opt_rep_quick);
if (!error)
{
- if (share->state.changed)
+ if (share->state.changed & STATE_CHANGED)
{
- share->state.changed = 0;
+ share->state.changed&= ~(STATE_CHANGED | STATE_CRASHED |
+ STATE_CRASHED_ON_REPAIR);
file->update|=HA_STATE_CHANGED | HA_STATE_ROW_CHANGED;
}
file->save_state=file->s->state.state;