summaryrefslogtreecommitdiffstats
path: root/storage/rocksdb/mysql-test/rocksdb_sys_vars/t/rocksdb_delete_cf_basic.test
blob: 0875e492b2ce16648dc2f3342d44b050940b5741 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
--disable_query_log
call mtr.add_suppression("Failed to drop column family");
call mtr.add_suppression("Column family '[a-z_]+' not found");
--enable_query_log

--source include/have_rocksdb.inc

# should fail for not existing CF
--error ER_WRONG_VALUE_FOR_VAR
--eval SET @@global.ROCKSDB_DELETE_CF = 'nonexistent_cf'

# should fail for default system cf
--error ER_WRONG_VALUE_FOR_VAR
--eval SET @@global.ROCKSDB_DELETE_CF = '__system__'

# should fail for default cf
--error ER_WRONG_VALUE_FOR_VAR
--eval SET @@global.ROCKSDB_DELETE_CF = 'default'

--disable_parsing
# should succeed for not existing CF
--eval SET @@global.ROCKSDB_DELETE_CF = 'nonexistent_cf'

# should fail for default system cf
--error ER_WRONG_VALUE_FOR_VAR
--eval SET @@global.ROCKSDB_DELETE_CF = '__system__'

alter table mysql.slave_worker_info engine = MyISAM;
alter table mysql.slave_relay_log_info engine = MyISAM;
alter table mysql.slave_gtid_info engine = MyISAM;
alter table mysql.slave_master_info engine = MyISAM;

select count(*) from information_schema.rocksdb_ddl where cf = 'default';

# should fail for default cf
--error ER_GET_ERRMSG
--eval SET @@global.ROCKSDB_DELETE_CF = 'default'

CREATE TABLE cf_deletion_test_table1 (
  id1 int(10) unsigned NOT NULL DEFAULT '0',
  id2 int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (id1) COMMENT 'cf_primary_key',
  KEY `sec_key` (id2) COMMENT 'cf_secondary_key'
) ENGINE=ROCKSDB;

# should fail, CFs are still in use
--error ER_WRONG_VALUE_FOR_VAR
--eval SET @@global.ROCKSDB_DELETE_CF = 'cf_primary_key'
--error ER_WRONG_VALUE_FOR_VAR
--eval SET @@global.ROCKSDB_DELETE_CF = 'cf_secondary_key'

CREATE TABLE cf_deletion_test_table2 (
  id1 int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (id1) COMMENT 'cf_primary_key'
) ENGINE=ROCKSDB;

DROP TABLE cf_deletion_test_table1;

# should fail, still used by second table
--error ER_WRONG_VALUE_FOR_VAR
--eval SET @@global.ROCKSDB_DELETE_CF = 'cf_primary_key'

# should succeed, no one is using it anymore
--eval SET @@global.ROCKSDB_DELETE_CF = 'cf_secondary_key'

DROP TABLE cf_deletion_test_table2;

# should succeed now
--eval SET @@global.ROCKSDB_DELETE_CF = 'cf_primary_key'

alter table mysql.slave_worker_info engine = ROCKSDB;
alter table mysql.slave_relay_log_info engine = ROCKSDB;
alter table mysql.slave_gtid_info engine = ROCKSDB;
alter table mysql.slave_master_info engine = ROCKSDB;
--enable_parsing