summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-10-03 20:49:14 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-10-03 20:49:14 +0300
commit3d5ba5845ca513289d771448f96c3207b32637c9 (patch)
tree5e7e2c14f9a4b7bfe12538461d1c96cf1416c873
parent9fee479cd3ffd2059a9ee42923742eff492fb0f0 (diff)
parentb71623123875141f6983c2eee633c7d15172c9e8 (diff)
downloadmariadb-git-bb-10.3-instant.tar.gz
Merge 10.2 into 10.3-instantbb-10.3-instant
-rw-r--r--mysql-test/suite/innodb/r/innodb-truncate.result22
-rw-r--r--mysql-test/suite/innodb/t/innodb-truncate.test23
-rw-r--r--storage/innobase/fil/fil0fil.cc3
3 files changed, 36 insertions, 12 deletions
diff --git a/mysql-test/suite/innodb/r/innodb-truncate.result b/mysql-test/suite/innodb/r/innodb-truncate.result
index f63e9272850..a606868ae52 100644
--- a/mysql-test/suite/innodb/r/innodb-truncate.result
+++ b/mysql-test/suite/innodb/r/innodb-truncate.result
@@ -47,12 +47,24 @@ SET @@SESSION.foreign_key_checks = @old_foreign_key_checks;
#
# Test that TRUNCATE resets auto-increment.
#
-CREATE TABLE t1 (a INT PRIMARY KEY NOT NULL AUTO_INCREMENT);
-INSERT INTO t1 VALUES (NULL), (NULL);
+CREATE TABLE t1 (a INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
+b INT, c INT, d INT, e INT, f INT, g INT, h INT, i INT, j INT, k INT,
+l INT, m INT, n INT, o INT, p INT, q INT, r INT, s INT, t INT, u INT,
+KEY(b),KEY(c),KEY(d),KEY(e),KEY(f),KEY(g),KEY(h),KEY(i),KEY(j),KEY(k),
+KEY(l),KEY(m),KEY(n),KEY(o),KEY(p),KEY(q),KEY(r),KEY(s),KEY(t),KEY(u),
+KEY(c,b),KEY(d,b),KEY(e,b),KEY(f,b),KEY(g,b),KEY(h,b),KEY(i,b),KEY(j,b),
+KEY(k,b),KEY(l,b),KEY(m,b),KEY(n,b),KEY(o,b),KEY(p,b),KEY(q,b),KEY(r,b),
+KEY(s,b),KEY(t,b),KEY(u,b),
+KEY(d,c),KEY(e,c),KEY(f,c),KEY(g,c),KEY(h,c),KEY(i,c),KEY(j,c),
+KEY(k,c),KEY(l,c),KEY(m,c),KEY(n,c),KEY(o,c),KEY(p,c),KEY(q,c),KEY(r,c),
+KEY(s,c),KEY(t,c),KEY(u,c),
+KEY(e,d),KEY(f,d),KEY(g,d),KEY(h,d),KEY(i,d),KEY(j,d)
+) ENGINE=InnoDB;
+INSERT INTO t1 () VALUES (), ();
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 't1';
AUTO_INCREMENT
3
-SELECT * FROM t1 ORDER BY a;
+SELECT a FROM t1 ORDER BY a;
a
1
2
@@ -60,8 +72,8 @@ TRUNCATE TABLE t1;
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 't1';
AUTO_INCREMENT
1
-INSERT INTO t1 VALUES (NULL), (NULL);
-SELECT * FROM t1 ORDER BY a;
+INSERT INTO t1 () VALUES (), ();
+SELECT a FROM t1 ORDER BY a;
a
1
2
diff --git a/mysql-test/suite/innodb/t/innodb-truncate.test b/mysql-test/suite/innodb/t/innodb-truncate.test
index ae25aabd323..8f9b1f1f0e9 100644
--- a/mysql-test/suite/innodb/t/innodb-truncate.test
+++ b/mysql-test/suite/innodb/t/innodb-truncate.test
@@ -52,13 +52,24 @@ SET @@SESSION.foreign_key_checks = @old_foreign_key_checks;
--echo # Test that TRUNCATE resets auto-increment.
--echo #
-CREATE TABLE t1 (a INT PRIMARY KEY NOT NULL AUTO_INCREMENT);
-INSERT INTO t1 VALUES (NULL), (NULL);
+CREATE TABLE t1 (a INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
+ b INT, c INT, d INT, e INT, f INT, g INT, h INT, i INT, j INT, k INT,
+ l INT, m INT, n INT, o INT, p INT, q INT, r INT, s INT, t INT, u INT,
+ KEY(b),KEY(c),KEY(d),KEY(e),KEY(f),KEY(g),KEY(h),KEY(i),KEY(j),KEY(k),
+ KEY(l),KEY(m),KEY(n),KEY(o),KEY(p),KEY(q),KEY(r),KEY(s),KEY(t),KEY(u),
+ KEY(c,b),KEY(d,b),KEY(e,b),KEY(f,b),KEY(g,b),KEY(h,b),KEY(i,b),KEY(j,b),
+ KEY(k,b),KEY(l,b),KEY(m,b),KEY(n,b),KEY(o,b),KEY(p,b),KEY(q,b),KEY(r,b),
+ KEY(s,b),KEY(t,b),KEY(u,b),
+ KEY(d,c),KEY(e,c),KEY(f,c),KEY(g,c),KEY(h,c),KEY(i,c),KEY(j,c),
+ KEY(k,c),KEY(l,c),KEY(m,c),KEY(n,c),KEY(o,c),KEY(p,c),KEY(q,c),KEY(r,c),
+ KEY(s,c),KEY(t,c),KEY(u,c),
+ KEY(e,d),KEY(f,d),KEY(g,d),KEY(h,d),KEY(i,d),KEY(j,d)
+) ENGINE=InnoDB;
+INSERT INTO t1 () VALUES (), ();
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 't1';
-SELECT * FROM t1 ORDER BY a;
+SELECT a FROM t1 ORDER BY a;
TRUNCATE TABLE t1;
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 't1';
-INSERT INTO t1 VALUES (NULL), (NULL);
-SELECT * FROM t1 ORDER BY a;
+INSERT INTO t1 () VALUES (), ();
+SELECT a FROM t1 ORDER BY a;
DROP TABLE t1;
-
diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc
index e408b6d88bb..2897d5f9be8 100644
--- a/storage/innobase/fil/fil0fil.cc
+++ b/storage/innobase/fil/fil0fil.cc
@@ -1223,7 +1223,8 @@ fil_space_extend_must_retry(
default:
ut_ad(space->purpose == FIL_TYPE_TABLESPACE
|| space->purpose == FIL_TYPE_IMPORT);
- if (space->purpose == FIL_TYPE_TABLESPACE) {
+ if (space->purpose == FIL_TYPE_TABLESPACE
+ && !space->is_being_truncated) {
fil_flush_low(space);
}
return(false);