mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Create 'main' test directory and move 't' and 'r' there
This commit is contained in:
153
mysql-test/main/multi_update_innodb.result
Normal file
153
mysql-test/main/multi_update_innodb.result
Normal file
@ -0,0 +1,153 @@
|
||||
#
|
||||
# BUG#57373: Multi update+InnoDB reports ER_KEY_NOT_FOUND if a
|
||||
# table is updated twice
|
||||
#
|
||||
CREATE TABLE t1(
|
||||
pk INT,
|
||||
a INT,
|
||||
b INT,
|
||||
PRIMARY KEY (pk)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (0,0,0);
|
||||
UPDATE t1 AS A, t1 AS B SET A.pk = 1, B.a = 2;
|
||||
ERROR HY000: Primary key/partition key update is not allowed since the table is updated both as 'A' and 'B'
|
||||
SELECT * FROM t1;
|
||||
pk a b
|
||||
0 0 0
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
UPDATE v1 AS A, t1 AS B SET A.pk = 1, B.a = 2;
|
||||
ERROR HY000: Primary key/partition key update is not allowed since the table is updated both as 'A' and 'B'
|
||||
SELECT * FROM t1;
|
||||
pk a b
|
||||
0 0 0
|
||||
UPDATE t1 AS A, t1 AS B SET A.a = 1, B.b = 2;
|
||||
# Should be (0,1,2)
|
||||
SELECT * FROM t1;
|
||||
pk a b
|
||||
0 1 2
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# BUG#11882110: UPDATE REPORTS ER_KEY_NOT_FOUND IF TABLE IS
|
||||
# UPDATED TWICE
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
col_int_key int,
|
||||
pk int,
|
||||
col_int int,
|
||||
key(col_int_key),
|
||||
primary key (pk)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1,2,3);
|
||||
|
||||
CREATE TABLE t2 (
|
||||
col_int_key int,
|
||||
pk_1 int,
|
||||
pk_2 int,
|
||||
col_int int,
|
||||
key(col_int_key),
|
||||
primary key (pk_1,pk_2)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t2 VALUES (1,2,3,4);
|
||||
|
||||
UPDATE t1 AS A NATURAL JOIN t1 B SET A.pk=5,B.pk=7;
|
||||
ERROR HY000: Primary key/partition key update is not allowed since the table is updated both as 'A' and 'B'
|
||||
|
||||
SELECT * FROM t1;
|
||||
col_int_key pk col_int
|
||||
1 2 3
|
||||
|
||||
UPDATE t2 AS A NATURAL JOIN t2 B SET A.pk_1=5,B.pk_1=7;
|
||||
ERROR HY000: Primary key/partition key update is not allowed since the table is updated both as 'A' and 'B'
|
||||
|
||||
UPDATE t2 AS A NATURAL JOIN t2 B SET A.pk_2=10,B.pk_2=11;
|
||||
ERROR HY000: Primary key/partition key update is not allowed since the table is updated both as 'A' and 'B'
|
||||
|
||||
SELECT * FROM t2;
|
||||
col_int_key pk_1 pk_2 col_int
|
||||
1 2 3 4
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
# Bug mdev-5970
|
||||
# Bug#13256831 - ERROR 1032 (HY000): CAN'T FIND RECORD
|
||||
|
||||
CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
|
||||
CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (5, 7);
|
||||
INSERT INTO t2 VALUES (6, 97);
|
||||
CREATE ALGORITHM = MERGE VIEW v1 AS
|
||||
SELECT a2.f1 AS f1, a2.f2 AS f2
|
||||
FROM t1 AS a1 JOIN t2 AS a2 ON a1.f2 > a2.f1
|
||||
WITH LOCAL CHECK OPTION;
|
||||
SELECT * FROM v1;
|
||||
f1 f2
|
||||
6 97
|
||||
UPDATE v1 SET f1 = 1;
|
||||
SELECT * FROM v1;
|
||||
f1 f2
|
||||
1 97
|
||||
DROP TABLE t1, t2;
|
||||
DROP VIEW v1;
|
||||
#
|
||||
# MDEV-5973: MySQL Bug#11757486:49539: NON-DESCRIPTIVE ERR (ERROR 0
|
||||
# FROM STORAGE ENGINE) WITH MULTI-TABLE UPDATE
|
||||
#
|
||||
CREATE TABLE table_11757486 (field1 tinyint) ENGINE=INNODB;
|
||||
INSERT INTO table_11757486 VALUES (0),(0);
|
||||
SET SESSION SQL_MODE='STRICT_ALL_TABLES';
|
||||
UPDATE IGNORE (SELECT 128 as col1) x, table_11757486 SET field1=x.col1;
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'field1' at row 1
|
||||
Warning 1264 Out of range value for column 'field1' at row 2
|
||||
UPDATE IGNORE table_11757486 SET field1=128;
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'field1' at row 1
|
||||
Warning 1264 Out of range value for column 'field1' at row 2
|
||||
UPDATE (SELECT 128 as col1) x, table_11757486 SET field1=x.col1;
|
||||
ERROR 22003: Out of range value for column 'field1' at row 1
|
||||
UPDATE table_11757486 SET field1=128;
|
||||
ERROR 22003: Out of range value for column 'field1' at row 1
|
||||
SET SESSION SQL_MODE='';
|
||||
UPDATE IGNORE (SELECT 128 as col1) x, table_11757486 SET field1=x.col1;
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'field1' at row 1
|
||||
Warning 1264 Out of range value for column 'field1' at row 2
|
||||
UPDATE IGNORE table_11757486 SET field1=128;
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'field1' at row 1
|
||||
Warning 1264 Out of range value for column 'field1' at row 2
|
||||
DROP TABLE table_11757486;
|
||||
SET SESSION SQL_MODE=default;
|
||||
create table t1 (
|
||||
aclid bigint not null primary key,
|
||||
status tinyint(1) not null
|
||||
) engine = innodb;
|
||||
create table t2 (
|
||||
refid bigint not null primary key,
|
||||
aclid bigint, index idx_acl(aclid)
|
||||
) engine = innodb;
|
||||
insert into t2 values(1,null);
|
||||
delete t2, t1 from t2 left join t1 on (t2.aclid=t1.aclid) where t2.refid='1';
|
||||
drop table t1, t2;
|
||||
create table t1 ( c char(8) not null ) engine=innodb;
|
||||
insert into t1 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9');
|
||||
insert into t1 values ('A'),('B'),('C'),('D'),('E'),('F');
|
||||
alter table t1 add b char(8) not null;
|
||||
alter table t1 add a char(8) not null;
|
||||
alter table t1 add primary key (a,b,c);
|
||||
update t1 set a=c, b=c;
|
||||
create table t2 like t1;
|
||||
insert into t2 select * from t1;
|
||||
delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
|
||||
drop table t1,t2;
|
||||
create table t1 ( c char(8) not null ) engine=innodb;
|
||||
insert into t1 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9');
|
||||
insert into t1 values ('A'),('B'),('C'),('D'),('E'),('F');
|
||||
alter table t1 add b char(8) not null;
|
||||
alter table t1 add a char(8) not null;
|
||||
alter table t1 add primary key (a,b,c);
|
||||
update t1 set a=c, b=c;
|
||||
create table t2 like t1;
|
||||
insert into t2 select * from t1;
|
||||
delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
|
||||
drop table t1,t2;
|
Reference in New Issue
Block a user