~stewart/drizzle/embedded-innodb-create-select-transaction-arrgh

« back to all changes in this revision

Viewing changes to mysql-test/r/select_safe.result

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
drop table if exists t1;
 
2
SET SQL_SAFE_UPDATES=1,SQL_SELECT_LIMIT=4, SQL_MAX_JOIN_SIZE=9;
 
3
create table t1 (a int auto_increment primary key, b char(20));
 
4
insert into t1 values(1,"test");
 
5
SELECT SQL_BUFFER_RESULT * from t1;
 
6
a       b
 
7
1       test
 
8
update t1 set b="a" where a=1;
 
9
delete from t1 where a=1;
 
10
insert into t1 values(1,"test"),(2,"test2");
 
11
SELECT SQL_BUFFER_RESULT * from t1;
 
12
a       b
 
13
1       test
 
14
2       test2
 
15
update t1 set b="a" where a=1;
 
16
select 1 from t1,t1 as t2,t1 as t3;
 
17
1
 
18
1
 
19
1
 
20
1
 
21
1
 
22
update t1 set b="a";
 
23
ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
 
24
update t1 set b="a" where b="test";
 
25
ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
 
26
delete from t1;
 
27
ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
 
28
delete from t1 where b="test";
 
29
ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
 
30
delete from t1 where a+0=1;
 
31
ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
 
32
select 1 from t1,t1 as t2,t1 as t3,t1 as t4,t1 as t5;
 
33
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
 
34
update t1 set b="a" limit 1;
 
35
update t1 set b="a" where b="b" limit 2;
 
36
delete from t1 where b="test" limit 1;
 
37
delete from t1 where a+0=1 limit 2;
 
38
alter table t1 add key b (b);
 
39
SET MAX_JOIN_SIZE=2;
 
40
SELECT @@MAX_JOIN_SIZE, @@SQL_BIG_SELECTS;
 
41
@@MAX_JOIN_SIZE @@SQL_BIG_SELECTS
 
42
2       0
 
43
insert into t1 values (null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a");
 
44
SELECT * from t1 order by a;
 
45
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
 
46
SET SQL_BIG_SELECTS=1;
 
47
SELECT * from t1 order by a;
 
48
a       b
 
49
2       test2
 
50
3       a
 
51
4       a
 
52
5       a
 
53
SET MAX_JOIN_SIZE=2;
 
54
SELECT * from t1;
 
55
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
 
56
SET MAX_JOIN_SIZE=DEFAULT;
 
57
SELECT * from t1;
 
58
a       b
 
59
2       test2
 
60
3       a
 
61
4       a
 
62
5       a
 
63
analyze table t1;
 
64
Table   Op      Msg_type        Msg_text
 
65
test.t1 analyze status  OK
 
66
insert into t1 values (null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a");
 
67
explain select STRAIGHT_JOIN * from t1,t1 as t2 where t1.b=t2.b;
 
68
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
69
1       SIMPLE  t1      ALL     b       NULL    NULL    NULL    21      
 
70
1       SIMPLE  t2      ref     b       b       21      test.t1.b       6       
 
71
set MAX_SEEKS_FOR_KEY=1;
 
72
explain select STRAIGHT_JOIN * from t1,t1 as t2 where t1.b=t2.b;
 
73
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
74
1       SIMPLE  t1      ALL     b       NULL    NULL    NULL    21      
 
75
1       SIMPLE  t2      ref     b       b       21      test.t1.b       6       
 
76
SET MAX_SEEKS_FOR_KEY=DEFAULT;
 
77
drop table t1;
 
78
create table t1 (a int);
 
79
insert into t1 values (1),(2),(3),(4),(5);
 
80
insert into t1 select * from t1;
 
81
insert into t1 select * from t1;
 
82
insert into t1 select * from t1;
 
83
set local  max_join_size=8;
 
84
select * from (select * from t1) x;
 
85
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
 
86
set local  max_join_size=1;
 
87
select * from (select a.a as aa, b.a as ba from t1 a, t1 b) x;
 
88
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
 
89
set local  max_join_size=1;
 
90
select * from (select 1 union select 2 union select 3) x;
 
91
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
 
92
drop table t1;
 
93
SET SQL_SAFE_UPDATES=0,SQL_SELECT_LIMIT=DEFAULT, SQL_MAX_JOIN_SIZE=DEFAULT;