mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 14:02:32 +01:00
eb65479127
Fixes the following bugs: Bug #30706: SQL thread on slave is allowed to block client queries when slave load is high Add (innodb|innobase|srv)_replication_delay MySQL config parameter. Bug #30888: Innodb table + stored procedure + row deletion = server crash While adding code for the low level read of the AUTOINC value from the index, the case for MEDIUM ints which are 3 bytes was missed triggering an assertion. Bug #30907: Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases We don't rely on *first_value to be 0 when checking whether get_auto_increment() has been invoked for the first time in a multi-row INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows inside ha_innobase::start_stmt() too. Bug #31444: "InnoDB: Error: MySQL is freeing a thd" in innodb_mysql.test ha_innobase::external_lock(): Update prebuilt->mysql_has_locked and trx->n_mysql_tables_in_use only after row_lock_table_for_mysql() returns DB_SUCCESS. A timeout on LOCK TABLES would lead to an inconsistent state, which would cause trx_free() to print a warning. Bug #31494: innodb + 5.1 + read committed crash, assertion Set an error code when a deadlock occurs in semi-consistent read.
39 lines
1.2 KiB
Text
39 lines
1.2 KiB
Text
drop table if exists t1;
|
|
CREATE TABLE t1 (
|
|
id int(11) NOT NULL auto_increment,
|
|
ggid varchar(32) binary DEFAULT '' NOT NULL,
|
|
email varchar(64) DEFAULT '' NOT NULL,
|
|
passwd varchar(32) binary DEFAULT '' NOT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE ggid (ggid)
|
|
) ENGINE=innodb;
|
|
insert into t1 (ggid,passwd) values ('test1','xxx');
|
|
insert into t1 (ggid,passwd) values ('test2','yyy');
|
|
insert into t1 (ggid,passwd) values ('test2','this will fail');
|
|
ERROR 23000: Duplicate entry 'test2' for key 'ggid'
|
|
insert into t1 (ggid,id) values ('this will fail',1);
|
|
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
|
select * from t1 where ggid='test1';
|
|
id ggid email passwd
|
|
1 test1 xxx
|
|
select * from t1 where passwd='xxx';
|
|
id ggid email passwd
|
|
1 test1 xxx
|
|
select * from t1 where id=2;
|
|
id ggid email passwd
|
|
2 test2 yyy
|
|
replace into t1 (ggid,id) values ('this will work',1);
|
|
replace into t1 (ggid,passwd) values ('test2','this will work');
|
|
update t1 set id=100,ggid='test2' where id=1;
|
|
ERROR 23000: Duplicate entry 'test2' for key 'ggid'
|
|
select * from t1;
|
|
id ggid email passwd
|
|
1 this will work
|
|
3 test2 this will work
|
|
select * from t1 where id=1;
|
|
id ggid email passwd
|
|
1 this will work
|
|
select * from t1 where id=999;
|
|
id ggid email passwd
|
|
drop table t1;
|
|
End of tests
|