mariadb/storage/myisam
Michael Widenius d29e7f7472 Fix for Bug #37007 Maria: different checksum for MyISAM table depending on CHECKSUM=0|1
This also adds a check that MyISAM tables with incompatible checksums are detected by CHECK TABLE ... [FOR UPGRADE] and thus also by mysql_upgrade.
The tables that are incomatible are MyISAM tables with ROW_FORMAT=fixed and has VARCHAR fields and have CHECKSUM enabled.
Before these tables gave different checksum if you used CHECK TABLE with or without EXTENDED

mysql-test/r/old-mode.result:
  Now we get same results with and without EXTENDED
mysql-test/r/row-checksum-old.result:
  Initial results
mysql-test/r/row-checksum.result:
  Initial results
mysql-test/t/old-mode.test:
  Added test with QUICK to show that the live checksum is not used when running with --old
mysql-test/t/row-checksum-old-master.opt:
  Start mysqld with --old mode to enable old checksum code
mysql-test/t/row-checksum-old.test:
  Run row-checksum test under mysqld --old
mysql-test/t/row-checksum.test:
  Verify that checksum are calculated the same way with and without EXTENDED
  We run this with several storage engines to ensure results are the same over storage engines
sql/ha_partition.cc:
  Use new HA_HAS_xxx_CHECKSUM flags
sql/handler.cc:
  Use new HA_HAS_xxx_CHECKSUM flags
sql/handler.h:
  Split HA_HAS_CHECKSUM into HA_HAS_NEW_CHECKSUM and HA_HAS_OLD_CHECKSUM flags.
  This is a safe API change as only MyISAM and Maria should use these handler flags.
sql/sql_show.cc:
  Use new HA_HAS_xxx_CHECKSUM flags
sql/sql_table.cc:
  Use file->checksum() for live checksums if the life checksum method corresponds to the mysqld --old flag
storage/maria/ha_maria.cc:
  Use new HA_HAS_xxx_CHECKSUM flags
storage/myisam/ha_myisam.cc:
  Set HA_HAS_OLD_CHECKSUM and/or HA_HAS_NEW_CHECKSUM flags depending on if this is a new myisam or old myisam file
  Add method check_for_upgrade() to detect if the table is of old version with a checksum that is incompatible with CHECK TABLE ... EXTENDED
storage/myisam/ha_myisam.h:
  Added check_for_upgrade()
storage/myisam/mi_open.c:
  Removed not neede cast
  Initialize share->has_null_fields and share->has_varchar_fields variables
storage/myisam/myisamdef.h:
  Added share->has_null_fields and share->has_varchar_fields
2008-06-28 15:45:15 +03:00
..
ftbench Fixed warning message breakage. 2006-08-13 22:28:41 -07:00
.cvsignore Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
ChangeLog Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
CMakeLists.txt Merge mysql.com:/home/my/mysql-5.1 2008-04-28 19:24:05 +03:00
ft_boolean_search.c Merge a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-main 2008-02-08 12:13:33 +01:00
ft_eval.c Moved a lot of old bug fixes and safe cleanups from Maria 5.1 tree to 5.1 2007-10-11 18:07:40 +03:00
ft_eval.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
ft_myisam.c Merged with mysql-5.1 main tree. 2007-07-02 20:45:15 +03:00
ft_nlq_search.c Merge a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-main 2008-02-08 12:13:33 +01:00
ft_parser.c Moved a lot of old bug fixes and safe cleanups from Maria 5.1 tree to 5.1 2007-10-11 18:07:40 +03:00
ft_static.c Merge mysql.com:/home/my/mysql-5.1 2008-04-28 19:24:05 +03:00
ft_stem.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
ft_stopwords.c Moved a lot of old bug fixes and safe cleanups from Maria 5.1 tree to 5.1 2007-10-11 18:07:40 +03:00
ft_test1.c Moved a lot of old bug fixes and safe cleanups from Maria 5.1 tree to 5.1 2007-10-11 18:07:40 +03:00
ft_test1.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
ft_update.c Moved a lot of old bug fixes and safe cleanups from Maria 5.1 tree to 5.1 2007-10-11 18:07:40 +03:00
ftdefs.h WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
fulltext.h Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2007-06-27 17:49:12 +03:00
ha_myisam.cc Fix for Bug #37007 Maria: different checksum for MyISAM table depending on CHECKSUM=0|1 2008-06-28 15:45:15 +03:00
ha_myisam.h Fix for Bug #37007 Maria: different checksum for MyISAM table depending on CHECKSUM=0|1 2008-06-28 15:45:15 +03:00
make-ccc Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
Makefile.am Merge gbichot3.local:/home/mysql_src/mysql-5.1-for-maria 2007-02-28 17:50:51 +01:00
mi_cache.c Added error HA_ERR_FILE_TOO_SHORT to be used when files are shorter than expected (by my_read/my_pread) 2007-12-04 23:23:42 +02:00
mi_changed.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
mi_check.c Added versioning of Maria index 2008-06-26 08:18:28 +03:00
mi_checksum.c First part of redo/undo for key pages 2007-11-14 19:08:06 +02:00
mi_close.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria 2007-07-04 12:20:53 +03:00
mi_create.c Added error HA_ERR_FILE_TOO_SHORT to be used when files are shorter than expected (by my_read/my_pread) 2007-12-04 23:23:42 +02:00
mi_dbug.c Moved randomize and my_rnd under mysys 2007-10-09 21:09:50 +03:00
mi_delete.c Added versioning of Maria index 2008-06-26 08:18:28 +03:00
mi_delete_all.c Fix for bug #35392: Delete all statement does not execute properly 2008-03-28 19:16:52 +04:00
mi_delete_table.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
mi_dynrec.c Merge mysql.com:/home/my/mysql-5.1 2008-04-28 19:24:05 +03:00
mi_extra.c Fixed bug in undo_key_delete; Caused crashed key files in recovery 2007-12-17 01:17:37 +02:00
mi_info.c Merge mysql.com:/home/svoj/devel/mysql/BUG27516/mysql-5.0-engines 2007-04-13 12:44:02 +05:00
mi_key.c Merge hynda.mysql.fi:/home/my/mysql-5.1-main 2007-09-27 17:05:07 +03:00
mi_keycache.c Fixed a lot of compiler warnings and errors detected by Forte C++ on Solaris 2007-08-13 16:11:25 +03:00
mi_locking.c Added versioning of row data 2008-04-10 05:26:36 +03:00
mi_log.c Merge hynda.mysql.fi:/home/my/mysql-5.1-main 2007-09-27 17:05:07 +03:00
mi_open.c Fix for Bug #37007 Maria: different checksum for MyISAM table depending on CHECKSUM=0|1 2008-06-28 15:45:15 +03:00
mi_packrec.c Merge a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-main 2007-12-16 17:03:44 +02:00
mi_page.c Fixed a lot of compiler warnings and errors detected by Forte C++ on Solaris 2007-08-13 16:11:25 +03:00
mi_panic.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
mi_preload.c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2007-05-24 15:26:10 +03:00
mi_range.c Added versioning of Maria index 2008-06-26 08:18:28 +03:00
mi_rename.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
mi_rfirst.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_rkey.c Merge hynda.mysql.fi:/home/my/mysql-5.1-main 2007-09-27 17:05:07 +03:00
mi_rlast.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_rnext.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_rnext_same.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_rprev.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_rrnd.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_rsame.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_rsamepos.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_scan.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_search.c Merge gbichot4.local:/home/mysql_src/mysql-5.1-build-gca 2008-02-18 23:35:17 +01:00
mi_static.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
mi_statrec.c Fixed a lot of compiler warnings and errors detected by Forte C++ on Solaris 2007-08-13 16:11:25 +03:00
mi_test1.c Moved a lot of old bug fixes and safe cleanups from Maria 5.1 tree to 5.1 2007-10-11 18:07:40 +03:00
mi_test2.c Fixed problems with ma_test2 and mi_test2 on high-byte-first system 2008-02-21 02:45:02 +02:00
mi_test3.c Windows fixes 2008-01-10 13:21:53 +01:00
mi_test_all.res Merge chilla.local:/home/mydev/mysql-5.0-bug14400-monty 2006-09-19 14:33:29 +02:00
mi_test_all.sh Merge chilla.local:/home/mydev/mysql-5.0-bug14400-monty 2006-09-19 14:33:29 +02:00
mi_unique.c Moved a lot of old bug fixes and safe cleanups from Maria 5.1 tree to 5.1 2007-10-11 18:07:40 +03:00
mi_update.c Merge gbichot4.local:/home/mysql_src/mysql-5.1-build-gca 2008-02-18 23:35:17 +01:00
mi_write.c Added versioning of Maria index 2008-06-26 08:18:28 +03:00
myisam_ftdump.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
myisamchk.c Fixed compiler warnings by adding casts and changing variable types 2008-01-11 19:39:43 +02:00
myisamdef.h Fix for Bug #37007 Maria: different checksum for MyISAM table depending on CHECKSUM=0|1 2008-06-28 15:45:15 +03:00
myisamlog.c Merge gbichot4.local:/home/mysql_src/mysql-5.1-build-gca 2008-02-18 23:35:17 +01:00
myisampack.c Merge hynda.mysql.fi:/home/my/mysql-5.1-main 2008-02-27 16:46:32 +02:00
NEWS Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
plug.in restore plug.in - referenced by Makefile.am 2007-12-13 14:48:50 +01:00
rt_index.c Added versioning of Maria index 2008-06-26 08:18:28 +03:00
rt_index.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
rt_key.c Merge chilla.local:/home/mydev/mysql-5.0-bug25673 2007-03-08 12:13:54 +01:00
rt_key.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
rt_mbr.c Merge mysql.com:/home/hf/work/30286/my50-30286 2007-10-05 15:43:15 +05:00
rt_mbr.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
rt_split.c WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
rt_test.c Fix for Valgrind errors when running rt_test and ma_rt_test, and segmentation fault 2008-06-10 15:44:41 +02:00
sort.c Merge a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-main 2007-12-16 17:03:44 +02:00
sp_defs.h WL#3817: Simplify string / memory area types and make things more consistent (first part) 2007-05-10 12:59:39 +03:00
sp_key.c porting 29070 to 5.1-opt 2007-07-11 13:09:39 +03:00
sp_test.c Moved a lot of old bug fixes and safe cleanups from Maria 5.1 tree to 5.1 2007-10-11 18:07:40 +03:00
test_pack Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
TODO Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00