mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Merge sinisa@work.mysql.com:/home/bk/mysql-4.1
into sinisa.nasamreza.org:/mnt/work/mysql-4.1 sql/sql_parse.cc: Auto merged
This commit is contained in:
commit
98627eab14
5 changed files with 47 additions and 4 deletions
|
@ -64,3 +64,16 @@ use test_$1;
|
||||||
create table t1 (c int);
|
create table t1 (c int);
|
||||||
insert into test_$1.t1 set test_$1.t1.c = '1';
|
insert into test_$1.t1 set test_$1.t1.c = '1';
|
||||||
drop database test_$1;
|
drop database test_$1;
|
||||||
|
use test;
|
||||||
|
drop table if exists t1,t2,t3;
|
||||||
|
create table t1(id1 int not null auto_increment primary key, t char(12));
|
||||||
|
create table t2(id2 int not null, t char(12));
|
||||||
|
create table t3(id3 int not null, t char(12), index(id3));
|
||||||
|
select count(*) from t2;
|
||||||
|
count(*)
|
||||||
|
500
|
||||||
|
insert into t2 select t1.* from t1, t2 t, t3 where t1.id1 = t.id2 and t.id2 = t3.id3;
|
||||||
|
select count(*) from t2;
|
||||||
|
count(*)
|
||||||
|
25500
|
||||||
|
drop table if exists t1,t2,t3;
|
||||||
|
|
|
@ -578,7 +578,6 @@ x
|
||||||
3
|
3
|
||||||
3
|
3
|
||||||
INSERT INTO t1 (x) select (SELECT SUM(x)+2 FROM t1) FROM t2;
|
INSERT INTO t1 (x) select (SELECT SUM(x)+2 FROM t1) FROM t2;
|
||||||
You can't specify target table 't1' for update in FROM clause
|
|
||||||
INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(x) FROM t2));
|
INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(x) FROM t2));
|
||||||
select * from t1;
|
select * from t1;
|
||||||
x
|
x
|
||||||
|
@ -586,6 +585,8 @@ x
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
3
|
3
|
||||||
|
11
|
||||||
|
11
|
||||||
0
|
0
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
CREATE TABLE t1 (x int not null, y int, primary key (x));
|
CREATE TABLE t1 (x int not null, y int, primary key (x));
|
||||||
|
|
|
@ -65,3 +65,34 @@ use test_$1;
|
||||||
create table t1 (c int);
|
create table t1 (c int);
|
||||||
insert into test_$1.t1 set test_$1.t1.c = '1';
|
insert into test_$1.t1 set test_$1.t1.c = '1';
|
||||||
drop database test_$1;
|
drop database test_$1;
|
||||||
|
use test;
|
||||||
|
--disable_warnings
|
||||||
|
drop table if exists t1,t2,t3;
|
||||||
|
--enable_warnings
|
||||||
|
create table t1(id1 int not null auto_increment primary key, t char(12));
|
||||||
|
create table t2(id2 int not null, t char(12));
|
||||||
|
create table t3(id3 int not null, t char(12), index(id3));
|
||||||
|
disable_query_log;
|
||||||
|
let $1 = 100;
|
||||||
|
while ($1)
|
||||||
|
{
|
||||||
|
let $2 = 5;
|
||||||
|
eval insert into t1(t) values ('$1');
|
||||||
|
while ($2)
|
||||||
|
{
|
||||||
|
eval insert into t2(id2,t) values ($1,'$2');
|
||||||
|
let $3 = 10;
|
||||||
|
while ($3)
|
||||||
|
{
|
||||||
|
eval insert into t3(id3,t) values ($1,'$2');
|
||||||
|
dec $3;
|
||||||
|
}
|
||||||
|
dec $2;
|
||||||
|
}
|
||||||
|
dec $1;
|
||||||
|
}
|
||||||
|
enable_query_log;
|
||||||
|
select count(*) from t2;
|
||||||
|
insert into t2 select t1.* from t1, t2 t, t3 where t1.id1 = t.id2 and t.id2 = t3.id3;
|
||||||
|
select count(*) from t2;
|
||||||
|
drop table if exists t1,t2,t3;
|
||||||
|
|
|
@ -335,7 +335,6 @@ INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(a) FROM t2));
|
||||||
select * from t1;
|
select * from t1;
|
||||||
INSERT INTO t1 (x) select (SELECT SUM(a)+1 FROM t2) FROM t2;
|
INSERT INTO t1 (x) select (SELECT SUM(a)+1 FROM t2) FROM t2;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
-- error 1093
|
|
||||||
INSERT INTO t1 (x) select (SELECT SUM(x)+2 FROM t1) FROM t2;
|
INSERT INTO t1 (x) select (SELECT SUM(x)+2 FROM t1) FROM t2;
|
||||||
INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(x) FROM t2));
|
INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(x) FROM t2));
|
||||||
-- sleep 1
|
-- sleep 1
|
||||||
|
|
|
@ -2264,8 +2264,7 @@ mysql_execute_command(THD *thd)
|
||||||
|
|
||||||
if (find_real_table_in_list(tables->next, tables->db, tables->real_name))
|
if (find_real_table_in_list(tables->next, tables->db, tables->real_name))
|
||||||
{
|
{
|
||||||
net_printf(thd,ER_UPDATE_TABLE_USED,tables->real_name);
|
lex->select_lex.options |= OPTION_BUFFER_RESULT;
|
||||||
DBUG_VOID_RETURN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Skip first table, which is the table we are inserting in */
|
/* Skip first table, which is the table we are inserting in */
|
||||||
|
|
Loading…
Reference in a new issue