bulk insert bug fixed
This commit is contained in:
parent
d8d3fcd867
commit
6288cfb848
@ -794,10 +794,10 @@ int _mi_init_bulk_insert(MI_INFO *info)
|
||||
params=(bulk_insert_param *)(info->bulk_insert+share->base.keys);
|
||||
for (i=0 ; i < share->base.keys ; i++,key++)
|
||||
{
|
||||
params->info=info;
|
||||
params->keynr=i;
|
||||
if (test(key_map & ((ulonglong) 1 << i)))
|
||||
{
|
||||
params->info=info;
|
||||
params->keynr=i;
|
||||
init_tree(& info->bulk_insert[i], 0,
|
||||
myisam_bulk_insert_tree_size / num_keys, 0,
|
||||
(qsort_cmp2)keys_compare, 0,
|
||||
|
@ -11,3 +11,5 @@ payoutID
|
||||
19
|
||||
20
|
||||
22
|
||||
Variable_name Value
|
||||
myisam_bulk_insert_tree_size 8388608
|
||||
|
@ -10,3 +10,59 @@ insert into t2 (payoutID) SELECT DISTINCT payoutID FROM t1;
|
||||
insert into t2 (payoutID) SELECT payoutID+10 FROM t1;
|
||||
select * from t2;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# bug in bulk insert optimization
|
||||
# test case by Fournier Jocelyn <joc@presence-pc.com>
|
||||
#
|
||||
|
||||
DROP TABLE IF EXISTS crash1,crash2;
|
||||
CREATE TABLE `crash1` (
|
||||
`numeropost` bigint(20) unsigned NOT NULL default '0',
|
||||
`icone` tinyint(4) unsigned NOT NULL default '0',
|
||||
`numreponse` bigint(20) unsigned NOT NULL auto_increment,
|
||||
`contenu` text NOT NULL,
|
||||
`pseudo` varchar(50) NOT NULL default '',
|
||||
`date` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`ip` bigint(11) NOT NULL default '0',
|
||||
`signature` tinyint(1) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`numeropost`,`numreponse`)
|
||||
,KEY `ip` (`ip`),
|
||||
KEY `date` (`date`),
|
||||
KEY `pseudo` (`pseudo`),
|
||||
KEY `numreponse` (`numreponse`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE `crash2` (
|
||||
`numeropost` bigint(20) unsigned NOT NULL default '0',
|
||||
`icone` tinyint(4) unsigned NOT NULL default '0',
|
||||
`numreponse` bigint(20) unsigned NOT NULL auto_increment,
|
||||
`contenu` text NOT NULL,
|
||||
`pseudo` varchar(50) NOT NULL default '',
|
||||
`date` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`ip` bigint(11) NOT NULL default '0',
|
||||
`signature` tinyint(1) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`numeropost`,`numreponse`),
|
||||
KEY `ip` (`ip`),
|
||||
KEY `date` (`date`),
|
||||
KEY `pseudo` (`pseudo`),
|
||||
KEY `numreponse` (`numreponse`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
INSERT INTO crash2
|
||||
(numeropost,icone,numreponse,contenu,pseudo,date,ip,signature) VALUES
|
||||
(9,1,56,'test','joce','2001-07-25 13:50:53'
|
||||
,3649052399,0);
|
||||
|
||||
|
||||
INSERT INTO crash1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1618,icone,contenu,pseudo,date,signature,ip FROM crash2
|
||||
WHERE numeropost=9 ORDER BY numreponse ASC;
|
||||
|
||||
show variables like '%bulk%';
|
||||
|
||||
INSERT INTO crash1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1718,icone,contenu,pseudo,date,signature,ip FROM crash2
|
||||
WHERE numeropost=9 ORDER BY numreponse ASC;
|
||||
|
||||
DROP TABLE IF EXISTS crash1,crash2;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user