mariadb/myisam
unknown 2b0c447683 BUG#23526 - show table status reports incorrect values for MyISAM tables
This problem could happen when show table status get outdated copy
of TABLE object from table cache.

MyISAM updates state info when external_lock() method is called. Though
I_S does not lock a table to avoid deadlocks. If I_S opens a table which
is in a table cache it will likely get outdated state info copy.

In this case shared state copy is more recent than local copy. This problem
is fixed by correctly restoring myisam state info pointer back to original
value, that is to shared state.

Affects MyISAM only. No good deterministic test case for this fix.


include/thr_lock.h:
  Added restore_status, that will be called prior to release a
  read lock.
myisam/mi_locking.c:
  Added mi_restore_status, that will be called prior to release a
  read lock. This function is intended to set myisam state pointer
  back to original value, that is to shared state.
myisam/mi_open.c:
  Added restore_status, that will be called prior to release a
  read lock.
myisam/myisamdef.h:
  Added mi_restore_status, that will be called prior to release a
  read lock.
mysys/thr_lock.c:
  Call restore_status if we have lock with priority lower than
  TL_WRITE_CONCURRENT_INSERT.
2006-12-05 18:44:14 +04:00
..
ftbench ftbench fixes 2003-10-23 23:33:06 +02:00
.cvsignore This ChangeSet adds RTREE support into myisam library. 2002-02-20 14:11:21 +04:00
ChangeLog New thr_alarm struct for better integration with OS2 2000-11-28 04:47:47 +02:00
CMakeLists.txt Additional files for cmake support 2006-08-31 19:52:42 +02:00
ft_boolean_search.c Several fixes revelaled by Intel compiler. 2005-09-23 16:47:08 +03:00
ft_eval.c Big code cleanup/review before 4.0.2 release. 2002-06-11 11:20:31 +03:00
ft_eval.h MI_KEYSEG -> HA_KEYSEG 2002-04-25 15:10:29 +05:00
ft_nlq_search.c Fix for BUG#13582. Theoretically possible to try to overallocate RAM in some fulltext queries. 2005-09-28 19:03:35 -05:00
ft_parser.c Merge serg.mylan:/usr/home/serg/Abk/mysql-4.1 2005-11-26 20:23:20 +01:00
ft_static.c Merge changes 2005-02-04 11:59:02 -08:00
ft_stem.c Update copyright 2001-12-06 14:10:51 +02:00
ft_stopwords.c Fix for BUG#8351 (5.0) - Double quote in Boolean Fulltext query causes crash 2005-03-04 16:10:41 +04:00
ft_test1.c Add 0x before pointers (to help with debugging) 2004-12-18 05:19:21 +02:00
ft_test1.h Update copyright 2001-12-06 14:10:51 +02:00
ft_update.c Merge april.(none):/home/svoj/devel/mysql/BUG16489/mysql-4.1 2006-01-23 20:07:26 +04:00
ftdefs.h Fix for BUG#8351 (5.0) - Double quote in Boolean Fulltext query causes crash 2005-03-04 16:10:41 +04:00
fulltext.h ft1->ft2 auto-conversion on INSERT (WL#725) 2003-10-02 20:22:29 +02:00
make-ccc Import changeset 2000-07-31 21:29:14 +02:00
Makefile.am make dist changes for Cmake build 2006-09-01 10:32:12 +02:00
mi_cache.c enadling out-of-cache reads for shared IO_CACHE 2003-01-26 14:20:43 +01:00
mi_changed.c Update copyright 2001-12-06 14:10:51 +02:00
mi_check.c Merge chilla.local:/home/mydev/mysql-4.1-bug22119 2006-10-25 13:45:32 +02:00
mi_checksum.c Add 0x before pointers (to help with debugging) 2004-12-18 05:19:21 +02:00
mi_close.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
mi_create.c Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2006-07-08 21:45:02 +04:00
mi_dbug.c Merge mysql.com:/home/mydev/mysql-4.1-4100 2005-09-23 17:27:07 +02:00
mi_delete.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
mi_delete_all.c CHECKSUM TABLE now allows concurrent inserts 2005-09-27 20:11:09 +02:00
mi_delete_table.c Bug#11824 - internal /tmp/*.{MYD,MYI} files remain, causing subsequent queries to fail 2006-06-27 11:26:41 +02:00
mi_dynrec.c Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2006-12-01 18:49:20 +01:00
mi_extra.c Merge mysql.com:/home/jimw/my/mysql-4.1-clean 2005-08-31 19:12:16 -07:00
mi_info.c WL#1895 - Print message to error log in case of detected MyISAM corruption 2004-12-23 20:11:38 +01:00
mi_key.c Merge mysql.com:/usr/home/bar/mysql-4.1-rpl.b8663 2006-10-03 14:17:12 +05:00
mi_keycache.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
mi_locking.c BUG#23526 - show table status reports incorrect values for MyISAM tables 2006-12-05 18:44:14 +04:00
mi_log.c Code cleanup 2004-01-19 23:51:17 +01:00
mi_open.c BUG#23526 - show table status reports incorrect values for MyISAM tables 2006-12-05 18:44:14 +04:00
mi_packrec.c Merge chilla.local:/home/mydev/mysql-4.1-bug23139 2006-11-28 19:28:49 +01:00
mi_page.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
mi_panic.c Merge key cache structures to one 2003-11-20 22:06:25 +02:00
mi_preload.c Bug#10932 - Building server with key limit of 128, makes test cases fail 2005-07-19 14:13:56 +02:00
mi_range.c Merge mysql.com:/home/hf/work/21888/my41-21888 2006-09-29 17:57:16 +05:00
mi_rename.c Code cleanup 2004-01-19 23:51:17 +01:00
mi_rfirst.c Update copyright 2001-12-06 14:10:51 +02:00
mi_rkey.c Bug#14400 - Query joins wrong rows from table which is subject of 2006-09-22 17:23:25 +02:00
mi_rlast.c Update copyright 2001-12-06 14:10:51 +02:00
mi_rnext.c Merging 2004-05-27 16:32:49 +05:00
mi_rnext_same.c Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX 2006-03-10 15:03:04 +01:00
mi_rprev.c Fixed many compiler warnings 2004-04-05 13:56:05 +03:00
mi_rrnd.c just tried to find all 'skipp' and replace it with 'skip'. 2004-02-02 20:25:39 +04:00
mi_rsame.c Bug#10932 - Building server with key limit of 128, makes test cases fail 2005-07-19 14:13:56 +02:00
mi_rsamepos.c Bug#10932 - Building server with key limit of 128, makes test cases fail 2005-07-19 14:13:56 +02:00
mi_scan.c Update copyright 2001-12-06 14:10:51 +02:00
mi_search.c Manual merge 2006-03-30 17:14:55 +04:00
mi_static.c Merge mysql.com:/usr/home/ram/work/4.1.b4214 2005-09-05 18:28:56 +05:00
mi_statrec.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
mi_test1.c Several fixes revelaled by Intel compiler. 2005-09-23 16:47:08 +03:00
mi_test2.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
mi_test3.c Add 0x before pointers (to help with debugging) 2004-12-18 05:19:21 +02:00
mi_test_all.res Merge chilla.local:/home/mydev/mysql-4.1-bug14400-monty 2006-09-19 11:27:00 +02:00
mi_test_all.sh Better bug fix for #14400 "Query joins wrong rows from table which is subject of "concurrent insert"" 2006-08-10 22:41:19 +03:00
mi_unique.c Fix for bug #20709: Collation not used in group by on 4.1. 2006-08-10 15:06:22 +05:00
mi_update.c Merge may.pils.ru:/home/svoj/devel/mysql/BUG20060/mysql-4.1 2006-08-09 14:33:45 +05:00
mi_write.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
myisam_ftdump.c BUG#21459 - myisam_ftdump gives bad counts for common words 2006-09-20 17:12:37 +05:00
myisamchk.c Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.0 2005-12-04 15:34:47 +02:00
myisamdef.h BUG#23526 - show table status reports incorrect values for MyISAM tables 2006-12-05 18:44:14 +04:00
myisamlog.c BUG#18160 - Memory-/HEAP Table endless growing indexes 2006-04-19 15:13:50 +05:00
myisampack.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
NEWS Import changeset 2000-07-31 21:29:14 +02:00
rt_index.c Bug#17877 - Corrupted spatial index 2006-06-28 14:27:37 +02:00
rt_index.h Merging 2004-06-02 19:17:35 +05:00
rt_key.c Merging 2004-06-02 19:17:35 +05:00
rt_key.h Merging 2004-06-02 19:17:35 +05:00
rt_mbr.c Bug#17877 - Corrupted spatial index 2006-06-28 14:27:37 +02:00
rt_mbr.h Merging 2004-06-02 19:17:35 +05:00
rt_split.c Added some missing casts and changed a define for alloca(). 2005-07-20 13:27:57 +03:00
rt_test.c Review of all code pushed since last review 2004-10-20 01:28:42 +03:00
sort.c Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint 2006-11-03 16:18:32 +01:00
sp_defs.h WL#1163 To make spatial code optional 2004-03-12 18:51:03 +04:00
sp_key.c Several fixes revelaled by Intel compiler. 2005-09-23 16:47:08 +03:00
sp_test.c Merging 2004-05-27 16:32:49 +05:00
test_pack Import changeset 2000-07-31 21:29:14 +02:00
TODO Import changeset 2000-07-31 21:29:14 +02:00