mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
ecf323620b
As MDEV-18799 fixes these mdevs so adding test cases for these mdevs.
143 lines
4.7 KiB
Text
143 lines
4.7 KiB
Text
--source include/have_innodb.inc
|
|
|
|
#
|
|
# MDEV-18707 Server crash in my_hash_sort_bin, ASAN heap-use-after-free in Field::is_null, server hang, corrupted double-linked list
|
|
#
|
|
create table t1 (a int, b int, c int, d int, e int);
|
|
insert into t1 () values
|
|
(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),
|
|
(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),
|
|
(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),
|
|
(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),
|
|
(),(),(),();
|
|
select * into outfile 'load.data' from t1;
|
|
create temporary table tmp (a varchar(1024), b int, c int, d int, e linestring, unique (e));
|
|
load data infile 'load.data' into table tmp;
|
|
delete from tmp;
|
|
drop table t1;
|
|
--let $datadir= `SELECT @@datadir`
|
|
--remove_file $datadir/test/load.data
|
|
|
|
#
|
|
# MDEV-18712 InnoDB indexes are inconsistent with what defined in .frm for table after rebuilding table with index on blob
|
|
#
|
|
create table t1 (b blob) engine=innodb;
|
|
alter table t1 add unique (b);
|
|
alter table t1 force;
|
|
show create table t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# MDEV-18713 Assertion `strcmp(share->unique_file_name,filename) || share->last_version' failed in test_if_reopen upon REPLACE into table with key on blob
|
|
#
|
|
create table t1 (pk int, b blob, primary key(pk), unique(b)) engine=myisam;
|
|
insert into t1 values (1,'foo');
|
|
replace into t1 (pk) values (1);
|
|
alter table t1 force;
|
|
replace into t1 (pk) values (1);
|
|
drop table t1;
|
|
|
|
#
|
|
# MDEV-18722 Assertion `templ->mysql_null_bit_mask' failed in row_sel_store_mysql_rec upon modifying indexed column into blob
|
|
#
|
|
create table t1 (t time, unique(t)) engine=innodb;
|
|
insert into t1 values (null),(null);
|
|
alter ignore table t1 modify t text not null default '';
|
|
drop table t1;
|
|
|
|
#
|
|
# MDEV-18720 Assertion `inited==NONE' failed in ha_index_init upon update on versioned table with key on blob
|
|
#
|
|
create table t1 ( pk int, f text, primary key (pk), unique(f)) with system versioning;
|
|
insert into t1 values (1,'foo');
|
|
update t1 set f = 'bar';
|
|
select * from t1;
|
|
update t1 set f = 'foo';
|
|
select * from t1;
|
|
select pk, f, row_end > DATE'2030-01-01' from t1 for system_time all;
|
|
drop table t1;
|
|
|
|
#
|
|
# MDEV-18747 InnoDB: Failing assertion: table->get_ref_count() == 0 upon dropping temporary table with unique blob
|
|
#
|
|
create temporary table t1 (f blob, unique(f)) engine=innodb;
|
|
insert into t1 values (1);
|
|
replace into t1 values (1);
|
|
drop table t1;
|
|
|
|
#
|
|
# MDEV-18748 REPLACE doesn't work with unique blobs on MyISAM table
|
|
#
|
|
create table t (b blob, unique(b)) engine=myisam;
|
|
insert into t values ('foo');
|
|
replace into t values ('foo');
|
|
drop table t;
|
|
|
|
#
|
|
# MDEV-18790 Server crash in fields_in_hash_keyinfo after unsuccessful attempt to drop BLOB with long index
|
|
#
|
|
CREATE TABLE t1 (f INT, x BLOB, UNIQUE (x));
|
|
INSERT INTO t1 VALUES (1,'foo');
|
|
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
|
ALTER TABLE t1 DROP x, ALGORITHM=INPLACE;
|
|
UPDATE t1 SET x = 'bar';
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# MDEV-18799 Long unique does not work after failed alter table
|
|
#
|
|
create table t1(a blob unique , b blob);
|
|
insert into t1 values(1,1),(2,1);
|
|
--error ER_DUP_ENTRY
|
|
alter table t1 add unique(b);
|
|
--query_vertical show keys from t1;
|
|
--error ER_DUP_ENTRY
|
|
insert into t1 values(1,1);
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# MDEV-18792 ASAN unknown-crash in _mi_pack_key upon UPDATE after failed ALTER on a table with long BLOB key
|
|
#
|
|
CREATE TABLE t1 (a TEXT, b INT, UNIQUE(a)) ENGINE=MyISAM;
|
|
--error ER_CANT_DROP_FIELD_OR_KEY
|
|
ALTER TABLE t1 DROP x;
|
|
UPDATE t1 SET b = 0 WHERE a = 'foo';
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# MDEV-18793 Assertion `0' failed in row_sel_convert_mysql_key_to_innobase, ASAN unknown-crash in
|
|
# row_mysql_store_col_in_innobase_format, warning " InnoDB: Using a partial-field key prefix in search"
|
|
#
|
|
CREATE TABLE t1 (a TEXT, b INT, UNIQUE(a)) ENGINE=InnoDB;
|
|
--error ER_CANT_DROP_FIELD_OR_KEY
|
|
ALTER TABLE t1 DROP x;
|
|
UPDATE t1 SET b = 0 WHERE a = 'foo';
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# MDEV-18795 InnoDB: Failing assertion: field->prefix_len > 0 upon DML on table with BLOB index
|
|
#
|
|
CREATE TEMPORARY TABLE t1 (f BLOB, UNIQUE(f)) ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
|
--error ER_INDEX_COLUMN_TOO_LONG
|
|
ALTER TABLE t1 ADD KEY (f);
|
|
TRUNCATE TABLE t1;
|
|
SELECT * FROM t1 WHERE f LIKE 'foo';
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# MDEV-18798 InnoDB: No matching column for `DB_ROW_HASH_1`and server crash in
|
|
# ha_innobase::commit_inplace_alter_table upon ALTER on table with UNIQUE key
|
|
#
|
|
CREATE TABLE t1 (a INT, UNIQUE ind USING HASH (a)) ENGINE=InnoDB;
|
|
ALTER TABLE t1 CHANGE COLUMN IF EXISTS b a INT;
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# MDEV-18801 InnoDB: Failing assertion: field->col->mtype == type or ASAN heap-buffer-overflow
|
|
# in row_sel_convert_mysql_key_to_innobase upon SELECT on table with long index
|
|
#
|
|
CREATE TABLE t1 (f VARCHAR(4096), UNIQUE(f)) ENGINE=InnoDB;
|
|
--error ER_CANT_DROP_FIELD_OR_KEY
|
|
ALTER TABLE t1 DROP x;
|
|
SELECT * FROM t1 WHERE f LIKE 'foo';
|
|
DROP TABLE t1;
|