summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/gcol/t
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--mysql-test/suite/gcol/t/gcol_bugfixes.test35
-rw-r--r--mysql-test/suite/gcol/t/gcol_partition_innodb.test7
-rw-r--r--mysql-test/suite/gcol/t/gcol_purge.test2
-rw-r--r--mysql-test/suite/gcol/t/gcol_update.test5
-rw-r--r--mysql-test/suite/gcol/t/innodb_prefix_index_check.test43
-rw-r--r--mysql-test/suite/gcol/t/innodb_virtual_debug.test6
-rw-r--r--mysql-test/suite/gcol/t/innodb_virtual_purge.test5
7 files changed, 101 insertions, 2 deletions
diff --git a/mysql-test/suite/gcol/t/gcol_bugfixes.test b/mysql-test/suite/gcol/t/gcol_bugfixes.test
index 4c1b00a8..1edc9779 100644
--- a/mysql-test/suite/gcol/t/gcol_bugfixes.test
+++ b/mysql-test/suite/gcol/t/gcol_bugfixes.test
@@ -724,3 +724,38 @@ DROP TABLE t1;
--remove_file $datadir/test/load_t1
+--echo #
+--echo # MDEV-28566 Assertion `!expr->is_fixed()' failed in bool
+--echo # Virtual_column_info::fix_session_expr(THD*)
+--echo #
+
+CREATE TABLE t1 (c1 CHAR(1));
+FLUSH TABLES WITH READ LOCK;
+--error ER_CANT_UPDATE_WITH_READLOCK
+UPDATE t1 SET c1=1;
+unlock tables;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (c1 CHAR AS (CONCAT (0,DAYNAME (0))));
+FLUSH TABLES WITH READ LOCK;
+--error ER_CANT_UPDATE_WITH_READLOCK
+UPDATE t1 SET c1=1;
+unlock tables;
+UPDATE t1 SET c1=1;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (a int primary key, c1 CHAR AS (CONCAT (0,DAYNAME (0))));
+insert into t1 (a) values (1);
+FLUSH TABLES WITH READ LOCK;
+--error ER_CANT_UPDATE_WITH_READLOCK
+UPDATE t1 SET c1=1;
+--error ER_CANT_UPDATE_WITH_READLOCK
+UPDATE t1 SET a=2;
+unlock tables;
+UPDATE t1 SET a=2;
+--error ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
+UPDATE t1 SET c1=1;
+SELECT * FROM t1;
+DROP TABLE t1;
diff --git a/mysql-test/suite/gcol/t/gcol_partition_innodb.test b/mysql-test/suite/gcol/t/gcol_partition_innodb.test
index a8765970..6bcd9d27 100644
--- a/mysql-test/suite/gcol/t/gcol_partition_innodb.test
+++ b/mysql-test/suite/gcol/t/gcol_partition_innodb.test
@@ -29,7 +29,9 @@
##### Storage engine to be tested
# Set the session storage engine
--source include/have_innodb.inc
-eval SET @@session.default_storage_engine = 'InnoDB';
+SET @save_stats_persistent = @@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = 0;
+SET default_storage_engine = 'InnoDB';
##### Workarounds for known open engine specific bugs
# none
@@ -58,6 +60,9 @@ REPLACE INTO t1 SELECT * FROM t1;
DROP TABLE t1;
--source suite/innodb/include/wait_all_purged.inc
+
+SET GLOBAL innodb_stats_persistent = @save_stats_persistent;
+
#------------------------------------------------------------------------------#
# Cleanup
--source suite/gcol/inc/gcol_cleanup.inc
diff --git a/mysql-test/suite/gcol/t/gcol_purge.test b/mysql-test/suite/gcol/t/gcol_purge.test
index cfe20c4a..4ebb37ad 100644
--- a/mysql-test/suite/gcol/t/gcol_purge.test
+++ b/mysql-test/suite/gcol/t/gcol_purge.test
@@ -4,7 +4,7 @@
SET @save_dbug=@@GLOBAL.debug_dbug;
CREATE TABLE t1(f1 INT NOT NULL, f2 int not null,
f3 int generated always as (f2 * 2) VIRTUAL,
- primary key(f1), INDEX (f3))ENGINE=InnoDB;
+ primary key(f1), INDEX (f3))ENGINE=InnoDB STATS_PERSISTENT=0;
connect(con1,localhost,root,,,);
--source ../innodb/include/wait_all_purged.inc
START TRANSACTION WITH CONSISTENT SNAPSHOT;
diff --git a/mysql-test/suite/gcol/t/gcol_update.test b/mysql-test/suite/gcol/t/gcol_update.test
index 2076632f..86474f86 100644
--- a/mysql-test/suite/gcol/t/gcol_update.test
+++ b/mysql-test/suite/gcol/t/gcol_update.test
@@ -1,5 +1,8 @@
--source include/have_innodb.inc
+SET @save_stats_persistent = @@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = 0;
+
connect (purge_control,localhost,root);
START TRANSACTION WITH CONSISTENT SNAPSHOT;
@@ -60,3 +63,5 @@ disconnect purge_control;
connection default;
drop table t1;
+
+SET GLOBAL innodb_stats_persistent = @save_stats_persistent;
diff --git a/mysql-test/suite/gcol/t/innodb_prefix_index_check.test b/mysql-test/suite/gcol/t/innodb_prefix_index_check.test
index 4923ead9..5cc46e16 100644
--- a/mysql-test/suite/gcol/t/innodb_prefix_index_check.test
+++ b/mysql-test/suite/gcol/t/innodb_prefix_index_check.test
@@ -20,3 +20,46 @@ REPLACE INTO t1(f3) VALUES (1),(1);
DROP TABLE t1;
+--echo #Create and alter table examples for full column index followed by prefix index.
+
+CREATE TABLE t1(
+f1 VARCHAR(100),
+f2 char(2),
+KEY(f1,f2),
+KEY(f1(5)))ENGINE=INNODB;
+
+REPLACE INTO t1(f2) VALUES (1),(1);
+
+ALTER TABLE t1 ADD INDEX(f2,f1);
+
+DROP TABLE t1;
+
+--echo #Create and alter table examples for small prefix index followed by large
+--echo #prefix index.
+
+CREATE TABLE t1(
+f1 VARCHAR(100),
+f2 char(2),
+KEY(f1(5),f2),
+KEY(f1(10)))ENGINE=INNODB;
+
+REPLACE INTO t1(f2) VALUES (1),(1);
+
+ALTER TABLE t1 ADD INDEX(f2,f1);
+
+DROP TABLE t1;
+
+--echo #Create and alter table examples for prefix index followed by full column
+--echo #index.
+
+CREATE TABLE t1(
+f1 VARCHAR(100),
+f2 char(2),
+KEY(f1(5),f2),
+KEY(f1))ENGINE=INNODB;
+
+REPLACE INTO t1(f2) VALUES (1),(1);
+
+ALTER TABLE t1 ADD INDEX(f2,f1);
+
+DROP TABLE t1;
diff --git a/mysql-test/suite/gcol/t/innodb_virtual_debug.test b/mysql-test/suite/gcol/t/innodb_virtual_debug.test
index cd2b8604..c359f3c8 100644
--- a/mysql-test/suite/gcol/t/innodb_virtual_debug.test
+++ b/mysql-test/suite/gcol/t/innodb_virtual_debug.test
@@ -4,6 +4,10 @@
--source include/count_sessions.inc
set default_storage_engine=innodb;
+# Ensure that the history list length will actually be decremented by purge.
+SET @save_stats_persistent = @@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = 0;
+
CREATE TABLE `t` (
`a` VARCHAR(100),
`b` VARCHAR(100),
@@ -338,4 +342,6 @@ DROP TABLE t1;
connection default;
SET DEBUG_SYNC=RESET;
+SET GLOBAL innodb_stats_persistent = @save_stats_persistent;
+
--source include/wait_until_count_sessions.inc
diff --git a/mysql-test/suite/gcol/t/innodb_virtual_purge.test b/mysql-test/suite/gcol/t/innodb_virtual_purge.test
index 99c7267c..5f3cae34 100644
--- a/mysql-test/suite/gcol/t/innodb_virtual_purge.test
+++ b/mysql-test/suite/gcol/t/innodb_virtual_purge.test
@@ -1,6 +1,9 @@
--source include/have_innodb.inc
--source include/count_sessions.inc
+SET @save_stats_persistent = @@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = 0;
+
--echo #
--echo # Bug#21869656 UNDO LOG DOES NOT CONTAIN ENOUGH INFORMATION
--echo # ON INDEXED VIRTUAL COLUMNS
@@ -182,4 +185,6 @@ SET GLOBAL innodb_max_purge_lag_wait=0;
CHECK TABLE t EXTENDED;
DROP TABLE t;
+SET GLOBAL innodb_stats_persistent = @save_stats_persistent;
+
--source include/wait_until_count_sessions.inc