mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 17:33:44 +01:00
Port a change from MySQL:
WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX Change "duplicate key" message to print key name instead of key number.
This commit is contained in:
parent
a4f9f1d4e3
commit
474b4887de
2 changed files with 25 additions and 23 deletions
|
@ -234,7 +234,7 @@ n after commit
|
||||||
commit;
|
commit;
|
||||||
insert into t1 values (5);
|
insert into t1 values (5);
|
||||||
insert into t1 values (4);
|
insert into t1 values (4);
|
||||||
ERROR 23000: Duplicate entry '4' for key 1
|
ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
|
||||||
commit;
|
commit;
|
||||||
select n, "after commit" from t1;
|
select n, "after commit" from t1;
|
||||||
n after commit
|
n after commit
|
||||||
|
@ -243,7 +243,7 @@ n after commit
|
||||||
set autocommit=1;
|
set autocommit=1;
|
||||||
insert into t1 values (6);
|
insert into t1 values (6);
|
||||||
insert into t1 values (4);
|
insert into t1 values (4);
|
||||||
ERROR 23000: Duplicate entry '4' for key 1
|
ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
|
||||||
select n from t1;
|
select n from t1;
|
||||||
n
|
n
|
||||||
4
|
4
|
||||||
|
@ -318,7 +318,7 @@ drop table t1;
|
||||||
CREATE TABLE t1 (id char(8) not null primary key, val int not null) engine=innodb;
|
CREATE TABLE t1 (id char(8) not null primary key, val int not null) engine=innodb;
|
||||||
insert into t1 values ('pippo', 12);
|
insert into t1 values ('pippo', 12);
|
||||||
insert into t1 values ('pippo', 12);
|
insert into t1 values ('pippo', 12);
|
||||||
ERROR 23000: Duplicate entry 'pippo' for key 1
|
ERROR 23000: Duplicate entry 'pippo' for key 'PRIMARY'
|
||||||
delete from t1;
|
delete from t1;
|
||||||
delete from t1 where id = 'pippo';
|
delete from t1 where id = 'pippo';
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
@ -482,9 +482,9 @@ UNIQUE ggid (ggid)
|
||||||
insert into t1 (ggid,passwd) values ('test1','xxx');
|
insert into t1 (ggid,passwd) values ('test1','xxx');
|
||||||
insert into t1 (ggid,passwd) values ('test2','yyy');
|
insert into t1 (ggid,passwd) values ('test2','yyy');
|
||||||
insert into t1 (ggid,passwd) values ('test2','this will fail');
|
insert into t1 (ggid,passwd) values ('test2','this will fail');
|
||||||
ERROR 23000: Duplicate entry 'test2' for key 2
|
ERROR 23000: Duplicate entry 'test2' for key 'ggid'
|
||||||
insert into t1 (ggid,id) values ('this will fail',1);
|
insert into t1 (ggid,id) values ('this will fail',1);
|
||||||
ERROR 23000: Duplicate entry '1' for key 1
|
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||||
select * from t1 where ggid='test1';
|
select * from t1 where ggid='test1';
|
||||||
id ggid email passwd
|
id ggid email passwd
|
||||||
1 test1 xxx
|
1 test1 xxx
|
||||||
|
@ -497,7 +497,7 @@ id ggid email passwd
|
||||||
replace into t1 (ggid,id) values ('this will work',1);
|
replace into t1 (ggid,id) values ('this will work',1);
|
||||||
replace into t1 (ggid,passwd) values ('test2','this will work');
|
replace into t1 (ggid,passwd) values ('test2','this will work');
|
||||||
update t1 set id=100,ggid='test2' where id=1;
|
update t1 set id=100,ggid='test2' where id=1;
|
||||||
ERROR 23000: Duplicate entry 'test2' for key 2
|
ERROR 23000: Duplicate entry 'test2' for key 'ggid'
|
||||||
select * from t1;
|
select * from t1;
|
||||||
id ggid email passwd
|
id ggid email passwd
|
||||||
1 this will work
|
1 this will work
|
||||||
|
@ -816,7 +816,7 @@ create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(3
|
||||||
insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL');
|
insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL');
|
||||||
LOCK TABLES t1 WRITE;
|
LOCK TABLES t1 WRITE;
|
||||||
insert into t1 values (99,1,2,'D'),(1,1,2,'D');
|
insert into t1 values (99,1,2,'D'),(1,1,2,'D');
|
||||||
ERROR 23000: Duplicate entry '1-1' for key 1
|
ERROR 23000: Duplicate entry '1-1' for key 'PRIMARY'
|
||||||
select id from t1;
|
select id from t1;
|
||||||
id
|
id
|
||||||
0
|
0
|
||||||
|
@ -834,7 +834,7 @@ insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJ
|
||||||
LOCK TABLES t1 WRITE;
|
LOCK TABLES t1 WRITE;
|
||||||
begin;
|
begin;
|
||||||
insert into t1 values (99,1,2,'D'),(1,1,2,'D');
|
insert into t1 values (99,1,2,'D'),(1,1,2,'D');
|
||||||
ERROR 23000: Duplicate entry '1-1' for key 1
|
ERROR 23000: Duplicate entry '1-1' for key 'PRIMARY'
|
||||||
select id from t1;
|
select id from t1;
|
||||||
id
|
id
|
||||||
0
|
0
|
||||||
|
@ -1783,7 +1783,7 @@ Variable_name Value
|
||||||
innodb_sync_spin_loops 20
|
innodb_sync_spin_loops 20
|
||||||
show variables like "innodb_thread_concurrency";
|
show variables like "innodb_thread_concurrency";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
innodb_thread_concurrency 0
|
innodb_thread_concurrency 20
|
||||||
set global innodb_thread_concurrency=1001;
|
set global innodb_thread_concurrency=1001;
|
||||||
show variables like "innodb_thread_concurrency";
|
show variables like "innodb_thread_concurrency";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
|
@ -1791,7 +1791,7 @@ innodb_thread_concurrency 1000
|
||||||
set global innodb_thread_concurrency=0;
|
set global innodb_thread_concurrency=0;
|
||||||
show variables like "innodb_thread_concurrency";
|
show variables like "innodb_thread_concurrency";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
innodb_thread_concurrency 0
|
innodb_thread_concurrency 1
|
||||||
set global innodb_thread_concurrency=16;
|
set global innodb_thread_concurrency=16;
|
||||||
show variables like "innodb_thread_concurrency";
|
show variables like "innodb_thread_concurrency";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
|
@ -1964,7 +1964,7 @@ explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a '
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref v v 13 const # Using where; Using index
|
1 SIMPLE t1 ref v v 13 const # Using where; Using index
|
||||||
alter table t1 add unique(v);
|
alter table t1 add unique(v);
|
||||||
ERROR 23000: Duplicate entry '{ ' for key 1
|
ERROR 23000: Duplicate entry '{ ' for key 'v_2'
|
||||||
alter table t1 add key(v);
|
alter table t1 add key(v);
|
||||||
select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
|
select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
|
||||||
qq
|
qq
|
||||||
|
@ -2324,16 +2324,16 @@ drop table t1;
|
||||||
create table t1 (a char(10), unique (a));
|
create table t1 (a char(10), unique (a));
|
||||||
insert into t1 values ('a ');
|
insert into t1 values ('a ');
|
||||||
insert into t1 values ('a ');
|
insert into t1 values ('a ');
|
||||||
ERROR 23000: Duplicate entry 'a' for key 1
|
ERROR 23000: Duplicate entry 'a' for key 'a'
|
||||||
alter table t1 modify a varchar(10);
|
alter table t1 modify a varchar(10);
|
||||||
insert into t1 values ('a '),('a '),('a '),('a ');
|
insert into t1 values ('a '),('a '),('a '),('a ');
|
||||||
ERROR 23000: Duplicate entry 'a ' for key 1
|
ERROR 23000: Duplicate entry 'a ' for key 'a'
|
||||||
insert into t1 values ('a ');
|
insert into t1 values ('a ');
|
||||||
ERROR 23000: Duplicate entry 'a ' for key 1
|
ERROR 23000: Duplicate entry 'a ' for key 'a'
|
||||||
insert into t1 values ('a ');
|
insert into t1 values ('a ');
|
||||||
ERROR 23000: Duplicate entry 'a ' for key 1
|
ERROR 23000: Duplicate entry 'a ' for key 'a'
|
||||||
insert into t1 values ('a ');
|
insert into t1 values ('a ');
|
||||||
ERROR 23000: Duplicate entry 'a ' for key 1
|
ERROR 23000: Duplicate entry 'a ' for key 'a'
|
||||||
update t1 set a='a ' where a like 'a%';
|
update t1 set a='a ' where a like 'a%';
|
||||||
select concat(a,'.') from t1;
|
select concat(a,'.') from t1;
|
||||||
concat(a,'.')
|
concat(a,'.')
|
||||||
|
@ -2456,7 +2456,7 @@ key (rowid), unique(val)) engine=innodb;
|
||||||
replace into t1 (val) values ('1'),('2');
|
replace into t1 (val) values ('1'),('2');
|
||||||
replace into t1 (val) values ('1'),('2');
|
replace into t1 (val) values ('1'),('2');
|
||||||
insert into t1 (val) values ('1'),('2');
|
insert into t1 (val) values ('1'),('2');
|
||||||
ERROR 23000: Duplicate entry '1' for key 2
|
ERROR 23000: Duplicate entry '1' for key 'val'
|
||||||
select * from t1;
|
select * from t1;
|
||||||
rowid val
|
rowid val
|
||||||
3 1
|
3 1
|
||||||
|
@ -2466,7 +2466,7 @@ create table t1 (a int not null auto_increment primary key, val int) engine=Inno
|
||||||
insert into t1 (val) values (1);
|
insert into t1 (val) values (1);
|
||||||
update t1 set a=2 where a=1;
|
update t1 set a=2 where a=1;
|
||||||
insert into t1 (val) values (1);
|
insert into t1 (val) values (1);
|
||||||
ERROR 23000: Duplicate entry '2' for key 1
|
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a val
|
a val
|
||||||
2 1
|
2 1
|
||||||
|
@ -2943,13 +2943,13 @@ create table t3 (s1 varchar(2) binary,primary key (s1)) engine=innodb;
|
||||||
create table t4 (s1 char(2) binary,primary key (s1)) engine=innodb;
|
create table t4 (s1 char(2) binary,primary key (s1)) engine=innodb;
|
||||||
insert into t1 values (0x41),(0x4120),(0x4100);
|
insert into t1 values (0x41),(0x4120),(0x4100);
|
||||||
insert into t2 values (0x41),(0x4120),(0x4100);
|
insert into t2 values (0x41),(0x4120),(0x4100);
|
||||||
ERROR 23000: Duplicate entry 'A' for key 1
|
ERROR 23000: Duplicate entry 'A' for key 'PRIMARY'
|
||||||
insert into t2 values (0x41),(0x4120);
|
insert into t2 values (0x41),(0x4120);
|
||||||
insert into t3 values (0x41),(0x4120),(0x4100);
|
insert into t3 values (0x41),(0x4120),(0x4100);
|
||||||
ERROR 23000: Duplicate entry 'A ' for key 1
|
ERROR 23000: Duplicate entry 'A ' for key 'PRIMARY'
|
||||||
insert into t3 values (0x41),(0x4100);
|
insert into t3 values (0x41),(0x4100);
|
||||||
insert into t4 values (0x41),(0x4120),(0x4100);
|
insert into t4 values (0x41),(0x4120),(0x4100);
|
||||||
ERROR 23000: Duplicate entry 'A' for key 1
|
ERROR 23000: Duplicate entry 'A' for key 'PRIMARY'
|
||||||
insert into t4 values (0x41),(0x4100);
|
insert into t4 values (0x41),(0x4100);
|
||||||
select hex(s1) from t1;
|
select hex(s1) from t1;
|
||||||
hex(s1)
|
hex(s1)
|
||||||
|
@ -3152,7 +3152,9 @@ SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t2 CREATE TABLE `t2` (
|
t2 CREATE TABLE `t2` (
|
||||||
`a` int(11) default NULL,
|
`a` int(11) default NULL,
|
||||||
KEY `t2_ibfk_0` (`a`)
|
KEY `t2_ibfk_0` (`a`),
|
||||||
|
CONSTRAINT `t2_ibfk_0` FOREIGN KEY (`a`) REFERENCES `t1` (`a`),
|
||||||
|
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t2,t1;
|
DROP TABLE t2,t1;
|
||||||
create table t1(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
|
create table t1(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
|
||||||
|
|
|
@ -121,7 +121,7 @@ id a
|
||||||
begin;
|
begin;
|
||||||
insert into t3 VALUES ( NULL, 1, 1, 2 );
|
insert into t3 VALUES ( NULL, 1, 1, 2 );
|
||||||
insert into t3 VALUES ( NULL, 1, 1, 2 );
|
insert into t3 VALUES ( NULL, 1, 1, 2 );
|
||||||
ERROR 23000: Duplicate entry '1-1' for key 2
|
ERROR 23000: Duplicate entry '1-1' for key 't1_id'
|
||||||
commit;
|
commit;
|
||||||
select t1.* from t1, t2, t3 where t3.state & 1 = 0 and t3.t1_id = t1.id and t3.t2_id = t2.id and t1.id = 1 order by t1.a asc;
|
select t1.* from t1, t2, t3 where t3.state & 1 = 0 and t3.t1_id = t1.id and t3.t2_id = t2.id and t1.id = 1 order by t1.a asc;
|
||||||
id a
|
id a
|
||||||
|
|
Loading…
Add table
Reference in a new issue