drop table if exists t1;
create table t1 (a int not null default 0 primary key, b int not null default 0);
insert into t1 () values ();
insert into t1 values (1,1),(2,1),(3,1);
update t1 set a=4 where b=1 limit 1;
select * from t1;
a	b
0	0
4	1
2	1
3	1
update t1 set b=2 where b=1 limit 2;
select * from t1;
a	b
0	0
4	2
2	2
3	1
update t1 set b=4 where b=1;
select * from t1;
a	b
0	0
4	2
2	2
3	4
delete from t1 where b=2 limit 1;
select * from t1;
a	b
0	0
2	2
3	4
delete from t1 limit 1;
select * from t1;
a	b
2	2
3	4
drop table t1;
create table t1 (i int);
insert into t1 (i) values(1),(1),(1);
delete from t1 limit 1;
update t1 set i=2 limit 1;
delete from t1 limit 0;
update t1 set i=3 limit 0;
select * from t1;
i
2
1
drop table t1;
select 0 limit 0;
0
CREATE TABLE t1(id int auto_increment primary key, id2 int, index(id2));
INSERT INTO t1 (id2) values (0),(0),(0);
DELETE FROM t1 WHERE id=1;
INSERT INTO t1 SET id2=0;
SELECT * FROM t1;
id	id2
4	0
2	0
3	0
DELETE FROM t1 WHERE id2 = 0 ORDER BY id LIMIT 1;
SELECT * FROM t1;
id	id2
4	0
3	0
DELETE FROM t1 WHERE id2 = 0 ORDER BY id desc LIMIT 1;
SELECT * FROM t1;
id	id2
3	0
DROP TABLE t1;
create table t1 (a integer);
insert into t1 values (1);
select 1 as a from t1 union all select 1 from dual limit 1;
a
1
(select 1 as a from t1) union all (select 1 from dual) limit 1;
a
1
drop table t1;
create table t1 (a int);
insert into t1 values (1),(2),(3),(4),(5),(6),(7);
explain select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	7	Using where; Using temporary
select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
c
7
explain select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	7	Using where; Using temporary
select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
c
28
drop table t1;
prepare s from "select 1 limit ?";
set @a='qwe';
execute s using @a;
1
set @a=-1;
execute s using @a;
ERROR HY000: Incorrect arguments to EXECUTE
prepare s from "select 1 limit 1, ?";
execute s using @a;
ERROR HY000: Incorrect arguments to EXECUTE
prepare s from "select 1 limit ?, ?";
execute s using @a, @a;
ERROR HY000: Incorrect arguments to EXECUTE
set @a=14632475938453979136;
execute s using @a, @a;
1
set @a=-14632475938453979136;
execute s using @a, @a;
ERROR HY000: Incorrect arguments to EXECUTE
End of 5.0 tests
select 1 as a limit 4294967296,10;
a
CREATE TABLE t1 (a int PRIMARY KEY auto_increment);
INSERT INTO t1 VALUES (),(),(),(),(),(),(),(),(),();
INSERT INTO t1 VALUES (),(),(),(),(),(),(),(),(),();
SELECT a FROM t1 ORDER BY a LIMIT 10 OFFSET 1;
a
2
3
4
5
6
7
8
9
10
11
SELECT a FROM t1 ORDER BY a LIMIT 10 OFFSET 10;
a
11
12
13
14
15
16
17
18
19
20
SELECT a FROM t1 ORDER BY a LIMIT 2 OFFSET 14;
a
15
16
DROP TABLE t1;
End of 5.1 tests