summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/innodb/r/read_only_recovery.result
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/innodb/r/read_only_recovery.result')
-rw-r--r--mysql-test/suite/innodb/r/read_only_recovery.result44
1 files changed, 44 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/read_only_recovery.result b/mysql-test/suite/innodb/r/read_only_recovery.result
new file mode 100644
index 00000000..add0da94
--- /dev/null
+++ b/mysql-test/suite/innodb/r/read_only_recovery.result
@@ -0,0 +1,44 @@
+connect con1, localhost, root;
+CREATE TABLE t(a INT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t VALUES(1);
+BEGIN;
+INSERT INTO t VALUES(2);
+DELETE FROM t WHERE a=2;
+connection default;
+# Normal MariaDB shutdown would roll back the above transaction.
+# We want the transaction to remain open, so we will kill the server
+# after ensuring that any non-transactional files are clean.
+FLUSH TABLES;
+# Ensure that the above incomplete transaction becomes durable.
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+BEGIN;
+INSERT INTO t VALUES(0);
+DELETE FROM t WHERE a=0;
+COMMIT;
+# restart: --innodb-force-recovery=3
+disconnect con1;
+SELECT * FROM t;
+a
+1
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SELECT * FROM t;
+a
+1
+UPDATE t SET a=3 WHERE a=1;
+# restart: --innodb-read-only
+# Starting with MariaDB 10.2, innodb_read_only implies READ UNCOMMITTED.
+# In earlier versions, this would return the last committed version
+# (empty table)!
+SELECT * FROM t;
+a
+3
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SELECT * FROM t;
+a
+3
+SET GLOBAL innodb_max_purge_lag_wait=0;
+# restart
+SELECT * FROM t;
+a
+3
+DROP TABLE t;