Bug #3948 Multiple record corruption with \0 character
Submitted: 1 Jun 2004 14:21 Modified: 1 Jun 2004 16:50
Reporter: Martijn van Beek Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: MyISAM storage engine Severity:S2 (Serious)
Version:3.23.58 OS:Linux (Red Hat 9.0)
Assigned to: Matthew Lord CPU Architecture:Any

[1 Jun 2004 14:21] Martijn van Beek
Description:
When i submit a webform to modify a record i get more modifications than wanted. 

my table looks like this:

CREATE TABLE `language_en` (
  `id` int(11) NOT NULL auto_increment,
  `text` text NOT NULL,
  `datemuta` timestamp(14) NOT NULL,
  `datecrea` timestamp(14) NOT NULL,
  KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=473;

the last 4 records looks like this (mysql dump) after i submitted the webform:

INSERT INTO `language_en` VALUES (469, '', 20040601102648, 00000000000000);
INSERT INTO `language_en` VALUES (470, '', 20040601102648, 00000000000000);
INSERT INTO `language_en` VALUES (471, 'test\0', 20040601125419, 00000000000000);
INSERT INTO `language_en` VALUES (472, 'test\0', 20040601125343, 20040601125315);

my modify query looks like this:
SELECT `title_id` FROM `specialties` WHERE `type`='0' AND `special_id`='004';
UPDATE `language_en` SET `text`='test' WHERE `id`='472';

I know the \0 character stands for EOF but so far i can see it isn't the end of the file. I googled for it but couldn't find anything. 

I flushes/dropped everything more than once to resolve this problem. So far no result.

How to repeat:
CREATE TABLE `language_en` (
  `id` int(11) NOT NULL auto_increment,
  `text` text NOT NULL,
  `datemuta` timestamp(14) NOT NULL,
  `datecrea` timestamp(14) NOT NULL,
  KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=473;

INSERT INTO `language_en` VALUES (469, '', 20040601102648, 00000000000000);
INSERT INTO `language_en` VALUES (470, '', 20040601102648, 00000000000000);
INSERT INTO `language_en` VALUES (471, '', 20040601125419, 00000000000000);
INSERT INTO `language_en` VALUES (472, '', 20040601125343, 20040601125315);

UPDATE `language_en` SET `text`='test' WHERE `id`='472';