mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Fixed 'Unknown error' when using 'UPDATE ... LIMIT'. Bug 373
This commit is contained in:
@ -138,3 +138,15 @@ a b
|
|||||||
111 100
|
111 100
|
||||||
111 100
|
111 100
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
`id_param` smallint(3) unsigned NOT NULL default '0',
|
||||||
|
`nom_option` char(40) NOT NULL default '',
|
||||||
|
`valid` tinyint(1) NOT NULL default '0',
|
||||||
|
KEY `id_param` (`id_param`,`nom_option`)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
INSERT INTO t1 (id_param,nom_option,valid) VALUES (185,'600x1200',1);
|
||||||
|
UPDATE t1 SET nom_option='test' WHERE id_param=185 AND nom_option='600x1200' AND valid=1 LIMIT 1;
|
||||||
|
select * from t1;
|
||||||
|
id_param nom_option valid
|
||||||
|
185 test 1
|
||||||
|
drop table t1;
|
||||||
|
@ -91,3 +91,20 @@ update t1 set b=100 where a=1 order by b desc limit 2;
|
|||||||
update t1 set a=a+10+b where a=1 order by b;
|
update t1 set a=a+10+b where a=1 order by b;
|
||||||
select * from t1 order by a,b;
|
select * from t1 order by a,b;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test with limit (Bug #393)
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
`id_param` smallint(3) unsigned NOT NULL default '0',
|
||||||
|
`nom_option` char(40) NOT NULL default '',
|
||||||
|
`valid` tinyint(1) NOT NULL default '0',
|
||||||
|
KEY `id_param` (`id_param`,`nom_option`)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
|
||||||
|
INSERT INTO t1 (id_param,nom_option,valid) VALUES (185,'600x1200',1);
|
||||||
|
|
||||||
|
UPDATE t1 SET nom_option='test' WHERE id_param=185 AND nom_option='600x1200' AND valid=1 LIMIT 1;
|
||||||
|
select * from t1;
|
||||||
|
drop table t1;
|
||||||
|
@ -231,9 +231,13 @@ int mysql_update(THD *thd,
|
|||||||
break; /* purecov: inspected */
|
break; /* purecov: inspected */
|
||||||
}
|
}
|
||||||
if (!--limit && using_limit)
|
if (!--limit && using_limit)
|
||||||
|
{
|
||||||
|
error= -1;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
limit= tmp_limit;
|
||||||
end_read_record(&info);
|
end_read_record(&info);
|
||||||
/* Change select to use tempfile */
|
/* Change select to use tempfile */
|
||||||
if (select)
|
if (select)
|
||||||
|
Reference in New Issue
Block a user