1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00
Files
mariadb/sql
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
..
2008-04-01 18:50:35 +02:00
2008-04-28 19:24:05 +03:00
2007-10-11 13:29:09 -04:00
2008-04-28 19:24:05 +03:00
2008-04-28 19:24:05 +03:00
2007-10-11 13:29:09 -04:00
2007-10-11 13:29:09 -04:00
2007-10-11 13:29:09 -04:00
2007-08-15 17:43:08 +04:00
2008-04-28 19:24:05 +03:00
2008-05-14 09:50:16 +03:00
2008-02-12 10:43:38 +01:00
2008-03-29 17:50:46 +02:00
2008-05-14 09:50:16 +03:00
2007-10-11 13:29:09 -04:00
2007-10-11 13:29:09 -04:00
2007-10-16 16:11:50 -04:00
2007-10-16 16:11:50 -04:00
2007-10-11 14:37:45 -04:00
2007-10-16 16:11:50 -04:00
2007-11-06 21:57:51 +03:00
2007-10-11 14:37:45 -04:00
2007-10-16 16:11:50 -04:00
2007-10-11 14:37:45 -04:00
2008-02-07 19:51:50 +01:00
2008-06-26 08:18:28 +03:00
2008-01-30 17:35:25 +01:00
2008-04-28 19:24:05 +03:00
2008-03-25 15:20:42 +01:00
2007-06-10 14:43:57 +04:00
2008-01-23 13:26:41 -07:00
2008-03-12 11:19:46 +03:00
2008-04-28 19:24:05 +03:00
2008-04-28 19:24:05 +03:00
2007-10-16 16:11:50 -04:00
2008-04-28 19:24:05 +03:00
2007-10-16 16:11:50 -04:00
2007-06-12 18:41:56 +03:00
2008-04-28 19:24:05 +03:00
2007-10-16 16:11:50 -04:00
2008-04-28 19:24:05 +03:00
2008-03-30 15:46:37 -04:00
2007-10-16 16:11:50 -04:00
2008-04-28 19:24:05 +03:00
2008-03-14 14:41:08 +01:00