summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/byte_order_generic.h53
-rw-r--r--include/byte_order_generic_x86.h23
-rw-r--r--include/byte_order_generic_x86_64.h7
-rw-r--r--include/myisampack.h65
m---------libmariadb0
-rw-r--r--mysql-test/main/func_math.result48
-rw-r--r--mysql-test/main/func_math.test29
-rw-r--r--mysql-test/main/gis-rtree.result4
-rw-r--r--mysql-test/main/gis-rtree.test4
-rw-r--r--mysql-test/main/gis.result6
-rwxr-xr-xmysql-test/mysql-test-run.pl5
-rw-r--r--mysql-test/suite/galera/r/MDEV-20616.result114
-rw-r--r--mysql-test/suite/galera/r/galera_multirow_rollback.result73
-rw-r--r--mysql-test/suite/galera/t/MDEV-20225.test2
-rw-r--r--mysql-test/suite/galera/t/MDEV-20616.test244
-rw-r--r--mysql-test/suite/galera/t/galera_multirow_rollback.combinations4
-rw-r--r--mysql-test/suite/galera/t/galera_multirow_rollback.test89
-rw-r--r--mysql-test/suite/galera_3nodes/r/galera_pc_weight.result2
-rw-r--r--mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result8
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_pc_weight.test9
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test9
-rw-r--r--mysql-test/suite/galera_sr/r/galera_sr_multirow_rollback.result127
-rw-r--r--mysql-test/suite/galera_sr/t/galera_sr_multirow_rollback.combinations4
-rw-r--r--mysql-test/suite/galera_sr/t/galera_sr_multirow_rollback.test156
-rw-r--r--mysql-test/suite/innodb/r/alter_missing_tablespace.result4
-rw-r--r--mysql-test/suite/innodb/r/innodb-online-alter-gis.result2
-rw-r--r--mysql-test/suite/innodb/r/innodb-wl5522-debug.result1052
-rw-r--r--mysql-test/suite/innodb/r/innodb-wl5522.result576
-rw-r--r--mysql-test/suite/innodb/r/innodb_defrag_concurrent.result19
-rw-r--r--mysql-test/suite/innodb/t/alter_missing_tablespace.test4
-rw-r--r--mysql-test/suite/innodb/t/innodb-wl5522-debug.test775
-rw-r--r--mysql-test/suite/innodb/t/innodb-wl5522.test105
-rw-r--r--mysql-test/suite/innodb/t/innodb_defrag_concurrent.test31
-rw-r--r--mysql-test/suite/innodb_fts/r/sync.result14
-rw-r--r--mysql-test/suite/innodb_fts/t/sync.test6
-rw-r--r--mysql-test/suite/innodb_gis/disabled.def6
-rw-r--r--mysql-test/suite/innodb_gis/r/1.result4
-rw-r--r--mysql-test/suite/innodb_gis/r/alter_spatial_index.result6
-rw-r--r--mysql-test/suite/innodb_gis/r/bug16236208.result2
-rw-r--r--mysql-test/suite/innodb_gis/r/bug16266012.result7
-rw-r--r--mysql-test/suite/innodb_gis/r/geometry.result270
-rw-r--r--mysql-test/suite/innodb_gis/r/gis.result4
-rw-r--r--mysql-test/suite/innodb_gis/r/gis_split_inf.result10
-rw-r--r--mysql-test/suite/innodb_gis/r/innodb_gis_rtree.result4
-rw-r--r--mysql-test/suite/innodb_gis/r/point_basic.result27
-rw-r--r--mysql-test/suite/innodb_gis/r/point_big.result18
-rw-r--r--mysql-test/suite/innodb_gis/r/rtree.result6
-rw-r--r--mysql-test/suite/innodb_gis/r/rtree_concurrent_srch.result2
-rw-r--r--mysql-test/suite/innodb_gis/r/rtree_multi_pk.result21
-rw-r--r--mysql-test/suite/innodb_gis/r/rtree_search.result8
-rw-r--r--mysql-test/suite/innodb_gis/r/rtree_split.result4
-rw-r--r--mysql-test/suite/innodb_gis/t/bug16236208.test2
-rw-r--r--mysql-test/suite/innodb_gis/t/bug16266012.test2
-rw-r--r--mysql-test/suite/innodb_gis/t/geometry.test73
-rw-r--r--mysql-test/suite/innodb_gis/t/gis_split_inf.test5
-rw-r--r--mysql-test/suite/innodb_gis/t/rtree_multi_pk.test13
-rw-r--r--mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result582
-rw-r--r--mysql-test/suite/innodb_zip/r/wl5522_zip.result192
-rw-r--r--mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test399
-rw-r--r--mysql-test/suite/innodb_zip/t/wl5522_zip.test71
-rw-r--r--sql/item_func.cc33
-rw-r--r--sql/log.cc31
-rw-r--r--sql/log.h1
-rw-r--r--sql/log_event_client.cc15
-rw-r--r--sql/mysqld.cc6
-rw-r--r--sql/rpl_gtid.cc4
-rw-r--r--sql/service_wsrep.cc1
-rw-r--r--sql/spatial.cc92
-rw-r--r--sql/spatial.h7
-rw-r--r--sql/sql_class.h6
-rw-r--r--sql/sql_type_geom.cc14
-rw-r--r--sql/sql_type_int.h20
-rw-r--r--sql/wsrep_binlog.cc36
-rw-r--r--sql/wsrep_binlog.h2
-rw-r--r--sql/wsrep_mysqld.h5
-rw-r--r--sql/wsrep_trans_observer.h23
-rw-r--r--storage/innobase/buf/buf0buf.cc2
-rw-r--r--storage/innobase/buf/buf0rea.cc7
-rw-r--r--storage/innobase/dict/dict0dict.cc2
-rw-r--r--storage/innobase/fil/fil0fil.cc18
-rw-r--r--storage/innobase/handler/ha_innodb.cc2
-rw-r--r--storage/innobase/include/fil0fil.h9
-rw-r--r--storage/innobase/include/log0recv.h7
-rw-r--r--storage/innobase/include/row0merge.h12
-rw-r--r--storage/innobase/lock/lock0lock.cc5
-rw-r--r--storage/innobase/log/log0recv.cc13
-rw-r--r--storage/innobase/os/os0file.cc4
-rw-r--r--storage/innobase/row/row0merge.cc16
-rw-r--r--storage/innobase/row/row0mysql.cc13
-rw-r--r--storage/innobase/trx/trx0roll.cc3
-rw-r--r--storage/maria/ma_loghandler.c7
-rw-r--r--storage/maria/ma_packrec.c49
-rw-r--r--storage/myisam/mi_packrec.c49
93 files changed, 3019 insertions, 2906 deletions
diff --git a/include/byte_order_generic.h b/include/byte_order_generic.h
index 451202be3b6..8381941b9b9 100644
--- a/include/byte_order_generic.h
+++ b/include/byte_order_generic.h
@@ -1,4 +1,5 @@
/* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2020, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,7 +18,7 @@
Endianness-independent definitions for architectures other
than the x86 architecture.
*/
-#define sint2korr(A) (int16) (((int16) ((uchar) (A)[0])) +\
+#define sint2korr(A) (int16) (((int16) ((uchar) (A)[0])) |\
((int16) ((int16) (A)[1]) << 8))
#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \
(((uint32) 255L << 24) | \
@@ -27,38 +28,38 @@
(((uint32) (uchar) (A)[2]) << 16) |\
(((uint32) (uchar) (A)[1]) << 8) | \
((uint32) (uchar) (A)[0])))
-#define sint4korr(A) (int32) (((int32) ((uchar) (A)[0])) +\
- (((int32) ((uchar) (A)[1]) << 8)) +\
- (((int32) ((uchar) (A)[2]) << 16)) +\
+#define sint4korr(A) (int32) (((int32) ((uchar) (A)[0])) |\
+ (((int32) ((uchar) (A)[1]) << 8)) |\
+ (((int32) ((uchar) (A)[2]) << 16)) |\
(((int32) ((int16) (A)[3]) << 24)))
#define sint8korr(A) (longlong) uint8korr(A)
-#define uint2korr(A) (uint16) (((uint16) ((uchar) (A)[0])) +\
+#define uint2korr(A) (uint16) (((uint16) ((uchar) (A)[0])) |\
((uint16) ((uchar) (A)[1]) << 8))
-#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
+#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) |\
+ (((uint32) ((uchar) (A)[1])) << 8) |\
(((uint32) ((uchar) (A)[2])) << 16))
-#define uint4korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16) +\
+#define uint4korr(A) (uint32) (((uint32) ((uchar) (A)[0])) |\
+ (((uint32) ((uchar) (A)[1])) << 8) |\
+ (((uint32) ((uchar) (A)[2])) << 16) |\
(((uint32) ((uchar) (A)[3])) << 24))
-#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16) +\
- (((uint32) ((uchar) (A)[3])) << 24)) +\
+#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) |\
+ (((uint32) ((uchar) (A)[1])) << 8) |\
+ (((uint32) ((uchar) (A)[2])) << 16) |\
+ (((uint32) ((uchar) (A)[3])) << 24)) |\
(((ulonglong) ((uchar) (A)[4])) << 32))
-#define uint6korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) + \
- (((uint32) ((uchar) (A)[1])) << 8) + \
- (((uint32) ((uchar) (A)[2])) << 16) + \
- (((uint32) ((uchar) (A)[3])) << 24)) + \
- (((ulonglong) ((uchar) (A)[4])) << 32) + \
+#define uint6korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) | \
+ (((uint32) ((uchar) (A)[1])) << 8) | \
+ (((uint32) ((uchar) (A)[2])) << 16) | \
+ (((uint32) ((uchar) (A)[3])) << 24)) | \
+ (((ulonglong) ((uchar) (A)[4])) << 32) | \
(((ulonglong) ((uchar) (A)[5])) << 40))
-#define uint8korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16) +\
- (((uint32) ((uchar) (A)[3])) << 24)) +\
- (((ulonglong) (((uint32) ((uchar) (A)[4])) +\
- (((uint32) ((uchar) (A)[5])) << 8) +\
- (((uint32) ((uchar) (A)[6])) << 16) +\
+#define uint8korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) |\
+ (((uint32) ((uchar) (A)[1])) << 8) |\
+ (((uint32) ((uchar) (A)[2])) << 16) |\
+ (((uint32) ((uchar) (A)[3])) << 24)) |\
+ (((ulonglong) (((uint32) ((uchar) (A)[4])) |\
+ (((uint32) ((uchar) (A)[5])) << 8) |\
+ (((uint32) ((uchar) (A)[6])) << 16) |\
(((uint32) ((uchar) (A)[7])) << 24))) <<\
32))
#define int2store(T,A) do { uint def_temp= (uint) (A) ;\
diff --git a/include/byte_order_generic_x86.h b/include/byte_order_generic_x86.h
index 4b2cbbe5584..72e00be8c2c 100644
--- a/include/byte_order_generic_x86.h
+++ b/include/byte_order_generic_x86.h
@@ -1,4 +1,5 @@
/* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2020, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -27,20 +28,20 @@
((uint32) (uchar) (A)[0])))
#define sint4korr(A) (*((const long *) (A)))
#define uint2korr(A) (*((const uint16 *) (A)))
-#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
+#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) |\
+ (((uint32) ((uchar) (A)[1])) << 8) |\
(((uint32) ((uchar) (A)[2])) << 16))
#define uint4korr(A) (*((const uint32 *) (A)))
-#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16) +\
- (((uint32) ((uchar) (A)[3])) << 24)) +\
+#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) |\
+ (((uint32) ((uchar) (A)[1])) << 8) |\
+ (((uint32) ((uchar) (A)[2])) << 16) |\
+ (((uint32) ((uchar) (A)[3])) << 24)) |\
(((ulonglong) ((uchar) (A)[4])) << 32))
-#define uint6korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) + \
- (((uint32) ((uchar) (A)[1])) << 8) + \
- (((uint32) ((uchar) (A)[2])) << 16) + \
- (((uint32) ((uchar) (A)[3])) << 24)) + \
- (((ulonglong) ((uchar) (A)[4])) << 32) + \
+#define uint6korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) | \
+ (((uint32) ((uchar) (A)[1])) << 8) | \
+ (((uint32) ((uchar) (A)[2])) << 16) | \
+ (((uint32) ((uchar) (A)[3])) << 24)) | \
+ (((ulonglong) ((uchar) (A)[4])) << 32) | \
(((ulonglong) ((uchar) (A)[5])) << 40))
#define uint8korr(A) (*((const ulonglong *) (A)))
#define sint8korr(A) (*((const longlong *) (A)))
diff --git a/include/byte_order_generic_x86_64.h b/include/byte_order_generic_x86_64.h
index 68001ca941f..a25e6a2ab08 100644
--- a/include/byte_order_generic_x86_64.h
+++ b/include/byte_order_generic_x86_64.h
@@ -1,4 +1,5 @@
/* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2020, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -28,8 +29,8 @@
((uint32) (uchar) (A)[0])))
#define sint4korr(A) (int32) (*((int32 *) (A)))
#define uint2korr(A) (uint16) (*((uint16 *) (A)))
-#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
+#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) |\
+ (((uint32) ((uchar) (A)[1])) << 8) |\
(((uint32) ((uchar) (A)[2])) << 16))
#define uint4korr(A) (uint32) (*((uint32 *) (A)))
@@ -53,7 +54,7 @@ static inline ulonglong uint6korr(const void *p)
#define int2store(T,A) do { uchar *pT= (uchar*)(T);\
*((uint16*)(pT))= (uint16) (A);\
} while (0)
-
+
#define int3store(T,A) do { *(T)= (uchar) ((A));\
*(T+1)=(uchar) (((uint) (A) >> 8));\
*(T+2)=(uchar) (((A) >> 16));\
diff --git a/include/myisampack.h b/include/myisampack.h
index eb5baf5fc56..6bfe1958fbc 100644
--- a/include/myisampack.h
+++ b/include/myisampack.h
@@ -2,6 +2,7 @@
#define MYISAMPACK_INCLUDED
/* Copyright (c) 2000-2002, 2004 MySQL AB, 2009 Sun Microsystems, Inc.
+ Copyright (c) 2020, MariaDB Corporation.
Use is subject to license terms.
This program is free software; you can redistribute it and/or modify
@@ -28,7 +29,7 @@
#define mi_sint1korr(A) ((int8)(*A))
#define mi_uint1korr(A) ((uint8)(*A))
-#define mi_sint2korr(A) ((int16) (((int16) (((const uchar*) (A))[1])) +\
+#define mi_sint2korr(A) ((int16) (((int16) (((const uchar*) (A))[1])) |\
((int16) ((int16) ((const char*) (A))[0]) << 8)))
#define mi_sint3korr(A) ((int32) (((((const uchar*) (A))[0]) & 128) ? \
(((uint32) 255L << 24) | \
@@ -38,58 +39,58 @@
(((uint32) ((const uchar*) (A))[0]) << 16) |\
(((uint32) ((const uchar*) (A))[1]) << 8) | \
((uint32) ((const uchar*) (A))[2])))
-#define mi_sint4korr(A) ((int32) (((int32) (((const uchar*) (A))[3])) +\
- ((int32) (((const uchar*) (A))[2]) << 8) +\
- ((int32) (((const uchar*) (A))[1]) << 16) +\
+#define mi_sint4korr(A) ((int32) (((int32) (((const uchar*) (A))[3])) |\
+ ((int32) (((const uchar*) (A))[2]) << 8) |\
+ ((int32) (((const uchar*) (A))[1]) << 16) |\
((int32) ((int16) ((const char*) (A))[0]) << 24)))
#define mi_sint8korr(A) ((longlong) mi_uint8korr(A))
-#define mi_uint2korr(A) ((uint16) (((uint16) (((const uchar*) (A))[1])) +\
+#define mi_uint2korr(A) ((uint16) (((uint16) (((const uchar*) (A))[1])) |\
((uint16) (((const uchar*) (A))[0]) << 8)))
-#define mi_uint3korr(A) ((uint32) (((uint32) (((const uchar*) (A))[2])) +\
- (((uint32) (((const uchar*) (A))[1])) << 8) +\
+#define mi_uint3korr(A) ((uint32) (((uint32) (((const uchar*) (A))[2])) |\
+ (((uint32) (((const uchar*) (A))[1])) << 8) |\
(((uint32) (((const uchar*) (A))[0])) << 16)))
-#define mi_uint4korr(A) ((uint32) (((uint32) (((const uchar*) (A))[3])) +\
- (((uint32) (((const uchar*) (A))[2])) << 8) +\
- (((uint32) (((const uchar*) (A))[1])) << 16) +\
+#define mi_uint4korr(A) ((uint32) (((uint32) (((const uchar*) (A))[3])) |\
+ (((uint32) (((const uchar*) (A))[2])) << 8) |\
+ (((uint32) (((const uchar*) (A))[1])) << 16) |\
(((uint32) (((const uchar*) (A))[0])) << 24)))
#ifndef HAVE_mi_uint5korr
-#define mi_uint5korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[4])) +\
- (((uint32) (((const uchar*) (A))[3])) << 8) +\
- (((uint32) (((const uchar*) (A))[2])) << 16) +\
- (((uint32) (((const uchar*) (A))[1])) << 24)) +\
+#define mi_uint5korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[4])) |\
+ (((uint32) (((const uchar*) (A))[3])) << 8) |\
+ (((uint32) (((const uchar*) (A))[2])) << 16) |\
+ (((uint32) (((const uchar*) (A))[1])) << 24)) |\
(((ulonglong) (((const uchar*) (A))[0])) << 32))
#endif /* HAVE_mi_uint5korr */
#ifndef HAVE_mi_uint6korr
-#define mi_uint6korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[5])) +\
- (((uint32) (((const uchar*) (A))[4])) << 8) +\
- (((uint32) (((const uchar*) (A))[3])) << 16) +\
- (((uint32) (((const uchar*) (A))[2])) << 24)) +\
- (((ulonglong) (((uint32) (((const uchar*) (A))[1])) +\
+#define mi_uint6korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[5])) |\
+ (((uint32) (((const uchar*) (A))[4])) << 8) |\
+ (((uint32) (((const uchar*) (A))[3])) << 16) |\
+ (((uint32) (((const uchar*) (A))[2])) << 24)) |\
+ (((ulonglong) (((uint32) (((const uchar*) (A))[1])) |\
(((uint32) (((const uchar*) (A))[0]) << 8)))) <<\
32))
#endif /* HAVE_mi_uint6korr */
#ifndef HAVE_mi_uint7korr
-#define mi_uint7korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[6])) +\
- (((uint32) (((const uchar*) (A))[5])) << 8) +\
- (((uint32) (((const uchar*) (A))[4])) << 16) +\
- (((uint32) (((const uchar*) (A))[3])) << 24)) +\
- (((ulonglong) (((uint32) (((const uchar*) (A))[2])) +\
- (((uint32) (((const uchar*) (A))[1])) << 8) +\
+#define mi_uint7korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[6])) |\
+ (((uint32) (((const uchar*) (A))[5])) << 8) |\
+ (((uint32) (((const uchar*) (A))[4])) << 16) |\
+ (((uint32) (((const uchar*) (A))[3])) << 24)) |\
+ (((ulonglong) (((uint32) (((const uchar*) (A))[2])) |\
+ (((uint32) (((const uchar*) (A))[1])) << 8) |\
(((uint32) (((const uchar*) (A))[0])) << 16))) <<\
32))
#endif /* HAVE_mi_uint7korr */
#ifndef HAVE_mi_uint8korr
-#define mi_uint8korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[7])) +\
- (((uint32) (((const uchar*) (A))[6])) << 8) +\
- (((uint32) (((const uchar*) (A))[5])) << 16) +\
- (((uint32) (((const uchar*) (A))[4])) << 24)) +\
- (((ulonglong) (((uint32) (((const uchar*) (A))[3])) +\
- (((uint32) (((const uchar*) (A))[2])) << 8) +\
- (((uint32) (((const uchar*) (A))[1])) << 16) +\
+#define mi_uint8korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[7])) |\
+ (((uint32) (((const uchar*) (A))[6])) << 8) |\
+ (((uint32) (((const uchar*) (A))[5])) << 16) |\
+ (((uint32) (((const uchar*) (A))[4])) << 24)) |\
+ (((ulonglong) (((uint32) (((const uchar*) (A))[3])) |\
+ (((uint32) (((const uchar*) (A))[2])) << 8) |\
+ (((uint32) (((const uchar*) (A))[1])) << 16) |\
(((uint32) (((const uchar*) (A))[0])) << 24))) <<\
32))
#endif /* HAVE_mi_uint8korr */
diff --git a/libmariadb b/libmariadb
-Subproject 3be5897c3346639fa6d7195480d93108798c491
+Subproject 1768cb6c322d403c1e372b368cc3c23b660b793
diff --git a/mysql-test/main/func_math.result b/mysql-test/main/func_math.result
index d2ac9b682b2..af76bcdb72c 100644
--- a/mysql-test/main/func_math.result
+++ b/mysql-test/main/func_math.result
@@ -967,6 +967,54 @@ STDDEV_SAMP(a)
NULL
DROP TABLE t1;
#
+# MDEV-21977 main.func_math fails due to undefined behaviour
+#
+SELECT 9223372036854775808 DIV 1;
+9223372036854775808 DIV 1
+9223372036854775808
+SELECT 9223372036854775808 DIV -1;
+ERROR 22003: BIGINT UNSIGNED value is out of range in '9223372036854775808 DIV -1'
+SELECT -9223372036854775808 DIV 1;
+ERROR 22003: BIGINT value is out of range in '-9223372036854775808 DIV 1'
+SELECT -9223372036854775808 DIV -1;
+ERROR 22003: BIGINT value is out of range in '-9223372036854775808 DIV -1'
+SELECT 9223372036854775808 MOD 1;
+9223372036854775808 MOD 1
+0
+SELECT 9223372036854775808 MOD -1;
+9223372036854775808 MOD -1
+0
+SELECT -9223372036854775808 MOD 1;
+-9223372036854775808 MOD 1
+0
+SELECT -9223372036854775808 MOD -1;
+-9223372036854775808 MOD -1
+0
+SELECT 1 MOD 9223372036854775808;
+1 MOD 9223372036854775808
+1
+SELECT -1 MOD 9223372036854775808;
+-1 MOD 9223372036854775808
+-1
+SELECT 1 MOD -9223372036854775808;
+1 MOD -9223372036854775808
+1
+SELECT -1 MOD -9223372036854775808;
+-1 MOD -9223372036854775808
+-1
+SELECT 9223372036854775808 MOD 9223372036854775808;
+9223372036854775808 MOD 9223372036854775808
+0
+SELECT 9223372036854775808 MOD -9223372036854775808;
+9223372036854775808 MOD -9223372036854775808
+0
+SELECT -9223372036854775808 MOD 9223372036854775808;
+-9223372036854775808 MOD 9223372036854775808
+0
+SELECT -9223372036854775808 MOD -9223372036854775808;
+-9223372036854775808 MOD -9223372036854775808
+0
+#
# End of 10.1 tests
#
#
diff --git a/mysql-test/main/func_math.test b/mysql-test/main/func_math.test
index 1c360f7c3c0..37f63bd103c 100644
--- a/mysql-test/main/func_math.test
+++ b/mysql-test/main/func_math.test
@@ -689,6 +689,35 @@ SELECT STDDEV_SAMP(a) FROM t1;
DROP TABLE t1;
--echo #
+--echo # MDEV-21977 main.func_math fails due to undefined behaviour
+--echo #
+
+SELECT 9223372036854775808 DIV 1;
+--error ER_DATA_OUT_OF_RANGE
+SELECT 9223372036854775808 DIV -1;
+--error ER_DATA_OUT_OF_RANGE
+SELECT -9223372036854775808 DIV 1;
+--error ER_DATA_OUT_OF_RANGE
+SELECT -9223372036854775808 DIV -1;
+
+SELECT 9223372036854775808 MOD 1;
+SELECT 9223372036854775808 MOD -1;
+SELECT -9223372036854775808 MOD 1;
+SELECT -9223372036854775808 MOD -1;
+
+SELECT 1 MOD 9223372036854775808;
+SELECT -1 MOD 9223372036854775808;
+SELECT 1 MOD -9223372036854775808;
+SELECT -1 MOD -9223372036854775808;
+
+SELECT 9223372036854775808 MOD 9223372036854775808;
+SELECT 9223372036854775808 MOD -9223372036854775808;
+SELECT -9223372036854775808 MOD 9223372036854775808;
+SELECT -9223372036854775808 MOD -9223372036854775808;
+
+
+
+--echo #
--echo # End of 10.1 tests
--echo #
diff --git a/mysql-test/main/gis-rtree.result b/mysql-test/main/gis-rtree.result
index 2ef8757339e..5f0187eaa30 100644
--- a/mysql-test/main/gis-rtree.result
+++ b/mysql-test/main/gis-rtree.result
@@ -1577,13 +1577,13 @@ INSERT INTO t1 VALUES(GeomFromText('LINESTRING(2 2, 3 3)'));
SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)'));
COUNT(*)
1
-SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l);
+SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0.5 0.5)'), l);
COUNT(*)
1
SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)'));
COUNT(*)
1
-SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l);
+SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0.5 0.5)'), l);
COUNT(*)
1
DROP TABLE t1;
diff --git a/mysql-test/main/gis-rtree.test b/mysql-test/main/gis-rtree.test
index 41388090427..c4ff77991e8 100644
--- a/mysql-test/main/gis-rtree.test
+++ b/mysql-test/main/gis-rtree.test
@@ -964,10 +964,10 @@ INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)'));
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(2 2, 3 3)'));
SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)'));
-SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l);
+SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0.5 0.5)'), l);
SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)'));
-SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l);
+SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0.5 0.5)'), l);
DROP TABLE t1;
diff --git a/mysql-test/main/gis.result b/mysql-test/main/gis.result
index fa7ded103b2..8372b8b2206 100644
--- a/mysql-test/main/gis.result
+++ b/mysql-test/main/gis.result
@@ -1683,7 +1683,7 @@ NULL
#
create table t1 (pt point);
insert into t1 values(Geomfromtext('POLYGON((1 1, 2 2, 2 1, 1 1))'));
-ERROR 22007: Incorrect POINT value: 'POLYGON' for column `test`.`t1`.`pt` at row 1
+ERROR 22007: Incorrect POINT value: 'POLYGON((1 1,2 2,2 1,1 1))' for column `test`.`t1`.`pt` at row 1
drop table t1;
SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100));
st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100))
@@ -5028,13 +5028,13 @@ ERROR HY000: Illegal parameter data types int and point for operation 'in'
CREATE TABLE t1 (a POINT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (Point(0,0));
ALTER TABLE t1 MODIFY a LINESTRING;
-ERROR 22007: Incorrect LINESTRING value: 'POINT' for column `test`.`t1`.`a` at row 1
+ERROR 22007: Incorrect LINESTRING value: 'POINT(0 0)' for column `test`.`t1`.`a` at row 1
DROP TABLE t1;
CREATE TABLE t1 (a LINESTRING);
CREATE TABLE t2 (a POINT);
INSERT INTO t2 VALUES (POINT(0,0));
INSERT INTO t1 SELECT * FROM t2;
-ERROR 22007: Incorrect LINESTRING value: 'POINT' for column `test`.`t1`.`a` at row 1
+ERROR 22007: Incorrect LINESTRING value: 'POINT(0 0)' for column `test`.`t1`.`a` at row 1
SELECT AsText(a) FROM t1;
AsText(a)
DROP TABLE t1, t2;
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 07040202be4..d36370c4cac 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -2,7 +2,7 @@
# -*- cperl -*-
# Copyright (c) 2004, 2014, Oracle and/or its affiliates.
-# Copyright (c) 2009, 2018, MariaDB Corporation
+# Copyright (c) 2009, 2020, MariaDB Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -626,7 +626,8 @@ sub main {
else
{
my $sys_info= My::SysInfo->new();
- $opt_parallel= $sys_info->num_cpus();
+ $opt_parallel= $sys_info->num_cpus() +
+ int($sys_info->min_bogomips()/500) - 4;
for my $limit (2000, 1500, 1000, 500){
$opt_parallel-- if ($sys_info->min_bogomips() < $limit);
}
diff --git a/mysql-test/suite/galera/r/MDEV-20616.result b/mysql-test/suite/galera/r/MDEV-20616.result
new file mode 100644
index 00000000000..488d8985d35
--- /dev/null
+++ b/mysql-test/suite/galera/r/MDEV-20616.result
@@ -0,0 +1,114 @@
+connection node_2;
+connection node_1;
+
+Test phase 1 to make sure that natral deadlock in trigger SP execution is
+handled correctly
+
+CREATE TABLE t1(a INT);
+CREATE TABLE t2(f1 INT, f2 INT, f3 INT);
+CREATE PROCEDURE proc()
+BEGIN
+INSERT INTO t2 VALUES(100, 200, 300);
+UPDATE t2 SET f3 = f3 + 100;
+END|
+CREATE TRIGGER t1 BEFORE INSERT ON t1 FOR EACH ROW CALL proc();
+INSERT INTO t1 VALUES(2);;
+connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+INSERT INTO t1 VALUES(1);;
+connection node_1;
+connection node_1a;
+connection node_1;
+wsrep__bf_aborts
+0
+DROP TABLE t1;
+DROP TABLE t2;
+DROP PROCEDURE proc;
+
+Test phase 2 to make sure that BF abort for SP execution is
+handled correctly
+
+connection node_1;
+SET SESSION wsrep_retry_autocommit = 0;
+SET SESSION wsrep_sync_wait = 0;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1));
+connection node_1a;
+SET SESSION wsrep_retry_autocommit = 0;
+SET SESSION wsrep_sync_wait = 0;
+CREATE PROCEDURE proc_update()
+BEGIN
+UPDATE t1 SET f2 = 'b';
+END|
+INSERT INTO t1 VALUES(1, 'a');
+connection node_1;
+SET debug_sync='wsrep_before_certification SIGNAL ready WAIT_FOR cont';
+CALL proc_update;
+connection node_1a;
+SET debug_sync='now WAIT_FOR ready';
+connection node_2;
+UPDATE t1 SET f2='c';
+connection node_1a;
+SET debug_sync='now SIGNAL cont';
+connection node_1;
+ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+connection node_1a;
+SET debug_sync='RESET';
+DROP PROCEDURE proc_update;
+connection node_1;
+
+Test phase 3 to make sure natural deadlock is not treated as BF abort
+
+TRUNCATE t1;
+INSERT INTO t1 VALUES (1, 'a'), (2, 'a');
+connection node_1a;
+START TRANSACTION;
+UPDATE t1 SET f2 = 'b' WHERE f1 = 1;
+connection node_1;
+START TRANSACTION;
+UPDATE t1 SET f2 = 'c' WHERE f1 = 2;
+connection node_1a;
+UPDATE t1 SET f2 = 'b' WHERE f1 = 2;
+connection node_1;
+UPDATE t1 SET f2 = 'c' WHERE f1 = 1;
+connection node_1a;
+COMMIT;
+wsrep__bf_aborts
+0
+connection node_1;
+ROLLBACK;
+
+Test phase 4 to make sure natural deadlock inside SP execution
+is not treated as BF abort
+
+connection node_1a;
+TRUNCATE t1;
+INSERT INTO t1 VALUES (1, 'a'), (2, 'a');
+CREATE PROCEDURE proc_update_1()
+BEGIN
+START TRANSACTION;
+UPDATE t1 SET f2 = 'b' WHERE f1 = 1;
+SELECT SLEEP(5);
+UPDATE t1 SET f2 = 'b' WHERE f1 = 2;
+COMMIT;
+END|
+CREATE PROCEDURE proc_update_2()
+BEGIN
+START TRANSACTION;
+UPDATE t1 SET f2 = 'c' WHERE f1 = 2;
+SELECT SLEEP(5);
+UPDATE t1 SET f2 = 'c' WHERE f1 = 1;
+COMMIT;
+END|
+connection node_1;
+CALL proc_update_1;
+connection node_1a;
+CALL proc_update_2;
+SLEEP(5)
+0
+wsrep__bf_aborts
+0
+connection node_1;
+SLEEP(5)
+0
+DROP PROCEDURE proc_update_1;
+DROP PROCEDURE proc_update_2;
+DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_multirow_rollback.result b/mysql-test/suite/galera/r/galera_multirow_rollback.result
new file mode 100644
index 00000000000..13502d0d3dc
--- /dev/null
+++ b/mysql-test/suite/galera/r/galera_multirow_rollback.result
@@ -0,0 +1,73 @@
+connection node_2;
+connection node_1;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+connection node_1;
+START TRANSACTION;
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
+COMMIT;
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+connection node_2;
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+DROP TABLE t1;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+connection node_1;
+START TRANSACTION;
+INSERT INTO t1 VALUES (1, 'a');
+INSERT INTO t1 VALUES (2, 'b');
+INSERT INTO t1 (f2) VALUES ('c'), ('d');
+ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
+COMMIT;
+expect (1,'a'), (2, 'b')
+SELECT * FROM t1;
+f1 f2
+1 a
+2 b
+connection node_2;
+expect (1,'a'), (2, 'b')
+SELECT * FROM t1;
+f1 f2
+1 a
+2 b
+DROP TABLE t1;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+connection node_1;
+INSERT INTO t1 (f2) VALUES ('a'),('b');
+ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+connection node_2;
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+DROP TABLE t1;
+connection node_1;
+CREATE TABLE p(id int primary key, j int) ENGINE=InnoDB;
+CREATE TABLE c(id int primary key, fk1 int) ENGINE=InnoDB;
+ALTER TABLE c ADD FOREIGN KEY (fk1) references p(id);
+INSERT INTO p VALUES(1, 0);
+START TRANSACTION;
+INSERT INTO c VALUES (3,1);
+INSERT INTO c VALUES (1,1), (2,2);
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`c`, CONSTRAINT `c_ibfk_1` FOREIGN KEY (`fk1`) REFERENCES `p` (`id`))
+COMMIT;
+SELECT * FROM p;
+id j
+1 0
+SELECT * FROM c;
+id fk1
+3 1
+connection node_2;
+SELECT * FROM p;
+id j
+1 0
+SELECT * FROM c;
+id fk1
+3 1
+DROP TABLE c;
+DROP TABLE p;
diff --git a/mysql-test/suite/galera/t/MDEV-20225.test b/mysql-test/suite/galera/t/MDEV-20225.test
index b7dab1022c6..2124e499530 100644
--- a/mysql-test/suite/galera/t/MDEV-20225.test
+++ b/mysql-test/suite/galera/t/MDEV-20225.test
@@ -41,6 +41,8 @@ SET DEBUG_SYNC = 'RESET';
SET GLOBAL wsrep_slave_threads = 1;
# Trigger should now be dropped on node_2.
+--let $wait_condition = SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME like '%tr1'
+--source include/wait_condition.inc
SHOW TRIGGERS;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/t/MDEV-20616.test b/mysql-test/suite/galera/t/MDEV-20616.test
new file mode 100644
index 00000000000..1cbc4aadbdd
--- /dev/null
+++ b/mysql-test/suite/galera/t/MDEV-20616.test
@@ -0,0 +1,244 @@
+#
+# Test different deadlock scenarios in innodb and make sure that
+# wsrep patch does not handle them as BF aborts.
+#
+
+--source include/galera_cluster.inc
+--source include/have_debug.inc
+--source include/have_debug_sync.inc
+
+##############################################################################
+# test case to verify that natural deadlock of trigger SP execution is
+# handled correctly
+##############################################################################
+
+--echo
+--echo Test phase 1 to make sure that natral deadlock in trigger SP execution is
+--echo handled correctly
+--echo
+--let $aborts_old = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
+
+CREATE TABLE t1(a INT);
+CREATE TABLE t2(f1 INT, f2 INT, f3 INT);
+--disable_query_log
+let $run=1000;
+while($run)
+{
+ INSERT INTO t2 VALUES (1, 2, 3);
+ dec $run;
+}
+--enable_query_log
+
+DELIMITER |;
+CREATE PROCEDURE proc()
+BEGIN
+ INSERT INTO t2 VALUES(100, 200, 300);
+ UPDATE t2 SET f3 = f3 + 100;
+END|
+DELIMITER ;|
+
+CREATE TRIGGER t1 BEFORE INSERT ON t1 FOR EACH ROW CALL proc();
+
+--send INSERT INTO t1 VALUES(2);
+
+--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
+--send INSERT INTO t1 VALUES(1);
+
+--connection node_1
+--error 0,ER_LOCK_DEADLOCK
+--reap
+
+--connection node_1a
+--error 0,ER_LOCK_DEADLOCK
+--reap
+
+--connection node_1
+--let $aborts_new = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
+--disable_query_log
+--eval SELECT $aborts_new - $aborts_old AS wsrep__bf_aborts;
+--enable_query_log
+DROP TABLE t1;
+DROP TABLE t2;
+DROP PROCEDURE proc;
+
+##############################################################################
+#
+# test case to verify that BF abort for SP execution is handled correctly
+#
+##############################################################################
+
+--echo
+--echo Test phase 2 to make sure that BF abort for SP execution is
+--echo handled correctly
+--echo
+--connection node_1
+SET SESSION wsrep_retry_autocommit = 0;
+SET SESSION wsrep_sync_wait = 0;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1));
+
+# Control connection for Galera sync point management
+--connection node_1a
+
+SET SESSION wsrep_retry_autocommit = 0;
+SET SESSION wsrep_sync_wait = 0;
+--let $aborts_old = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
+
+DELIMITER |;
+CREATE PROCEDURE proc_update()
+BEGIN
+ UPDATE t1 SET f2 = 'b';
+END|
+DELIMITER ;|
+
+INSERT INTO t1 VALUES(1, 'a');
+
+--connection node_1
+SET debug_sync='wsrep_before_certification SIGNAL ready WAIT_FOR cont';
+--send CALL proc_update
+
+--connection node_1a
+SET debug_sync='now WAIT_FOR ready';
+
+--connection node_2
+UPDATE t1 SET f2='c';
+
+--connection node_1a
+# wait for BF to happen
+--let $wait_condition = SELECT VARIABLE_VALUE = $aborts_old + 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'
+--source include/wait_condition.inc
+
+SET debug_sync='now SIGNAL cont';
+
+--connection node_1
+--error ER_LOCK_DEADLOCK
+--reap
+
+--connection node_1a
+SET debug_sync='RESET';
+
+DROP PROCEDURE proc_update;
+
+
+##############################################################################
+#
+# test case to verify that natural deadlock does not cause BF abort
+#
+##############################################################################
+
+--connection node_1
+--echo
+--echo Test phase 3 to make sure natural deadlock is not treated as BF abort
+--echo
+TRUNCATE t1;
+INSERT INTO t1 VALUES (1, 'a'), (2, 'a');
+
+--connection node_1a
+--let $aborts_old = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
+
+START TRANSACTION;
+UPDATE t1 SET f2 = 'b' WHERE f1 = 1;
+
+--connection node_1
+START TRANSACTION;
+UPDATE t1 SET f2 = 'c' WHERE f1 = 2;
+
+--connection node_1a
+# this hangs for lock wait
+--send UPDATE t1 SET f2 = 'b' WHERE f1 = 2
+
+#
+# classic deadlock happens here
+#
+--connection node_1
+--error 0, ER_LOCK_DEADLOCK
+UPDATE t1 SET f2 = 'c' WHERE f1 = 1;
+
+--connection node_1a
+--error 0, ER_LOCK_DEADLOCK
+--reap
+COMMIT;
+
+#
+# either one of SP executions was aborted because of natural deadlock, or in worst case
+# they were ordered seqeuntailly, and both succeeded.
+# anyways, we just check here that no BF aborts happened
+#
+--let $aborts_new = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
+--disable_query_log
+--eval SELECT $aborts_new - $aborts_old AS wsrep__bf_aborts;
+--enable_query_log
+
+--connection node_1
+ROLLBACK;
+
+##############################################################################
+#
+# test case to verify that natural deadlock within SP exceution
+# does not cause BF abort
+#
+##############################################################################
+
+--echo
+--echo Test phase 4 to make sure natural deadlock inside SP execution
+--echo is not treated as BF abort
+--echo
+
+--connection node_1a
+TRUNCATE t1;
+INSERT INTO t1 VALUES (1, 'a'), (2, 'a');
+
+--let $aborts_old = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
+
+DELIMITER |;
+CREATE PROCEDURE proc_update_1()
+BEGIN
+ START TRANSACTION;
+ UPDATE t1 SET f2 = 'b' WHERE f1 = 1;
+ SELECT SLEEP(5);
+ UPDATE t1 SET f2 = 'b' WHERE f1 = 2;
+ COMMIT;
+END|
+DELIMITER ;|
+
+DELIMITER |;
+CREATE PROCEDURE proc_update_2()
+BEGIN
+ START TRANSACTION;
+ UPDATE t1 SET f2 = 'c' WHERE f1 = 2;
+ SELECT SLEEP(5);
+ UPDATE t1 SET f2 = 'c' WHERE f1 = 1;
+ COMMIT;
+END|
+DELIMITER ;|
+
+--connection node_1
+--send CALL proc_update_1
+
+--connection node_1a
+#
+# calling proc_update_2 should cause a natural deadlock
+# however, this test is not deterministic, and depends on the sleep() to
+# cause expected ordering for update statement execution within SPs
+# We therefore, allow both success and deadlock error for the result
+#
+--error 0, ER_LOCK_DEADLOCK
+CALL proc_update_2;
+
+#
+# either one of SP executions was aborted because of natural deadlock, or in worst case
+# they were ordered seqeuntailly, and both succeeded.
+# anyways, we just check here that no BF aborts happened
+#
+--let $aborts_new = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
+--disable_query_log
+--eval SELECT $aborts_new - $aborts_old AS wsrep__bf_aborts;
+--enable_query_log
+
+
+--connection node_1
+--error 0, ER_LOCK_DEADLOCK
+--reap
+
+DROP PROCEDURE proc_update_1;
+DROP PROCEDURE proc_update_2;
+DROP TABLE t1;
diff --git a/mysql-test/suite/galera/t/galera_multirow_rollback.combinations b/mysql-test/suite/galera/t/galera_multirow_rollback.combinations
new file mode 100644
index 00000000000..1ce3b45aa1a
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_multirow_rollback.combinations
@@ -0,0 +1,4 @@
+[binlogon]
+log-bin
+
+[binlogoff]
diff --git a/mysql-test/suite/galera/t/galera_multirow_rollback.test b/mysql-test/suite/galera/t/galera_multirow_rollback.test
new file mode 100644
index 00000000000..a5aaedd8bd4
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_multirow_rollback.test
@@ -0,0 +1,89 @@
+#
+# Test multirow insert rollback
+#
+
+--source include/galera_cluster.inc
+
+#
+# Case 1: error on multirow insert results in empty transaction
+#
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+
+--connection node_1
+START TRANSACTION;
+--error ER_DUP_ENTRY
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+COMMIT;
+
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+--connection node_2
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+DROP TABLE t1;
+
+
+#
+# Case 2: error on multirow insert does not affect previous statements
+#
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+
+--connection node_1
+START TRANSACTION;
+INSERT INTO t1 VALUES (1, 'a');
+INSERT INTO t1 VALUES (2, 'b');
+--error ER_DUP_ENTRY
+INSERT INTO t1 (f2) VALUES ('c'), ('d');
+COMMIT;
+
+--echo expect (1,'a'), (2, 'b')
+SELECT * FROM t1;
+
+--connection node_2
+--echo expect (1,'a'), (2, 'b')
+SELECT * FROM t1;
+
+DROP TABLE t1;
+
+
+#
+# Case 3: error on autocommit multirow insert
+#
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+
+--connection node_1
+--error ER_DUP_ENTRY
+INSERT INTO t1 (f2) VALUES ('a'),('b');
+
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+--connection node_2
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+DROP TABLE t1;
+
+
+#
+# Case 4: FK constraint violation on multirow insert
+#
+--connection node_1
+CREATE TABLE p(id int primary key, j int) ENGINE=InnoDB;
+CREATE TABLE c(id int primary key, fk1 int) ENGINE=InnoDB;
+ALTER TABLE c ADD FOREIGN KEY (fk1) references p(id);
+INSERT INTO p VALUES(1, 0);
+
+START TRANSACTION;
+INSERT INTO c VALUES (3,1);
+--error ER_NO_REFERENCED_ROW_2
+INSERT INTO c VALUES (1,1), (2,2);
+COMMIT;
+
+SELECT * FROM p;
+SELECT * FROM c;
+
+--connection node_2
+SELECT * FROM p;
+SELECT * FROM c;
+
+DROP TABLE c;
+DROP TABLE p;
diff --git a/mysql-test/suite/galera_3nodes/r/galera_pc_weight.result b/mysql-test/suite/galera_3nodes/r/galera_pc_weight.result
index 858f2297f91..6d8c7a51b1f 100644
--- a/mysql-test/suite/galera_3nodes/r/galera_pc_weight.result
+++ b/mysql-test/suite/galera_3nodes/r/galera_pc_weight.result
@@ -86,6 +86,8 @@ connection node_1;
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0';
connection node_2;
connection node_3;
+connection node_2;
+connection node_3;
SELECT VARIABLE_VALUE AS expect_3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
expect_3
3
diff --git a/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result b/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result
index 4da24e8dbfb..be6e1a88cdf 100644
--- a/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result
+++ b/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result
@@ -42,6 +42,10 @@ CALL mtr.add_suppression("WSREP: moving position backwards: [0-9]+ -> 0");
CALL mtr.add_suppression("Failed to prepare for incremental state transfer");
CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this node");
CALL mtr.add_suppression("Aborting");
+CALL mtr.add_suppression("Plugin 'wsrep' init function returned error.");
+CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed.");
+CALL mtr.add_suppression("Failed to initialize plugins.");
+CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg()");
connection node_3;
CALL mtr.add_suppression("WSREP: no nodes coming from prim view, prim not possible");
CALL mtr.add_suppression("WSREP: It may not be safe to bootstrap the cluster from this node");
@@ -51,6 +55,10 @@ CALL mtr.add_suppression("WSREP: moving position backwards: [0-9]+ -> 0");
CALL mtr.add_suppression("Failed to prepare for incremental state transfer");
CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this node");
CALL mtr.add_suppression("Aborting");
+CALL mtr.add_suppression("Plugin 'wsrep' init function returned error.");
+CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed.");
+CALL mtr.add_suppression("Failed to initialize plugins.");
+CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg()");
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
diff --git a/mysql-test/suite/galera_3nodes/t/galera_pc_weight.test b/mysql-test/suite/galera_3nodes/t/galera_pc_weight.test
index 0097d335e36..8a1c93a769f 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_pc_weight.test
+++ b/mysql-test/suite/galera_3nodes/t/galera_pc_weight.test
@@ -88,6 +88,15 @@ SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0';
--source include/wait_condition.inc
--source include/galera_wait_ready.inc
+# wait until nodes 2 and 3 have declared ready state (can happen after cluster_size raaise)
+--connection node_2
+--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'
+--source include/wait_condition.inc
+
+--connection node_3
+--source include/wait_condition.inc
+
+
# On all nodes, we now expect a Primary component of size 3, weight 3, Synced and ready
SELECT VARIABLE_VALUE AS expect_3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
SELECT VARIABLE_VALUE AS expect_3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_weight';
diff --git a/mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test b/mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test
index 082cb546e87..8e13aed8f5f 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test
+++ b/mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test
@@ -179,6 +179,10 @@ CALL mtr.add_suppression("WSREP: moving position backwards: [0-9]+ -> 0");
CALL mtr.add_suppression("Failed to prepare for incremental state transfer");
CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this node");
CALL mtr.add_suppression("Aborting");
+CALL mtr.add_suppression("Plugin 'wsrep' init function returned error.");
+CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed.");
+CALL mtr.add_suppression("Failed to initialize plugins.");
+CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg()");
--connection node_3
CALL mtr.add_suppression("WSREP: no nodes coming from prim view, prim not possible");
@@ -189,6 +193,11 @@ CALL mtr.add_suppression("WSREP: moving position backwards: [0-9]+ -> 0");
CALL mtr.add_suppression("Failed to prepare for incremental state transfer");
CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this node");
CALL mtr.add_suppression("Aborting");
+CALL mtr.add_suppression("Plugin 'wsrep' init function returned error.");
+CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed.");
+CALL mtr.add_suppression("Failed to initialize plugins.");
+CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg()");
+
SHOW CREATE TABLE t1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera_sr/r/galera_sr_multirow_rollback.result b/mysql-test/suite/galera_sr/r/galera_sr_multirow_rollback.result
new file mode 100644
index 00000000000..1795d16bbfa
--- /dev/null
+++ b/mysql-test/suite/galera_sr/r/galera_sr_multirow_rollback.result
@@ -0,0 +1,127 @@
+connection node_2;
+connection node_1;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+connection node_1;
+SET SESSION wsrep_trx_fragment_size = 1;
+START TRANSACTION;
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+COMMIT;
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+connection node_2;
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+DROP TABLE t1;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+connection node_1;
+SET SESSION wsrep_trx_fragment_size = 1000;
+START TRANSACTION;
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
+COMMIT;
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+connection node_2;
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+DROP TABLE t1;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+connection node_1;
+SET SESSION wsrep_trx_fragment_size = 1000;
+START TRANSACTION;
+INSERT INTO t1 VALUES (1, 'a');
+INSERT INTO t1 VALUES (2, 'b');
+INSERT INTO t1 (f2) VALUES ('c'), ('d');
+ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
+COMMIT;
+expect (1,'a'), (2, 'b')
+SELECT * FROM t1;
+f1 f2
+1 a
+2 b
+connection node_2;
+expect (1,'a'), (2, 'b')
+SELECT * FROM t1;
+f1 f2
+1 a
+2 b
+DROP TABLE t1;
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+connection node_1;
+SET SESSION wsrep_trx_fragment_size = 1;
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+connection node_2;
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+connection node_1;
+SET SESSION wsrep_trx_fragment_size = 1000;
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+connection node_2;
+SELECT COUNT(*) AS expect_0 FROM t1;
+expect_0
+0
+DROP TABLE t1;
+connection node_1;
+CREATE TABLE p(id int primary key, j int) ENGINE=InnoDB;
+CREATE TABLE c(id int primary key, fk1 int) ENGINE=InnoDB;
+ALTER TABLE c ADD FOREIGN KEY (fk1) references p(id);
+INSERT INTO p VALUES(1, 0);
+SET SESSION wsrep_trx_fragment_size=1;
+START TRANSACTION;
+INSERT INTO c VALUES (3,1);
+INSERT INTO c VALUES (1,1), (2,2);
+ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+COMMIT;
+SELECT * FROM p;
+id j
+1 0
+SELECT * FROM c;
+id fk1
+connection node_2;
+SELECT * FROM p;
+id j
+1 0
+SELECT * FROM c;
+id fk1
+DROP TABLE c;
+DROP TABLE p;
+connection node_1;
+CREATE TABLE p(id int primary key, j int) ENGINE=InnoDB;
+CREATE TABLE c(id int primary key, fk1 int) ENGINE=InnoDB;
+ALTER TABLE c ADD FOREIGN KEY (fk1) references p(id);
+INSERT INTO p VALUES(1, 0);
+SET SESSION wsrep_trx_fragment_size=1000;
+START TRANSACTION;
+INSERT INTO c VALUES (3,1);
+INSERT INTO c VALUES (1,1), (2,2);
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`c`, CONSTRAINT `c_ibfk_1` FOREIGN KEY (`fk1`) REFERENCES `p` (`id`))
+COMMIT;
+SELECT * FROM p;
+id j
+1 0
+SELECT * FROM c;
+id fk1
+3 1
+connection node_2;
+SELECT * FROM p;
+id j
+1 0
+SELECT * FROM c;
+id fk1
+3 1
+DROP TABLE c;
+DROP TABLE p;
diff --git a/mysql-test/suite/galera_sr/t/galera_sr_multirow_rollback.combinations b/mysql-test/suite/galera_sr/t/galera_sr_multirow_rollback.combinations
new file mode 100644
index 00000000000..1ce3b45aa1a
--- /dev/null
+++ b/mysql-test/suite/galera_sr/t/galera_sr_multirow_rollback.combinations
@@ -0,0 +1,4 @@
+[binlogon]
+log-bin
+
+[binlogoff]
diff --git a/mysql-test/suite/galera_sr/t/galera_sr_multirow_rollback.test b/mysql-test/suite/galera_sr/t/galera_sr_multirow_rollback.test
new file mode 100644
index 00000000000..9004d332393
--- /dev/null
+++ b/mysql-test/suite/galera_sr/t/galera_sr_multirow_rollback.test
@@ -0,0 +1,156 @@
+#
+# Test multirow insert rollback with streaming replication
+#
+
+--source include/galera_cluster.inc
+
+
+#
+# Case 1: multirow insert results full rollback if a fragment
+# managed to replicate
+#
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+
+--connection node_1
+SET SESSION wsrep_trx_fragment_size = 1;
+START TRANSACTION;
+# With fragment size 1 we expect full rollback
+# because a fragment is already replicated.
+# Therefore, expect ER_LOCK_DEADLOCK instead of ER_DUP_ENTRY
+--error ER_LOCK_DEADLOCK
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+COMMIT;
+
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+--connection node_2
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+DROP TABLE t1;
+
+
+#
+# Case 2: error on multirow insert results in empty commit
+#
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+
+--connection node_1
+SET SESSION wsrep_trx_fragment_size = 1000;
+START TRANSACTION;
+--error ER_DUP_ENTRY
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+COMMIT;
+
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+--connection node_2
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+DROP TABLE t1;
+
+
+#
+# Case 3: error on multirow insert does not affect previous statements
+#
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+
+--connection node_1
+SET SESSION wsrep_trx_fragment_size = 1000;
+START TRANSACTION;
+INSERT INTO t1 VALUES (1, 'a');
+INSERT INTO t1 VALUES (2, 'b');
+--error ER_DUP_ENTRY
+INSERT INTO t1 (f2) VALUES ('c'), ('d');
+COMMIT;
+
+--echo expect (1,'a'), (2, 'b')
+SELECT * FROM t1;
+
+--connection node_2
+--echo expect (1,'a'), (2, 'b')
+SELECT * FROM t1;
+
+DROP TABLE t1;
+
+
+#
+# Case 4: error on autocommit multirow insert
+#
+CREATE TABLE t1 (f1 INTEGER PRIMARY KEY DEFAULT 0, f2 char(12));
+
+--connection node_1
+SET SESSION wsrep_trx_fragment_size = 1;
+
+--error ER_DUP_ENTRY
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+--connection node_2
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+ --connection node_1
+SET SESSION wsrep_trx_fragment_size = 1000;
+--error ER_DUP_ENTRY
+INSERT INTO t1 (f2) VALUES ('a'), ('b');
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+--connection node_2
+SELECT COUNT(*) AS expect_0 FROM t1;
+
+DROP TABLE t1;
+
+
+#
+# Case 5: FK constraint violation on multirow insert results
+# full rollback if a fragment has already replicated
+#
+--connection node_1
+CREATE TABLE p(id int primary key, j int) ENGINE=InnoDB;
+CREATE TABLE c(id int primary key, fk1 int) ENGINE=InnoDB;
+ALTER TABLE c ADD FOREIGN KEY (fk1) references p(id);
+INSERT INTO p VALUES(1, 0);
+
+SET SESSION wsrep_trx_fragment_size=1;
+START TRANSACTION;
+INSERT INTO c VALUES (3,1);
+--error ER_LOCK_DEADLOCK
+INSERT INTO c VALUES (1,1), (2,2);
+COMMIT;
+
+SELECT * FROM p;
+SELECT * FROM c;
+
+--connection node_2
+SELECT * FROM p;
+SELECT * FROM c;
+
+DROP TABLE c;
+DROP TABLE p;
+
+
+#
+# Case 6: FK constraint violation on multirow insert results
+# stmt rollback if no fragments have replicated
+#
+--connection node_1
+CREATE TABLE p(id int primary key, j int) ENGINE=InnoDB;
+CREATE TABLE c(id int primary key, fk1 int) ENGINE=InnoDB;
+ALTER TABLE c ADD FOREIGN KEY (fk1) references p(id);
+INSERT INTO p VALUES(1, 0);
+
+SET SESSION wsrep_trx_fragment_size=1000;
+START TRANSACTION;
+INSERT INTO c VALUES (3,1);
+--error ER_NO_REFERENCED_ROW_2
+INSERT INTO c VALUES (1,1), (2,2);
+COMMIT;
+
+SELECT * FROM p;
+SELECT * FROM c;
+
+--connection node_2
+SELECT * FROM p;
+SELECT * FROM c;
+
+DROP TABLE c;
+DROP TABLE p;
diff --git a/mysql-test/suite/innodb/r/alter_missing_tablespace.result b/mysql-test/suite/innodb/r/alter_missing_tablespace.result
index 5de5d0dfc44..3d071584256 100644
--- a/mysql-test/suite/innodb/r/alter_missing_tablespace.result
+++ b/mysql-test/suite/innodb/r/alter_missing_tablespace.result
@@ -36,7 +36,9 @@ ALTER TABLE t DISCARD TABLESPACE;
Warnings:
Warning 1812 Tablespace is missing for table 'test/t'
Warning 1812 Tablespace is missing for table 'test/t'
-DROP TABLE t;
+RENAME TABLE t TO u;
+RENAME TABLE u TO v;
+DROP TABLE v;
SELECT * FROM `x..d`;
ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
DROP TABLE `x..d`;
diff --git a/mysql-test/suite/innodb/r/innodb-online-alter-gis.result b/mysql-test/suite/innodb/r/innodb-online-alter-gis.result
index 0f467c649db..509d4cd03fb 100644
--- a/mysql-test/suite/innodb/r/innodb-online-alter-gis.result
+++ b/mysql-test/suite/innodb/r/innodb-online-alter-gis.result
@@ -42,7 +42,7 @@ drop table t1;
#
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
ALTER TABLE t1 ADD COLUMN b LINESTRING DEFAULT POINT(1,1);
-ERROR 22007: Incorrect LINESTRING value: 'POINT' for column ``.``.`b` at row 1
+ERROR 22007: Incorrect LINESTRING value: 'POINT(1 1)' for column ``.``.`b` at row 1
DESCRIBE t1;
Field Type Null Key Default Extra
a int(11) YES NULL
diff --git a/mysql-test/suite/innodb/r/innodb-wl5522-debug.result b/mysql-test/suite/innodb/r/innodb-wl5522-debug.result
index e367c5d3705..ad79967a2e5 100644
--- a/mysql-test/suite/innodb/r/innodb-wl5522-debug.result
+++ b/mysql-test/suite/innodb/r/innodb-wl5522-debug.result
@@ -10,62 +10,59 @@ call mtr.add_suppression("InnoDB: Page for tablespace ");
call mtr.add_suppression("InnoDB: Invalid FSP_SPACE_FLAGS=");
FLUSH TABLES;
SET GLOBAL innodb_file_per_table = 1;
-CREATE DATABASE test_wl5522;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB;
-INSERT INTO test_wl5522.t1 VALUES(1),(2),(3);
+CREATE TABLE t1 (c1 INT) ENGINE = InnoDB;
+INSERT INTO t1 VALUES(1),(2),(3);
SET SESSION debug_dbug="+d,ib_discard_before_commit_crash";
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
ERROR HY000: Lost connection to MySQL server during query
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
SET GLOBAL innodb_file_per_table = 1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB;
-INSERT INTO test_wl5522.t1 VALUES(1),(2),(3);
+CREATE TABLE t1 (c1 INT) ENGINE = InnoDB;
+INSERT INTO t1 VALUES(1),(2),(3);
SET SESSION debug_dbug="+d,ib_discard_after_commit_crash";
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
ERROR HY000: Lost connection to MySQL server during query
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
SET GLOBAL innodb_file_per_table = 1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1), (2), (3), (4);
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1), (2), (3), (4);
+FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
-SELECT * FROM test_wl5522.t1;
+SELECT * FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_before_commit_crash";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Lost connection to MySQL server during query
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Lost connection to MySQL server during query
unlink: t1.ibd
unlink: t1.cfg
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
+SET @file_per_table= @@innodb_file_per_table;
SET GLOBAL innodb_file_per_table = 1;
-SELECT @@innodb_file_per_table;
-@@innodb_file_per_table
-1
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
restore: t1 .ibd and .cfg files
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-CHECK TABLE test_wl5522.t1;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
Table Op Msg_type Msg_text
-test_wl5522.t1 check status OK
-SELECT COUNT(*) FROM test_wl5522.t1;
+test.t1 check status OK
+SELECT COUNT(*) FROM t1;
COUNT(*)
4
-INSERT INTO test_wl5522.t1 VALUES(400), (500), (600);
-SELECT * FROM test_wl5522.t1;
+INSERT INTO t1 VALUES(400), (500), (600);
+SELECT * FROM t1;
c1
1
2
@@ -74,413 +71,413 @@ c1
400
500
600
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET @saved_debug_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug="+d,ib_export_io_write_failure_1";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_2";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_3";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_4";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_5";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_6";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_7";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_8";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_9";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_10";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_11";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_12";
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (100), (200), (300);
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (100), (200), (300);
+SELECT COUNT(*) FROM t1;
COUNT(*)
3
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_io_read_error_1";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while reading index fields.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_io_read_error_2";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while reading index meta-data, expected to read 44 bytes but read only 0 bytes
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_io_read_error_3";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while reading number of indexes.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_io_read_error_4";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while reading table column meta-data.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_io_read_error_5";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while reading meta-data export hostname length.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_io_read_error_6";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while reading meta-data table name length.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_io_read_error_7";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while reading autoinc value.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_io_read_error_8";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while reading meta-data header.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_io_read_error_9";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while reading meta-data version.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_string_read_error";
restore: t1 .cfg file
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: IO Read error: while parsing export hostname.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_OOM_1";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Out of memory.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_OOM_2";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Out of memory.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_OOM_4";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Out of memory.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_OOM_5";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Out of memory.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_OOM_6";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Out of memory.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_OOM_7";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Out of memory.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_OOM_8";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Out of memory.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_OOM_9";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Out of memory.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_OOM_10";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Out of memory.
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_internal_error";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Internal error: While updating the <space, root page number> of index GEN_CLUST_INDEX - Generic error
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 IMPORT TABLESPACE;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Too many concurrent transactions
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Too many concurrent transactions
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug=@saved_debug_dbug;
SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Got error 44 'Tablespace not found' from ./test_wl5522/t1.ibd
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Got error 44 'Tablespace not found' from ./test/t1.ibd
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_cluster_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (
+DROP TABLE t1;
+CREATE TABLE t1 (
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 BIGINT,
c3 VARCHAR(2048),
@@ -493,35 +490,29 @@ START TRANSACTION WITH CONSISTENT SNAPSHOT;
connection default;
SET GLOBAL innodb_monitor_reset = ibuf_merges;
SET GLOBAL innodb_monitor_reset = ibuf_merges_insert;
-INSERT INTO test_wl5522.t1(c2, c3, c4) VALUES
-(1, REPEAT('a', 2048), REPEAT('a', 2048)),
-(2, REPEAT('b', 2048), REPEAT('b', 2048)),
-(3, REPEAT('c', 2048), REPEAT('c', 2048)),
-(4, REPEAT('d', 2048), REPEAT('d', 2048));
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-DELETE FROM test_wl5522.t1 WHERE c2 = 1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c3 = REPEAT("c2", 1024);
-UPDATE test_wl5522.t1 SET c4 = REPEAT("c4", 1024);
-SHOW CREATE TABLE test_wl5522.t1;
+INSERT INTO t1
+SELECT 1 + seq, 1 + (seq MOD 4),
+REPEAT(SUBSTR('abcd', 1 + (seq MOD 4), 1), 2048),
+REPEAT(SUBSTR('abcd', 1 + (seq MOD 4), 1), 2048)
+FROM seq_0_to_127;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c3 = REPEAT("c2", 1024);
+UPDATE t1 SET c4 = REPEAT("c4", 1024);
+SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` bigint(20) NOT NULL AUTO_INCREMENT,
@@ -532,117 +523,149 @@ t1 CREATE TABLE `t1` (
KEY `idx1` (`c2`),
KEY `idx2` (`c3`(512)),
KEY `idx3` (`c4`(512))
-) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1
-SELECT c1, c2 FROM test_wl5522.t1;
+) ENGINE=InnoDB AUTO_INCREMENT=129 DEFAULT CHARSET=latin1
+SELECT c1, c2 FROM t1;
c1 c2
+1 16
2 32
3 48
4 64
+5 76
6 92
7 108
8 124
-13 197
-14 213
-15 229
-17 257
-18 273
-19 289
-28 422
-29 438
-30 454
-32 482
-33 498
-34 514
-36 542
-37 558
-38 574
-40 602
-41 618
-42 634
-59 887
-60 903
-61 919
-63 947
-64 963
-65 979
-67 1007
-68 1023
-69 1039
-71 1067
-72 1083
-73 1099
-75 1127
-76 1143
-77 1159
-79 1187
-80 1203
-81 1219
-83 1247
-84 1263
-85 1279
-87 1307
-88 1323
-89 1339
+9 136
+10 152
+11 168
+12 184
+13 196
+14 212
+15 228
+16 244
+17 256
+18 272
+19 288
+20 304
+21 316
+22 332
+23 348
+24 364
+25 376
+26 392
+27 408
+28 424
+29 436
+30 452
+31 468
+32 484
+33 496
+34 512
+35 528
+36 544
+37 556
+38 572
+39 588
+40 604
+41 616
+42 632
+43 648
+44 664
+45 676
+46 692
+47 708
+48 724
+49 736
+50 752
+51 768
+52 784
+53 796
+54 812
+55 828
+56 844
+57 856
+58 872
+59 888
+60 904
+61 916
+62 932
+63 948
+64 964
+65 976
+66 992
+67 1008
+68 1024
+69 1036
+70 1052
+71 1068
+72 1084
+73 1096
+74 1112
+75 1128
+76 1144
+77 1156
+78 1172
+79 1188
+80 1204
+81 1216
+82 1232
+83 1248
+84 1264
+85 1276
+86 1292
+87 1308
+88 1324
+89 1336
+90 1352
+91 1368
+92 1384
+93 1396
+94 1412
+95 1428
+96 1444
+97 1456
+98 1472
+99 1488
+100 1504
+101 1516
+102 1532
+103 1548
+104 1564
+105 1576
+106 1592
+107 1608
+108 1624
+109 1636
+110 1652
+111 1668
+112 1684
+113 1696
+114 1712
+115 1728
+116 1744
+117 1756
+118 1772
+119 1788
+120 1804
+121 1816
122 1832
123 1848
124 1864
+125 1876
126 1892
127 1908
128 1924
-130 1952
-131 1968
-132 1984
-134 2012
-135 2028
-136 2044
-138 2072
-139 2088
-140 2104
-142 2132
-143 2148
-144 2164
-146 2192
-147 2208
-148 2224
-150 2252
-151 2268
-152 2284
-154 2312
-155 2328
-156 2344
-158 2372
-159 2388
-160 2404
-162 2432
-163 2448
-164 2464
-166 2492
-167 2508
-168 2524
-170 2552
-171 2568
-172 2584
-174 2612
-175 2628
-176 2644
-178 2672
-179 2688
-180 2704
-182 2732
-183 2748
-184 2764
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
COUNT(*)
-96
-SELECT SUM(c2) FROM test_wl5522.t1;
+128
+SELECT SUM(c2) FROM t1;
SUM(c2)
-145278
+124160
SELECT name
FROM information_schema.innodb_metrics
WHERE name = 'ibuf_merges_insert' AND count = 0;
name
ibuf_merges_insert
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
SELECT name
@@ -657,8 +680,8 @@ connection purge_control;
COMMIT;
disconnect purge_control;
connection default;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (
+DROP TABLE t1;
+CREATE TABLE t1 (
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 BIGINT,
c3 VARCHAR(2048),
@@ -666,119 +689,151 @@ c4 VARCHAR(2048),
INDEX idx1(c2),
INDEX idx2(c3(512)),
INDEX idx3(c4(512))) Engine=InnoDB;
-SELECT c1, c2 FROM test_wl5522.t1;
+SELECT c1, c2 FROM t1;
c1 c2
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
restore: t1 .ibd and .cfg files
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-CHECK TABLE test_wl5522.t1;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
Table Op Msg_type Msg_text
-test_wl5522.t1 check status OK
-SELECT c1,c2 FROM test_wl5522.t1;
+test.t1 check status OK
+SELECT c1,c2 FROM t1;
c1 c2
+1 16
2 32
3 48
4 64
+5 76
6 92
7 108
8 124
-13 197
-14 213
-15 229
-17 257
-18 273
-19 289
-28 422
-29 438
-30 454
-32 482
-33 498
-34 514
-36 542
-37 558
-38 574
-40 602
-41 618
-42 634
-59 887
-60 903
-61 919
-63 947
-64 963
-65 979
-67 1007
-68 1023
-69 1039
-71 1067
-72 1083
-73 1099
-75 1127
-76 1143
-77 1159
-79 1187
-80 1203
-81 1219
-83 1247
-84 1263
-85 1279
-87 1307
-88 1323
-89 1339
+9 136
+10 152
+11 168
+12 184
+13 196
+14 212
+15 228
+16 244
+17 256
+18 272
+19 288
+20 304
+21 316
+22 332
+23 348
+24 364
+25 376
+26 392
+27 408
+28 424
+29 436
+30 452
+31 468
+32 484
+33 496
+34 512
+35 528
+36 544
+37 556
+38 572
+39 588
+40 604
+41 616
+42 632
+43 648
+44 664
+45 676
+46 692
+47 708
+48 724
+49 736
+50 752
+51 768
+52 784
+53 796
+54 812
+55 828
+56 844
+57 856
+58 872
+59 888
+60 904
+61 916
+62 932
+63 948
+64 964
+65 976
+66 992
+67 1008
+68 1024
+69 1036
+70 1052
+71 1068
+72 1084
+73 1096
+74 1112
+75 1128
+76 1144
+77 1156
+78 1172
+79 1188
+80 1204
+81 1216
+82 1232
+83 1248
+84 1264
+85 1276
+86 1292
+87 1308
+88 1324
+89 1336
+90 1352
+91 1368
+92 1384
+93 1396
+94 1412
+95 1428
+96 1444
+97 1456
+98 1472
+99 1488
+100 1504
+101 1516
+102 1532
+103 1548
+104 1564
+105 1576
+106 1592
+107 1608
+108 1624
+109 1636
+110 1652
+111 1668
+112 1684
+113 1696
+114 1712
+115 1728
+116 1744
+117 1756
+118 1772
+119 1788
+120 1804
+121 1816
122 1832
123 1848
124 1864
+125 1876
126 1892
127 1908
128 1924
-130 1952
-131 1968
-132 1984
-134 2012
-135 2028
-136 2044
-138 2072
-139 2088
-140 2104
-142 2132
-143 2148
-144 2164
-146 2192
-147 2208
-148 2224
-150 2252
-151 2268
-152 2284
-154 2312
-155 2328
-156 2344
-158 2372
-159 2388
-160 2404
-162 2432
-163 2448
-164 2464
-166 2492
-167 2508
-168 2524
-170 2552
-171 2568
-172 2584
-174 2612
-175 2628
-176 2644
-178 2672
-179 2688
-180 2704
-182 2732
-183 2748
-184 2764
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
COUNT(*)
-96
-SELECT SUM(c2) FROM test_wl5522.t1;
+128
+SELECT SUM(c2) FROM t1;
SUM(c2)
-145278
-SHOW CREATE TABLE test_wl5522.t1;
+124160
+SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` bigint(20) NOT NULL AUTO_INCREMENT,
@@ -789,127 +844,120 @@ t1 CREATE TABLE `t1` (
KEY `idx1` (`c2`),
KEY `idx2` (`c3`(512)),
KEY `idx3` (`c4`(512))
-) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-INSERT IGNORE INTO test_wl5522.t1 VALUES
+) ENGINE=InnoDB AUTO_INCREMENT=129 DEFAULT CHARSET=latin1
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+INSERT IGNORE INTO t1 VALUES
(100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 2731));
Warnings:
Warning 1265 Data truncated for column 'c2' at row 1
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
-COUNT(*)
-256
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+INSERT INTO t1
+SELECT 100, REPEAT('Karanbir', 128), REPEAT('Ajeeth', 1200)
+FROM seq_1_to_256;
+FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Data structure corruption
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Data structure corruption
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index corrupt: Externally stored column(5) has a reference length of 19 in the cluster index GEN_CLUST_INDEX
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
-ERROR HY000: Tablespace has been discarded for table `t1`
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
SET SESSION debug_dbug="+d,ib_import_create_index_failure_1";
-ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1);
+ALTER TABLE t1 ADD INDEX idx(c1);
+ERROR HY000: The table 't1' is full
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
+ERROR HY000: Tablespace has been discarded for table `t1`
+ALTER TABLE t1 ADD INDEX idx(c1);
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,fil_space_create_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Got error 11 'Generic error' from ./test_wl5522/t1.ibd
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Got error 11 'Generic error' from ./test/t1.ibd
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Got error 39 'Data structure corruption' from ./test_wl5522/t1.ibd
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Got error 39 'Data structure corruption' from ./test/t1.ibd
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Data structure corruption
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-DROP DATABASE test_wl5522;
set global innodb_monitor_disable = all;
set global innodb_monitor_reset_all = all;
set global innodb_monitor_enable = default;
set global innodb_monitor_disable = default;
set global innodb_monitor_reset = default;
set global innodb_monitor_reset_all = default;
-SET GLOBAL INNODB_FILE_PER_TABLE=1;
+SET GLOBAL INNODB_FILE_PER_TABLE=@file_per_table;
diff --git a/mysql-test/suite/innodb/r/innodb-wl5522.result b/mysql-test/suite/innodb/r/innodb-wl5522.result
index ecd9f1535c1..16cbc113267 100644
--- a/mysql-test/suite/innodb/r/innodb-wl5522.result
+++ b/mysql-test/suite/innodb/r/innodb-wl5522.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT.");
+call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT\\.");
call mtr.add_suppression("Index for table 't2' is corrupt; try to repair it");
FLUSH TABLES;
CREATE TABLE t1
@@ -7,29 +7,26 @@ b char(22),
c varchar(255),
KEY (b))
ENGINE = InnoDB;
-insert into t1 (b, c) values ('Apa', 'Filler........'),
+CREATE TEMPORARY TABLE t (b char(22),c varchar(255));
+INSERT INTO t VALUES
+('Apa', 'Filler........'),
('Banan', 'Filler........'), ('Cavalry', '..asdasdfaeraf'),
('Devotion', 'asdfuihknaskdf'), ('Evolution', 'lsjndofiabsoibeg');
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
+INSERT INTO t1 (b,c) SELECT b,c FROM t,seq_1_to_128;
+DROP TEMPORARY TABLE t;
SELECT COUNT(*) FROM t1;
COUNT(*)
640
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
a b c
-819 Apa Filler........
-814 Apa Filler........
-809 Apa Filler........
+636 Apa Filler........
+631 Apa Filler........
+626 Apa Filler........
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
a b c
-823 Evolution lsjndofiabsoibeg
-822 Devotion asdfuihknaskdf
-821 Cavalry ..asdasdfaeraf
+640 Evolution lsjndofiabsoibeg
+639 Devotion asdfuihknaskdf
+638 Cavalry ..asdasdfaeraf
CREATE TABLE t2(a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=COMPACT;
db.opt
t1.frm
@@ -53,14 +50,14 @@ COUNT(*)
1280
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
a b c
-1459 Apa Filler........
-1454 Apa Filler........
-1449 Apa Filler........
+1276 Apa Filler........
+1271 Apa Filler........
+1266 Apa Filler........
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
a b c
-1463 Evolution lsjndofiabsoibeg
-1462 Devotion asdfuihknaskdf
-1461 Cavalry ..asdasdfaeraf
+1280 Evolution lsjndofiabsoibeg
+1279 Devotion asdfuihknaskdf
+1278 Cavalry ..asdasdfaeraf
# Restarting server
# restart
# Done restarting server
@@ -83,14 +80,14 @@ COUNT(*)
640
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
a b c
-819 Apa Filler........
-814 Apa Filler........
-809 Apa Filler........
+636 Apa Filler........
+631 Apa Filler........
+626 Apa Filler........
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
a b c
-823 Evolution lsjndofiabsoibeg
-822 Devotion asdfuihknaskdf
-821 Cavalry ..asdasdfaeraf
+640 Evolution lsjndofiabsoibeg
+639 Devotion asdfuihknaskdf
+638 Cavalry ..asdasdfaeraf
db.opt
t1.cfg
t1.frm
@@ -102,14 +99,14 @@ COUNT(*)
640
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
a b c
-819 Apa Filler........
-814 Apa Filler........
-809 Apa Filler........
+636 Apa Filler........
+631 Apa Filler........
+626 Apa Filler........
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
a b c
-823 Evolution lsjndofiabsoibeg
-822 Devotion asdfuihknaskdf
-821 Cavalry ..asdasdfaeraf
+640 Evolution lsjndofiabsoibeg
+639 Devotion asdfuihknaskdf
+638 Cavalry ..asdasdfaeraf
DROP TABLE t1;
ALTER TABLE t2 ROW_FORMAT=DYNAMIC;
ALTER TABLE t2 DISCARD TABLESPACE;
@@ -139,18 +136,11 @@ DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
db.opt
t1.frm
t1.ibd
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-16
backup: t1
db.opt
t1.cfg
@@ -180,18 +170,11 @@ DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
db.opt
t1.frm
t1.ibd
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-16
backup: t1
db.opt
t1.cfg
@@ -201,8 +184,6 @@ UNLOCK TABLES;
db.opt
t1.frm
t1.ibd
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -226,23 +207,14 @@ DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX(c2)) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1 WHERE c2 = 1;
-COUNT(*)
-16
backup: t1
db.opt
t1.cfg
t1.frm
t1.ibd
UNLOCK TABLES;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -262,19 +234,10 @@ DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1 WHERE c2 = 1;
-COUNT(*)
-16
backup: t1
UNLOCK TABLES;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -304,39 +267,32 @@ c1 c2
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
unlink: t1.cfg
DROP TABLE t1;
SET GLOBAL innodb_file_per_table = 0;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-16
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`)
-) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1
FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1809 Table `test`.`t1` in system tablespace
@@ -346,12 +302,7 @@ SET GLOBAL innodb_file_per_table = 1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -359,41 +310,7 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1
-SELECT * FROM t1;
-c1 c2
-1 1
-2 1
-3 1
-4 1
-6 1
-7 1
-8 1
-9 1
-13 1
-14 1
-15 1
-16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1
FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
@@ -454,51 +371,30 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -506,41 +402,7 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
-SELECT * FROM t1;
-c1 c2
-1 1
-2 1
-3 1
-4 1
-6 1
-7 1
-8 1
-9 1
-13 1
-14 1
-15 1
-16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
@@ -564,41 +426,25 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -652,51 +498,30 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=COMPACT;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -704,41 +529,7 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
-SELECT * FROM t1;
-c1 c2
-1 1
-2 1
-3 1
-4 1
-6 1
-7 1
-8 1
-9 1
-13 1
-14 1
-15 1
-16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
@@ -762,41 +553,25 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -853,51 +628,30 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -905,41 +659,7 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
-SELECT * FROM t1;
-c1 c2
-1 1
-2 1
-3 1
-4 1
-6 1
-7 1
-8 1
-9 1
-13 1
-14 1
-15 1
-16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
@@ -963,41 +683,25 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -1054,51 +758,30 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -1106,41 +789,7 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
-SELECT * FROM t1;
-c1 c2
-1 1
-2 1
-3 1
-4 1
-6 1
-7 1
-8 1
-9 1
-13 1
-14 1
-15 1
-16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
@@ -1164,41 +813,25 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -1268,43 +901,26 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
call mtr.add_suppression("Got error -1 when reading table '.*'");
-call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'.*");
+call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'");
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded");
-FLUSH TABLES;
diff --git a/mysql-test/suite/innodb/r/innodb_defrag_concurrent.result b/mysql-test/suite/innodb/r/innodb_defrag_concurrent.result
index d10727b95b4..07c96e76213 100644
--- a/mysql-test/suite/innodb/r/innodb_defrag_concurrent.result
+++ b/mysql-test/suite/innodb/r/innodb_defrag_concurrent.result
@@ -1,7 +1,7 @@
-DROP TABLE if exists t1;
-select @@global.innodb_stats_persistent;
-@@global.innodb_stats_persistent
-0
+SET @n_pages= @@GLOBAL.innodb_defragment_n_pages;
+SET @accuracy= @@GLOBAL.innodb_defragment_stats_accuracy;
+SET @sp= @@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = 0;
set global innodb_defragment_stats_accuracy = 80;
CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
b VARCHAR(256),
@@ -18,6 +18,14 @@ connect con3,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
connect con4,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
connection default;
SET @@global.innodb_defragment_n_pages = 20;
+CREATE TEMPORARY TABLE tt (a INT, KEY(a)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
+INSERT INTO tt SELECT 0 FROM seq_1_to_180;
+INSERT INTO tt SELECT 5 FROM seq_1_to_160;
+INSERT INTO tt SELECT 1 FROM seq_1_to_1000;
+OPTIMIZE TABLE tt;
+Table Op Msg_type Msg_text
+test.tt optimize note Table does not support optimize, doing recreate + analyze instead
+test.tt optimize status OK
select count(*) from t1;
count(*)
20000
@@ -89,3 +97,6 @@ select count(stat_value) > 0 from mysql.innodb_index_stats where table_name like
count(stat_value) > 0
1
drop table t1;
+SET GLOBAL innodb_defragment_n_pages = @n_pages;
+SET GLOBAL innodb_defragment_stats_accuracy = @accuracy;
+SET GLOBAL innodb_stats_persistent = @sp;
diff --git a/mysql-test/suite/innodb/t/alter_missing_tablespace.test b/mysql-test/suite/innodb/t/alter_missing_tablespace.test
index 287aa437d10..c1cfc0fa092 100644
--- a/mysql-test/suite/innodb/t/alter_missing_tablespace.test
+++ b/mysql-test/suite/innodb/t/alter_missing_tablespace.test
@@ -59,7 +59,9 @@ ALTER TABLE t ALGORITHM=COPY, DISCARD TABLESPACE;
--error ER_PARSE_ERROR
ALTER TABLE t ALGORITHM=DEFAULT, DISCARD TABLESPACE;
ALTER TABLE t DISCARD TABLESPACE;
-DROP TABLE t;
+RENAME TABLE t TO u;
+RENAME TABLE u TO v;
+DROP TABLE v;
--error ER_GET_ERRNO
SELECT * FROM `x..d`;
DROP TABLE `x..d`;
diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test
index e8e02d1aeba..30746f5fad8 100644
--- a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test
+++ b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test
@@ -15,6 +15,7 @@
--source include/have_innodb.inc
--source include/default_charset.inc
+--source include/have_sequence.inc
let $restart_noprint=2;
call mtr.add_suppression("InnoDB: Operating system error number .* in a file operation.");
@@ -30,16 +31,11 @@ call mtr.add_suppression("InnoDB: Invalid FSP_SPACE_FLAGS=");
FLUSH TABLES;
let MYSQLD_DATADIR =`SELECT @@datadir`;
-let $innodb_file_per_table = `SELECT @@innodb_file_per_table`;
-let $pathfix=/: '.*test_wl5522.*t1.ibd'/: 'test_wl5522\\t1.ibd'/;
let $strerrfix=/ (\(.+\))//;
-
SET GLOBAL innodb_file_per_table = 1;
-CREATE DATABASE test_wl5522;
-
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB;
-INSERT INTO test_wl5522.t1 VALUES(1),(2),(3);
+CREATE TABLE t1 (c1 INT) ENGINE = InnoDB;
+INSERT INTO t1 VALUES(1),(2),(3);
--let $_server_id= `SELECT @@server_id`
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect
@@ -47,574 +43,574 @@ INSERT INTO test_wl5522.t1 VALUES(1),(2),(3);
--exec echo wait > $_expect_file_name
SET SESSION debug_dbug="+d,ib_discard_before_commit_crash";
--error 2013
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--source include/start_mysqld.inc
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
SET GLOBAL innodb_file_per_table = 1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB;
-INSERT INTO test_wl5522.t1 VALUES(1),(2),(3);
+CREATE TABLE t1 (c1 INT) ENGINE = InnoDB;
+INSERT INTO t1 VALUES(1),(2),(3);
--exec echo wait > $_expect_file_name
SET SESSION debug_dbug="+d,ib_discard_after_commit_crash";
--error 2013
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--source include/start_mysqld.inc
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
SET GLOBAL innodb_file_per_table = 1;
# Create the table that we will use for crash recovery (during IMPORT)
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1), (2), (3), (4);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1), (2), (3), (4);
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_backup_tablespaces("test_wl5522", "t1");
+ib_backup_tablespaces("test", "t1");
EOF
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
--error ER_TABLESPACE_DISCARDED
-SELECT * FROM test_wl5522.t1;
+SELECT * FROM t1;
--exec echo wait > $_expect_file_name
SET SESSION debug_dbug="+d,ib_import_before_commit_crash";
--error 2013
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
--source include/start_mysqld.inc
# Check that the DD is consistent after recovery
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
--exec echo wait > $_expect_file_name
SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash";
--error 2013
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
# After the above test the results are non-deterministic,
# delete the old tablespace files and drop the table,
# recreate the table and do a proper import.
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
--source include/start_mysqld.inc
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
+SET @file_per_table= @@innodb_file_per_table;
SET GLOBAL innodb_file_per_table = 1;
-SELECT @@innodb_file_per_table;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-CHECK TABLE test_wl5522.t1;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
-INSERT INTO test_wl5522.t1 VALUES(400), (500), (600);
+INSERT INTO t1 VALUES(400), (500), (600);
-SELECT * FROM test_wl5522.t1;
+SELECT * FROM t1;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
# Test IO Write error(s), flush tables doesn't return an error message
# so we have to make do with the error/warning pushed by the server
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET @saved_debug_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug="+d,ib_export_io_write_failure_1";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_2";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_3";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_4";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_5";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_6";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_7";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_8";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_9";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_10";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_11";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
SET SESSION debug_dbug="+d,ib_export_io_write_failure_12";
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
UNLOCK TABLES;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
# Create a table and save the tablespace and .cfg file
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (100), (200), (300);
-SELECT COUNT(*) FROM test_wl5522.t1;
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (100), (200), (300);
+SELECT COUNT(*) FROM t1;
+FLUSH TABLES t1 FOR EXPORT;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_backup_tablespaces("test_wl5522", "t1");
+ib_backup_tablespaces("test", "t1");
EOF
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
# Test IO Read error(s)
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_io_read_error_1";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_io_read_error_2";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_io_read_error_3";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_io_read_error_4";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_io_read_error_5";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_io_read_error_6";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_io_read_error_7";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_io_read_error_8";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_io_read_error_9";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
# Test string read failure
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_string_read_error";
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_cfg_files("test_wl5522", "t1");
+ib_restore_cfg_files("test", "t1");
EOF
--replace_regex $strerrfix
--error ER_IO_READ_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
# Test OOM error during import
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_OOM_1";
@@ -622,31 +618,31 @@ SET SESSION debug_dbug="+d,ib_import_OOM_1";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_OUT_OF_RESOURCES
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_OOM_2";
@@ -654,31 +650,31 @@ SET SESSION debug_dbug="+d,ib_import_OOM_2";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_OUT_OF_RESOURCES
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_OOM_4";
@@ -686,31 +682,31 @@ SET SESSION debug_dbug="+d,ib_import_OOM_4";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_OUT_OF_RESOURCES
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_OOM_5";
@@ -718,30 +714,30 @@ SET SESSION debug_dbug="+d,ib_import_OOM_5";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_OUT_OF_RESOURCES
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_OOM_6";
@@ -749,29 +745,29 @@ SET SESSION debug_dbug="+d,ib_import_OOM_6";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_OUT_OF_RESOURCES
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_OOM_7";
@@ -779,29 +775,29 @@ SET SESSION debug_dbug="+d,ib_import_OOM_7";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_OUT_OF_RESOURCES
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_OOM_8";
@@ -809,29 +805,29 @@ SET SESSION debug_dbug="+d,ib_import_OOM_8";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_OUT_OF_RESOURCES
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_OOM_9";
@@ -839,29 +835,29 @@ SET SESSION debug_dbug="+d,ib_import_OOM_9";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_OUT_OF_RESOURCES
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
-INSERT INTO test_wl5522.t1 VALUES (1);
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_OOM_10";
@@ -869,30 +865,30 @@ SET SESSION debug_dbug="+d,ib_import_OOM_10";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_OUT_OF_RESOURCES
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
####
# Test handling of internal failure error
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after reset of space id and LSN in the tablespace
@@ -901,33 +897,33 @@ SET SESSION debug_dbug="+d,ib_import_internal_error";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
# Test failure after reset of space id and LSN in the tablespace
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after reset of space id and LSN in the tablespace
@@ -936,12 +932,12 @@ SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug=@saved_debug_dbug;
@@ -949,17 +945,16 @@ SET SESSION debug_dbug=@saved_debug_dbug;
# Test failure after attempting a tablespace open
SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure";
---replace_regex /file: '.*t1.ibd'/'t1.ibd'/
-
+--replace_result \\ /
--error ER_GET_ERRMSG
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after ibuf check
@@ -967,59 +962,59 @@ SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure";
# Need proper mapping of error codes :-(
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after adjusting the cluster index root page
SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure";
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after importing the cluster index
SET SESSION debug_dbug="+d,ib_import_cluster_failure";
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after importing the secondary index(es)
SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure";
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
--disable_query_log
# Enable metrics for the counters we are going to use
@@ -1033,7 +1028,7 @@ set global innodb_monitor_enable = ibuf_merges_insert;
# Create a large table with delete marked records, disable purge during
# the update so that we can test the IMPORT purge code.
#
-CREATE TABLE test_wl5522.t1 (
+CREATE TABLE t1 (
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 BIGINT,
c3 VARCHAR(2048),
@@ -1050,53 +1045,45 @@ connection default;
SET GLOBAL innodb_monitor_reset = ibuf_merges;
SET GLOBAL innodb_monitor_reset = ibuf_merges_insert;
-INSERT INTO test_wl5522.t1(c2, c3, c4) VALUES
- (1, REPEAT('a', 2048), REPEAT('a', 2048)),
- (2, REPEAT('b', 2048), REPEAT('b', 2048)),
- (3, REPEAT('c', 2048), REPEAT('c', 2048)),
- (4, REPEAT('d', 2048), REPEAT('d', 2048));
-
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-
-DELETE FROM test_wl5522.t1 WHERE c2 = 1;
-
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c3 = REPEAT("c2", 1024);
-UPDATE test_wl5522.t1 SET c4 = REPEAT("c4", 1024);
-
-SHOW CREATE TABLE test_wl5522.t1;
-
-SELECT c1, c2 FROM test_wl5522.t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
-SELECT SUM(c2) FROM test_wl5522.t1;
+INSERT INTO t1
+SELECT 1 + seq, 1 + (seq MOD 4),
+ REPEAT(SUBSTR('abcd', 1 + (seq MOD 4), 1), 2048),
+ REPEAT(SUBSTR('abcd', 1 + (seq MOD 4), 1), 2048)
+FROM seq_0_to_127;
+
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c3 = REPEAT("c2", 1024);
+UPDATE t1 SET c4 = REPEAT("c4", 1024);
+
+SHOW CREATE TABLE t1;
+
+SELECT c1, c2 FROM t1;
+SELECT COUNT(*) FROM t1;
+SELECT SUM(c2) FROM t1;
SELECT name
FROM information_schema.innodb_metrics
WHERE name = 'ibuf_merges_insert' AND count = 0;
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_backup_tablespaces("test_wl5522", "t1");
+ib_backup_tablespaces("test", "t1");
EOF
UNLOCK TABLES;
@@ -1115,9 +1102,9 @@ COMMIT;
disconnect purge_control;
connection default;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (
+CREATE TABLE t1 (
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 BIGINT,
c3 VARCHAR(2048),
@@ -1126,65 +1113,59 @@ CREATE TABLE test_wl5522.t1 (
INDEX idx2(c3(512)),
INDEX idx3(c4(512))) Engine=InnoDB;
-SELECT c1, c2 FROM test_wl5522.t1;
+SELECT c1, c2 FROM t1;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-CHECK TABLE test_wl5522.t1;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
-SELECT c1,c2 FROM test_wl5522.t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
-SELECT SUM(c2) FROM test_wl5522.t1;
+SELECT c1,c2 FROM t1;
+SELECT COUNT(*) FROM t1;
+SELECT SUM(c2) FROM t1;
-SHOW CREATE TABLE test_wl5522.t1;
+SHOW CREATE TABLE t1;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
####
# Create a table and save the tablespace and .cfg file, we need to create
# a Btree that has several levels
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-INSERT IGNORE INTO test_wl5522.t1 VALUES
+INSERT IGNORE INTO t1 VALUES
(100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 2731));
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+INSERT INTO t1
+SELECT 100, REPEAT('Karanbir', 128), REPEAT('Ajeeth', 1200)
+FROM seq_1_to_256;
+FLUSH TABLES t1 FOR EXPORT;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_backup_tablespaces("test_wl5522", "t1");
+ib_backup_tablespaces("test", "t1");
EOF
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1";
@@ -1192,30 +1173,30 @@ SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure";
@@ -1223,172 +1204,169 @@ SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2";
---replace_regex $pathfix
-
--error ER_INNODB_INDEX_CORRUPT
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3";
---replace_regex $pathfix
-
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-
---error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
SET SESSION debug_dbug="+d,ib_import_create_index_failure_1";
-ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1);
+--error ER_RECORD_FILE_FULL
+ALTER TABLE t1 ADD INDEX idx(c1);
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+
+--error ER_TABLESPACE_DISCARDED
+SELECT COUNT(*) FROM t1;
+
+ALTER TABLE t1 ADD INDEX idx(c1);
+
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,fil_space_create_failure";
---replace_regex $pathfix
-
+--replace_result \\ /
--error ER_GET_ERRMSG
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure";
---replace_regex $pathfix
-
+--replace_result \\ /
--error ER_GET_ERRMSG
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure";
@@ -1396,20 +1374,17 @@ SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure";
--replace_regex /'.*t1.cfg'/'t1.cfg'/
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-
-DROP DATABASE test_wl5522;
-
set global innodb_monitor_disable = all;
set global innodb_monitor_reset_all = all;
@@ -1433,12 +1408,10 @@ call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tabl
call mtr.add_suppression(".*There was an error writing to the meta data file.*");
call mtr.add_suppression("InnoDB: Trying to import a tablespace, but could not open the tablespace file");
call mtr.add_suppression("Unsupported tablespace format");
-call mtr.add_suppression("Error in page .* of index \"GEN_CLUST_INDEX\" of table \"test_wl5522\".\"t1\"");
call mtr.add_suppression("Page is marked as free");
call mtr.add_suppression("t1.ibd: Page .* at offset .* looks corrupted");
call mtr.add_suppression("but tablespace with that id or name does not exist");
-call mtr.add_suppression("Failed to find tablespace for table '\"test_wl5522\".\"t1\"' in the cache");
-call mtr.add_suppression("Could not find a valid tablespace file for 'test_wl5522.*t1'");
+call mtr.add_suppression("Could not find a valid tablespace file for '.*t1'");
call mtr.add_suppression("while reading index meta-data, expected to read 44 bytes but read only 0 bytes");
call mtr.add_suppression("Index for table 't1' is corrupt; try to repair it");
--enable_query_log
@@ -1447,4 +1420,4 @@ call mtr.add_suppression("Index for table 't1' is corrupt; try to repair it");
--remove_file $MYSQLTEST_VARDIR/tmp/t1.cfg
--remove_file $MYSQLTEST_VARDIR/tmp/t1.ibd
-eval SET GLOBAL INNODB_FILE_PER_TABLE=$innodb_file_per_table;
+SET GLOBAL INNODB_FILE_PER_TABLE=@file_per_table;
diff --git a/mysql-test/suite/innodb/t/innodb-wl5522.test b/mysql-test/suite/innodb/t/innodb-wl5522.test
index e17ccf24fa6..204c71ef3f1 100644
--- a/mysql-test/suite/innodb/t/innodb-wl5522.test
+++ b/mysql-test/suite/innodb/t/innodb-wl5522.test
@@ -2,9 +2,10 @@
--source include/not_embedded.inc
-- source include/have_innodb.inc
+-- source include/have_sequence.inc
-- source include/innodb_checksum_algorithm.inc
-call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT.");
+call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT\\.");
call mtr.add_suppression("Index for table 't2' is corrupt; try to repair it");
FLUSH TABLES;
@@ -19,17 +20,14 @@ CREATE TABLE t1
KEY (b))
ENGINE = InnoDB;
-insert into t1 (b, c) values ('Apa', 'Filler........'),
+CREATE TEMPORARY TABLE t (b char(22),c varchar(255));
+INSERT INTO t VALUES
+('Apa', 'Filler........'),
('Banan', 'Filler........'), ('Cavalry', '..asdasdfaeraf'),
('Devotion', 'asdfuihknaskdf'), ('Evolution', 'lsjndofiabsoibeg');
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
+INSERT INTO t1 (b,c) SELECT b,c FROM t,seq_1_to_128;
+DROP TEMPORARY TABLE t;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
@@ -119,16 +117,11 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
--list_files $MYSQLD_DATADIR/test
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
ib_backup_tablespaces("test", "t1");
@@ -170,15 +163,10 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
--list_files $MYSQLD_DATADIR/test
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
ib_backup_tablespaces("test", "t1");
@@ -189,9 +177,6 @@ UNLOCK TABLES;
--list_files $MYSQLD_DATADIR/test
# Move the LSN forward
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-
DROP TABLE t1;
CREATE TABLE t1(
@@ -224,14 +209,9 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX(c2)) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1 WHERE c2 = 1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
ib_backup_tablespaces("test", "t1");
@@ -240,9 +220,6 @@ EOF
UNLOCK TABLES;
# Move the LSN forward
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-
DROP TABLE t1;
CREATE TABLE t1(
@@ -275,14 +252,9 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1 WHERE c2 = 1;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
ib_backup_tablespaces("test", "t1");
@@ -290,9 +262,6 @@ EOF
UNLOCK TABLES;
# Move the LSN forward
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-
DROP TABLE t1;
CREATE TABLE t1(
@@ -345,14 +314,7 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-
-SELECT COUNT(*) FROM t1;
-
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
# This should fail, InnoDB should return a warning
@@ -372,15 +334,9 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
-SELECT * FROM t1;
FLUSH TABLES t1 FOR EXPORT;
@@ -507,15 +463,9 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
-SELECT * FROM t1;
FLUSH TABLES t1 FOR EXPORT;
@@ -660,15 +610,9 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=COMPACT;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
-SELECT * FROM t1;
FLUSH TABLES t1 FOR EXPORT;
@@ -814,15 +758,9 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
-SELECT * FROM t1;
FLUSH TABLES t1 FOR EXPORT;
@@ -968,15 +906,9 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
-SELECT * FROM t1;
FLUSH TABLES t1 FOR EXPORT;
@@ -1141,9 +1073,8 @@ SELECT * FROM t1;
DROP TABLE t1;
call mtr.add_suppression("Got error -1 when reading table '.*'");
-call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'.*");
+call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'");
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded");
-FLUSH TABLES;
# cleanup
--remove_file $MYSQLTEST_VARDIR/tmp/t1.cfg
diff --git a/mysql-test/suite/innodb/t/innodb_defrag_concurrent.test b/mysql-test/suite/innodb/t/innodb_defrag_concurrent.test
index bbcd72f1a3a..1e4e14eb7c6 100644
--- a/mysql-test/suite/innodb/t/innodb_defrag_concurrent.test
+++ b/mysql-test/suite/innodb/t/innodb_defrag_concurrent.test
@@ -2,17 +2,13 @@
--source include/big_test.inc
--source include/not_valgrind.inc
--source include/not_embedded.inc
+--source include/have_sequence.inc
---disable_warnings
-DROP TABLE if exists t1;
---enable_warnings
+SET @n_pages= @@GLOBAL.innodb_defragment_n_pages;
+SET @accuracy= @@GLOBAL.innodb_defragment_stats_accuracy;
+SET @sp= @@GLOBAL.innodb_stats_persistent;
---disable_query_log
-let $innodb_defragment_n_pages_orig=`select @@innodb_defragment_n_pages`;
-let $innodb_defragment_stats_accuracy_orig=`select @@innodb_defragment_stats_accuracy`;
---enable_query_log
-
-select @@global.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = 0;
set global innodb_defragment_stats_accuracy = 80;
# Create table.
@@ -46,6 +42,12 @@ connection default;
SET @@global.innodb_defragment_n_pages = 20;
+CREATE TEMPORARY TABLE tt (a INT, KEY(a)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
+INSERT INTO tt SELECT 0 FROM seq_1_to_180;
+INSERT INTO tt SELECT 5 FROM seq_1_to_160;
+INSERT INTO tt SELECT 1 FROM seq_1_to_1000;
+OPTIMIZE TABLE tt;
+
let $data_size = 20000;
let $delete_size = 2000;
@@ -60,7 +62,7 @@ while ($i)
}
--enable_query_log
-select count(*) from t1;
+select count(*) from t1;
select count(*) from t1 force index (second);
select count(*) from t1 force index (third);
@@ -75,7 +77,7 @@ while ($size)
}
--enable_query_log
-select count(*) from t1;
+select count(*) from t1;
select count(*) from t1 force index (second);
select count(*) from t1 force index (third);
@@ -136,7 +138,6 @@ select count(stat_value) > 0 from mysql.innodb_index_stats where table_name like
drop table t1;
# reset system
---disable_query_log
-EVAL SET GLOBAL innodb_defragment_n_pages = $innodb_defragment_n_pages_orig;
-EVAL SET GLOBAL innodb_defragment_stats_accuracy = $innodb_defragment_stats_accuracy_orig;
---enable_query_log
+SET GLOBAL innodb_defragment_n_pages = @n_pages;
+SET GLOBAL innodb_defragment_stats_accuracy = @accuracy;
+SET GLOBAL innodb_stats_persistent = @sp;
diff --git a/mysql-test/suite/innodb_fts/r/sync.result b/mysql-test/suite/innodb_fts/r/sync.result
index 12d0971b828..5b8e4810028 100644
--- a/mysql-test/suite/innodb_fts/r/sync.result
+++ b/mysql-test/suite/innodb_fts/r/sync.result
@@ -100,17 +100,17 @@ INSERT INTO t1(title) VALUES('mysql');
ERROR HY000: Lost connection to MySQL server during query
# restart
After restart
-SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
-FTS_DOC_ID title
-1 database
+SELECT title FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
+title
+database
SET @old_dbug = @@SESSION.debug_dbug;
SET debug_dbug = '+d,fts_instrument_sync_debug';
INSERT INTO t1(title) VALUES('mysql');
SET debug_dbug = @old_dbug;
-SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
-FTS_DOC_ID title
-1 database
-2 mysql
+SELECT title FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
+title
+database
+mysql
DROP TABLE t1;
# Case 4: Test sync commit & rollback in background
CREATE TABLE t1(
diff --git a/mysql-test/suite/innodb_fts/t/sync.test b/mysql-test/suite/innodb_fts/t/sync.test
index 2ad5423d73b..6929dce31b8 100644
--- a/mysql-test/suite/innodb_fts/t/sync.test
+++ b/mysql-test/suite/innodb_fts/t/sync.test
@@ -123,7 +123,9 @@ INSERT INTO t1(title) VALUES('mysql');
--source include/start_mysqld.inc
-- echo After restart
-SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
+# PAGE_ROOT_AUTO_INC could contain last failed autoinc value. Avoid
+# doing show the result of auto increment field
+SELECT title FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
SET @old_dbug = @@SESSION.debug_dbug;
@@ -133,7 +135,7 @@ INSERT INTO t1(title) VALUES('mysql');
SET debug_dbug = @old_dbug;
-SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
+SELECT title FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_gis/disabled.def b/mysql-test/suite/innodb_gis/disabled.def
index e486a70a0c6..8cae44a3607 100644
--- a/mysql-test/suite/innodb_gis/disabled.def
+++ b/mysql-test/suite/innodb_gis/disabled.def
@@ -10,9 +10,3 @@
#
##############################################################################
-gis_split_inf : MDEV-14057 InnoDB GIS tests fail
-rtree_multi_pk : MDEV-14057 InnoDB GIS tests fail
-point_big : MDEV-14057 InnoDB GIS tests fail
-geometry : MDEV-14057 InnoDB GIS tests fail
-bug16236208 : MDEV-14057 InnoDB GIS tests fail
-bug16266012 : MDEV-14057 InnoDB GIS tests fail
diff --git a/mysql-test/suite/innodb_gis/r/1.result b/mysql-test/suite/innodb_gis/r/1.result
index e654bc4b498..26fdf39baf3 100644
--- a/mysql-test/suite/innodb_gis/r/1.result
+++ b/mysql-test/suite/innodb_gis/r/1.result
@@ -1040,9 +1040,9 @@ SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000
SET @a=ST_POLYFROMWKB(@a);
create table t1(a polygon NOT NULL)engine=InnoDB;
insert into t1 values (ST_geomfromtext("point(0 1)"));
-ERROR 22007: Incorrect POLYGON value: 'POINT' for column `test`.`t1`.`a` at row 1
+ERROR 22007: Incorrect POLYGON value: 'POINT(0 1)' for column `test`.`t1`.`a` at row 1
insert into t1 values (ST_geomfromtext("point(1 0)"));
-ERROR 22007: Incorrect POLYGON value: 'POINT' for column `test`.`t1`.`a` at row 1
+ERROR 22007: Incorrect POLYGON value: 'POINT(1 0)' for column `test`.`t1`.`a` at row 1
select * from (select polygon(t1.a) as p from t1 order by t1.a) d;
p
drop table t1;
diff --git a/mysql-test/suite/innodb_gis/r/alter_spatial_index.result b/mysql-test/suite/innodb_gis/r/alter_spatial_index.result
index ee1f3f19b20..a8359293116 100644
--- a/mysql-test/suite/innodb_gis/r/alter_spatial_index.result
+++ b/mysql-test/suite/innodb_gis/r/alter_spatial_index.result
@@ -485,7 +485,7 @@ ALTER TABLE tab MODIFY COLUMN c2 GEOMETRY NOT NULL;
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
ALTER TABLE tab MODIFY COLUMN c3 POLYGON NOT NULL;
-ERROR 22007: Incorrect POLYGON value: 'LINESTRING' for column `test`.`tab`.`c3` at row 1
+ERROR 22007: Incorrect POLYGON value: 'LINESTRING(5 5,20 20,30 30)' for column `test`.`tab`.`c3` at row 1
ALTER TABLE tab add COLUMN c7 POINT NOT NULL;
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
@@ -790,13 +790,13 @@ DROP TABLE t1;
create table t1 (p point not null default if(unix_timestamp()>10,POINT(1,1),LineString(Point(0,0),Point(1,1)))) ENGINE=innodb;
set timestamp=10;
insert into t1 values(default);
-ERROR 22007: Incorrect POINT value: 'LINESTRING' for column `test`.`t1`.`p` at row 1
+ERROR 22007: Incorrect POINT value: 'LINESTRING(0 0,1 1)' for column `test`.`t1`.`p` at row 1
drop table t1;
SET timestamp=default;
create table t1 (p point not null default if(unix_timestamp()>10,POINT(1,1),LineString(Point(0,0),Point(1,1)))) ENGINE=innodb;
set timestamp=10;
alter table t1 add column i int;
-ERROR 22007: Incorrect POINT value: 'LINESTRING' for column `test`.`t1`.`p` at row 1
+ERROR 22007: Incorrect POINT value: 'LINESTRING(0 0,1 1)' for column `test`.`t1`.`p` at row 1
drop table t1;
SET timestamp=default;
CREATE OR REPLACE TABLE t1 (a INT) ENGINE=InnoDB;
diff --git a/mysql-test/suite/innodb_gis/r/bug16236208.result b/mysql-test/suite/innodb_gis/r/bug16236208.result
index a2b81e612a9..c7d4f3280bf 100644
--- a/mysql-test/suite/innodb_gis/r/bug16236208.result
+++ b/mysql-test/suite/innodb_gis/r/bug16236208.result
@@ -39,5 +39,5 @@ ST_WITHIN( ST_GeomFromText('POLYGON( ( 4135 3009 , 4914 3087 , 4236 3194 , 4091
ST_GeomFromText('MULTILINESTRING( ( 4147 2871 , 4072 3042 , 4081 3099 , 3796
3021 , 4007 3463 ) , ( 4042 2808 , 4109 2816 , 3730 3673 ) )') ,
linestring_key ) AND ST_Length( linestring_nokey ) > 1;
-ERROR 22023: Invalid GIS data provided to function st_within.
+ST_AsText(linestring_nokey)
DROP TABLE linestring;
diff --git a/mysql-test/suite/innodb_gis/r/bug16266012.result b/mysql-test/suite/innodb_gis/r/bug16266012.result
index 9e62563f752..99de5db5e12 100644
--- a/mysql-test/suite/innodb_gis/r/bug16266012.result
+++ b/mysql-test/suite/innodb_gis/r/bug16266012.result
@@ -6,4 +6,9 @@ MULTIPOLYGON( ( ( 0 0 , 7 1 , 6 8 , 0 0 ) ) , ( ( 9 9 , 4 0 , 4 7 , 9 9) ) )
') ) , ST_SYMDIFFERENCE( POLYGONFROMTEXT(' POLYGON( ( 9 9 , 6 5 , 2 3 , 9 9
) ) ') , MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( ( 2 2 , 5 2 , 5 2 , 2 6 , 2
2 ) ) , ( ( 7 7 , 3 7 , 2 9 , 7 1 , 7 7 ) ) ) ') ) ) );
-ERROR HY000: Geometry overlay calculation error: geometry data is invalid in function st_union.
+ST_WITHIN( LINESTRINGFROMTEXT(' LINESTRING( 5 9 , 3 4 , 4 1 , 4
+4 , 4 9 ) ') , ST_SYMDIFFERENCE( ST_UNION( ST_ENVELOPE( POLYGONFROMTEXT('
+POLYGON( ( 3 2 , 0 6 , 2 3 , 8 0 , 4 6 , 7 2 , 3 2 ) ) ') ) ,
+MULTIPOLYGONFROMTEXT('
+MULTIPOLYGON( ( ( 0 0 , 7 1 , 6
+0
diff --git a/mysql-test/suite/innodb_gis/r/geometry.result b/mysql-test/suite/innodb_gis/r/geometry.result
index 780efc11bce..70e0f04cdf1 100644
--- a/mysql-test/suite/innodb_gis/r/geometry.result
+++ b/mysql-test/suite/innodb_gis/r/geometry.result
@@ -99,9 +99,9 @@ fid ST_AsText(g)
110 POLYGON((0 0,30 0,30 30,0 0))
SELECT fid, ST_AsText(g) FROM gis_multi_point;
fid ST_AsText(g)
-111 MULTIPOINT((0 0),(10 10),(10 20),(20 20))
-112 MULTIPOINT((1 1),(11 11),(11 21),(21 21))
-113 MULTIPOINT((3 6),(4 10))
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
SELECT fid, ST_AsText(g) FROM gis_multi_line;
fid ST_AsText(g)
114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
@@ -129,9 +129,9 @@ fid ST_AsText(g)
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
110 POLYGON((0 0,30 0,30 30,0 0))
-111 MULTIPOINT((0 0),(10 10),(10 20),(20 20))
-112 MULTIPOINT((1 1),(11 11),(11 21),(21 21))
-113 MULTIPOINT((3 6),(4 10))
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
115 MULTILINESTRING((10 48,10 21,10 0))
116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
@@ -178,62 +178,40 @@ CREATE UNIQUE INDEX idx2 on tab(c8(5) ASC) ;
#check equality predicate on the index columns
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
WHERE c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab NULL ref idx1 idx1 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c2` = <cache>(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab ref idx1 idx1 8 const 1 #
#check index with WKB function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)')));
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab NULL ref idx1 idx1 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c2` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab ref idx1 idx1 8 const 1 #
#check index with WKT function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab NULL ref idx3 idx3 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c3` = <cache>(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab ref idx3 idx3 8 const 1 #
#check index with WKB function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab
WHERE c3=ST_PolyFromWKB(ST_AsWkB(ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')));
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab NULL ref idx3 idx3 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c3` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab ref idx3 idx3 8 const 1 #
#check index with WKT function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
WHERE c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab NULL const idx2 idx2 8 const # 100.00 NULL
-Warnings:
-Note 1003 /* select#1 */ select st_astext('
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab const idx2 idx2 8 const 1 #
#check index with WKB function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab NULL const idx2 idx2 8 const # 100.00 NULL
-Warnings:
-Note 1003 /* select#1 */ select st_astext('
-#check range predicate on the index columns
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
-WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
-ERROR HY000: Incorrect arguments to >=
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
-WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
-ERROR HY000: Incorrect arguments to >=
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
-WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
-ERROR HY000: Incorrect arguments to >=
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab const idx2 idx2 8 const 1 #
#check index with DELETE operation
EXPLAIN DELETE FROM tab
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 DELETE tab NULL range idx2 idx2 8 const # 100.00 Using where
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab range idx2 idx2 8 NULL 1 #
#check the spatial values
SELECT ST_AsText(c1) FROM tab;
ST_AsText(c1)
@@ -246,7 +224,7 @@ ST_AsText(c3)
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
SELECT ST_AsText(c4) FROM tab;
ST_AsText(c4)
-MULTIPOINT((0 0),(5 5),(10 10),(20 20))
+MULTIPOINT(0 0,5 5,10 10,20 20)
SELECT ST_AsText(c5) FROM tab;
ST_AsText(c5)
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
@@ -290,7 +268,7 @@ ST_AsText(c3)
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
SELECT ST_AsText(c4) FROM tab;
ST_AsText(c4)
-MULTIPOINT((0 0),(5 5),(10 10),(20 20))
+MULTIPOINT(0 0,5 5,10 10,20 20)
SELECT ST_AsText(c5) FROM tab;
ST_AsText(c5)
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
@@ -334,7 +312,7 @@ ST_AsText(c3)
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
SELECT ST_AsText(c4) FROM tab;
ST_AsText(c4)
-MULTIPOINT((0 0),(5 5),(10 10),(20 20))
+MULTIPOINT(0 0,5 5,10 10,20 20)
SELECT ST_AsText(c5) FROM tab;
ST_AsText(c5)
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
@@ -353,7 +331,7 @@ ALTER TABLE tab MODIFY COLUMN c1 BLOB;
SHOW CREATE TABLE tab;
Table Create Table
tab CREATE TABLE `tab` (
- `c1` blob,
+ `c1` blob DEFAULT NULL,
`c2` linestring DEFAULT NULL,
`c3` polygon DEFAULT NULL,
`c4` multipoint DEFAULT NULL,
@@ -384,6 +362,8 @@ c7 geometrycollection YES NULL
c8 geometry YES UNI NULL
#add primary key
ALTER TABLE tab ADD PRIMARY KEY pk2(c8(5));
+Warnings:
+Warning 1280 Name 'pk2' ignored for PRIMARY key.
#check columns
SHOW FIELDS FROM tab;
Field Type Null Key Default Extra
@@ -441,7 +421,7 @@ ST_AsText(c3)
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
SELECT ST_AsText(c4) FROM tab;
ST_AsText(c4)
-MULTIPOINT((0 0),(5 5),(10 10),(20 20))
+MULTIPOINT(0 0,5 5,10 10,20 20)
SELECT ST_AsText(c5) FROM tab;
ST_AsText(c5)
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
@@ -516,7 +496,7 @@ ST_AsText(c3)
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
SELECT ST_AsText(c4) FROM tab2;
ST_AsText(c4)
-MULTIPOINT((0 0),(5 5),(10 10),(20 20))
+MULTIPOINT(0 0,5 5,10 10,20 20)
SELECT ST_AsText(c5) FROM tab2;
ST_AsText(c5)
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
@@ -555,11 +535,9 @@ ST_AsText(a.c2) ST_AsText(b.c2)
LINESTRING(10 10,20 20,30 30) LINESTRING(10 10,20 20,30 30)
#check DELETE stmt with Where clause and a constant predicate
DELETE FROM tab
-Where c8=c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
-#check the data, should 0
-SELECT COUNT(*) FROM tab;
-COUNT(*)
-1
+WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
+SELECT * FROM tab;
+c0 c2 c3 c4 c5 c6 c7 c8
#check UPDATE stmt with Where clause and a constant predicate
SET @c8=ST_GeomCollFromText('GeometryCollection(Point(10 10),LineString(20 20, 30 30))');
UPDATE tab2 SET c8=@c8
@@ -596,16 +574,29 @@ COUNT(ST_AsText(g))
SELECT SUM(ST_AsText(g)) FROM gis_point;
SUM(ST_AsText(g))
0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'POINT(10 10)'
+Warning 1292 Truncated incorrect DOUBLE value: 'POINT(20 10)'
+Warning 1292 Truncated incorrect DOUBLE value: 'POINT(20 20)'
+Warning 1292 Truncated incorrect DOUBLE value: 'POINT(10 20)'
SELECT SUM(ST_AsText(g)) FROM gis_line;
SUM(ST_AsText(g))
0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(0 0,0 10,10 0)'
+Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(10 10,20 10,20 20,10 20,10 10)'
+Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(10 10,40 10)'
SELECT AVG(ST_AsText(g)) FROM gis_polygon;
AVG(ST_AsText(g))
0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((10 10,20 10,20 20,10 20,10 10))'
+Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))'
+Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((0 0,30 0,30 30,0 0))'
#here it show some string value no meaning
SELECT MAX(ST_AsText(g)) FROM gis_multi_point;
MAX(ST_AsText(g))
-MULTIPOINT((3 6),(4 10))
+MULTIPOINT(3 6,4 10)
#here it show some string value no meaning
SELECT MIN(ST_AsText(g)) FROM gis_multi_line;
MIN(ST_AsText(g))
@@ -613,12 +604,39 @@ MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
SELECT STD(ST_AsText(g)) FROM gis_multi_polygon;
STD(ST_AsText(g))
0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOLYGON(((0 3,3 3,3 0,0 3)))'
SELECT COUNT(ST_AsText(g)) FROM gis_geometrycollection;
COUNT(ST_AsText(g))
3
SELECT AVG(ST_AsText(g)) FROM gis_geometry;
AVG(ST_AsText(g))
0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'POINT(10 10)'
+Warning 1292 Truncated incorrect DOUBLE value: 'POINT(20 10)'
+Warning 1292 Truncated incorrect DOUBLE value: 'POINT(20 20)'
+Warning 1292 Truncated incorrect DOUBLE value: 'POINT(10 20)'
+Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(0 0,0 10,10 0)'
+Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(10 10,20 10,20 20,10 20,10 10)'
+Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(10 10,40 10)'
+Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((10 10,20 10,20 20,10 20,10 10))'
+Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))'
+Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((0 0,30 0,30 30,0 0))'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOINT(0 0,10 10,10 20,20 20)'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOINT(1 1,11 11,11 21,21 21)'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOINT(3 6,4 10)'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTILINESTRING((10 48,10 21,10 0))'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'
+Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOLYGON(((0 3,3 3,3 0,0 3)))'
+Warning 1292 Truncated incorrect DOUBLE value: 'GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))'
+Warning 1292 Truncated incorrect DOUBLE value: 'GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))'
+Warning 1292 Truncated incorrect DOUBLE value: 'GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))'
#check Datatypes with compression tables
CREATE TABLE tab3(c1 POINT,c2 LINESTRING,c3 POLYGON,C4 MULTIPOINT,c5 MULTILINESTRING ,
c6 MULTIPOLYGON,c7 GEOMETRYCOLLECTION ,c8 GEOMETRY) ENGINE=InnoDB
@@ -684,62 +702,40 @@ CREATE UNIQUE INDEX idx2 on tab3(c8(5) ASC) ;
#check equality predicate on the index columns
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
WHERE c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab3 NULL ref idx1 idx1 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c2` = <cache>(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab3 ref idx1 idx1 8 const 1 #
#check index with WKB function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab3 WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)')));
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab3 NULL ref idx1 idx1 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c2` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab3 ref idx1 idx1 8 const 1 #
#check index with WKT function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab3 NULL ref idx3 idx3 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c3` = <cache>(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab3 ref idx3 idx3 8 const 1 #
#check index with WKB function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab3
WHERE c3=ST_PolyFromWKB(ST_AsWkB(ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')));
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab3 NULL ref idx3 idx3 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c3` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab3 ref idx3 idx3 8 const 1 #
#check index with WKT function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
WHERE c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab3 NULL const idx2 idx2 8 const # 100.00 NULL
-Warnings:
-Note 1003 /* select#1 */ select st_astext('
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab3 const idx2 idx2 8 const 1 #
#check index with WKB function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab3
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab3 NULL const idx2 idx2 8 const # 100.00 NULL
-Warnings:
-Note 1003 /* select#1 */ select st_astext('
-#check range predicate on the index columns
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
-WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
-ERROR HY000: Incorrect arguments to >=
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
-WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
-ERROR HY000: Incorrect arguments to >=
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
-WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
-ERROR HY000: Incorrect arguments to >=
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab3 const idx2 idx2 8 const 1 #
#check index with DELETE operation
EXPLAIN DELETE FROM tab3
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 DELETE tab3 NULL range idx2 idx2 8 const # 100.00 Using where
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab3 range idx2 idx2 8 NULL 1 #
#check the spatial values
SELECT ST_AsText(c1) FROM tab3;
ST_AsText(c1)
@@ -752,7 +748,7 @@ ST_AsText(c3)
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
SELECT ST_AsText(c4) FROM tab3;
ST_AsText(c4)
-MULTIPOINT((0 0),(5 5),(10 10),(20 20))
+MULTIPOINT(0 0,5 5,10 10,20 20)
SELECT ST_AsText(c5) FROM tab3;
ST_AsText(c5)
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
@@ -786,17 +782,13 @@ tab3 CREATE TABLE `tab3` (
#check index with WKB function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab3 WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)')));
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab3 NULL ref idx1 idx1 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c2` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab3 ref idx1 idx1 8 const 1 #
#check index with WKT function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE tab3 NULL ref idx3 idx3 8 const # 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c3` = <cache>(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tab3 ref idx3 idx3 8 const 1 #
#check the Geometry property functions
SELECT fid, ST_Dimension(g) FROM gis_geometry;
fid ST_Dimension(g)
@@ -872,13 +864,13 @@ fid ST_IsEmpty(g)
122 0
SELECT fid, ST_AsText(ST_Envelope(g)) FROM gis_geometry;
fid ST_AsText(ST_Envelope(g))
-101 POINT(10 10)
-102 POINT(20 10)
-103 POINT(20 20)
-104 POINT(10 20)
+101 POLYGON((10 10,10 10,10 10,10 10,10 10))
+102 POLYGON((20 10,20 10,20 10,20 10,20 10))
+103 POLYGON((20 20,20 20,20 20,20 20,20 20))
+104 POLYGON((10 20,10 20,10 20,10 20,10 20))
105 POLYGON((0 0,10 0,10 10,0 10,0 0))
106 POLYGON((10 10,20 10,20 20,10 20,10 10))
-107 LINESTRING(10 10,40 10)
+107 POLYGON((10 10,40 10,40 10,10 10,10 10))
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
109 POLYGON((0 0,50 0,50 50,0 50,0 0))
110 POLYGON((0 0,30 0,30 30,0 30,0 0))
@@ -886,7 +878,7 @@ fid ST_AsText(ST_Envelope(g))
112 POLYGON((1 1,21 1,21 21,1 21,1 1))
113 POLYGON((3 6,4 6,4 10,3 10,3 6))
114 POLYGON((10 0,16 0,16 48,10 48,10 0))
-115 LINESTRING(10 0,10 48)
+115 POLYGON((10 0,10 0,10 48,10 48,10 0))
116 POLYGON((1 2,21 2,21 8,1 8,1 2))
117 POLYGON((28 0,84 0,84 42,28 42,28 0))
118 POLYGON((28 0,84 0,84 42,28 42,28 0))
@@ -895,11 +887,10 @@ fid ST_AsText(ST_Envelope(g))
121 POLYGON((10 10,20 10,20 20,10 20,10 10))
122 POLYGON((3 6,44 6,44 9,3 9,3 6))
explain extended select ST_Dimension(g), ST_GeometryType(g), ST_IsEmpty(g), ST_AsText(ST_Envelope(g)) from gis_geometry;
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE gis_geometry NULL ALL NULL NULL NULL NULL # 100.00 NULL
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 22 #
Warnings:
-Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
-Note 1003 /* select#1 */ select st_dimension(`test`.`gis_geometry`.`g`) AS `ST_Dimension(g)`,st_geometrytype(`test`.`gis_geometry`.`g`) AS `ST_GeometryType(g)`,st_isempty(`test`.`gis_geometry`.`g`) AS `ST_IsEmpty(g)`,st_astext(st_envelope(`test`.`gis_geometry`.`g`)) AS `ST_AsText(ST_Envelope(g))` from `test`.`gis_geometry`
+Note 1003 select st_dimension(`test`.`gis_geometry`.`g`) AS `ST_Dimension(g)`,st_geometrytype(`test`.`gis_geometry`.`g`) AS `ST_GeometryType(g)`,st_isempty(`test`.`gis_geometry`.`g`) AS `ST_IsEmpty(g)`,st_astext(st_envelope(`test`.`gis_geometry`.`g`)) AS `ST_AsText(ST_Envelope(g))` from `test`.`gis_geometry`
#check Geometry point functions
SELECT fid, ST_X(g) FROM gis_point;
fid ST_X(g)
@@ -914,11 +905,10 @@ fid ST_Y(g)
103 20
104 20
explain extended select ST_X(g),ST_Y(g) FROM gis_point;
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 NULL
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE gis_point ALL NULL NULL NULL NULL 4 #
Warnings:
-Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
-Note 1003 /* select#1 */ select st_x(`test`.`gis_point`.`g`) AS `ST_X(g)`,st_y(`test`.`gis_point`.`g`) AS `ST_Y(g)` from `test`.`gis_point`
+Note 1003 select st_x(`test`.`gis_point`.`g`) AS `ST_X(g)`,st_y(`test`.`gis_point`.`g`) AS `ST_Y(g)` from `test`.`gis_point`
SELECT fid, ST_AsText(ST_StartPoint(g)) FROM gis_line;
fid ST_AsText(ST_StartPoint(g))
105 POINT(0 0)
@@ -951,11 +941,10 @@ fid ST_IsClosed(g)
107 0
explain extended select ST_AsText(ST_StartPoint(g)),ST_AsText(ST_EndPoint(g)),
ST_Length(g),ST_NumPoints(g),ST_AsText(ST_PointN(g, 2)),ST_IsClosed(g) FROM gis_line;
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE gis_line NULL ALL NULL NULL NULL NULL # 100.00 NULL
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE gis_line ALL NULL NULL NULL NULL 3 #
Warnings:
-Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
-Note 1003 /* select#1 */ select st_astext(st_startpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_StartPoint(g))`,st_astext(st_endpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_EndPoint(g))`,st_length(`test`.`gis_line`.`g`) AS `ST_Length(g)`,st_numpoints(`test`.`gis_line`.`g`) AS `ST_NumPoints(g)`,st_astext(st_pointn(`test`.`gis_line`.`g`,2)) AS `ST_AsText(ST_PointN(g, 2))`,st_isclosed(`test`.`gis_line`.`g`) AS `ST_IsClosed(g)` from `test`.`gis_line`
+Note 1003 select st_astext(st_startpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_StartPoint(g))`,st_astext(st_endpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_EndPoint(g))`,st_length(`test`.`gis_line`.`g`) AS `ST_Length(g)`,st_numpoints(`test`.`gis_line`.`g`) AS `ST_NumPoints(g)`,st_astext(st_pointn(`test`.`gis_line`.`g`,2)) AS `ST_AsText(ST_PointN(g, 2))`,st_isclosed(`test`.`gis_line`.`g`) AS `ST_IsClosed(g)` from `test`.`gis_line`
SELECT fid, ST_AsText(ST_Centroid(g)) FROM gis_polygon;
fid ST_AsText(ST_Centroid(g))
108 POINT(15 15)
@@ -983,11 +972,10 @@ fid ST_AsText(ST_InteriorRingN(g, 1))
110 NULL
explain extended select ST_AsText(ST_Centroid(g)),ST_Area(g),ST_AsText(ST_ExteriorRing(g)),
ST_NumInteriorRings(g),ST_AsText(ST_InteriorRingN(g, 1)) FROM gis_polygon;
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE gis_polygon NULL ALL NULL NULL NULL NULL # 100.00 NULL
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3 #
Warnings:
-Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
-Note 1003 /* select#1 */ select st_astext(st_centroid(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_Centroid(g))`,st_area(`test`.`gis_polygon`.`g`) AS `ST_Area(g)`,st_astext(st_exteriorring(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_ExteriorRing(g))`,st_numinteriorrings(`test`.`gis_polygon`.`g`) AS `ST_NumInteriorRings(g)`,st_astext(st_interiorringn(`test`.`gis_polygon`.`g`,1)) AS `ST_AsText(ST_InteriorRingN(g, 1))` from `test`.`gis_polygon`
+Note 1003 select st_astext(st_centroid(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_Centroid(g))`,st_area(`test`.`gis_polygon`.`g`) AS `ST_Area(g)`,st_astext(st_exteriorring(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_ExteriorRing(g))`,st_numinteriorrings(`test`.`gis_polygon`.`g`) AS `ST_NumInteriorRings(g)`,st_astext(st_interiorringn(`test`.`gis_polygon`.`g`,1)) AS `ST_AsText(ST_InteriorRingN(g, 1))` from `test`.`gis_polygon`
SELECT fid, ST_IsClosed(g) FROM gis_multi_line;
fid ST_IsClosed(g)
114 0
@@ -995,8 +983,8 @@ fid ST_IsClosed(g)
116 0
SELECT fid, ST_AsText(ST_Centroid(g)) FROM gis_multi_polygon;
fid ST_AsText(ST_Centroid(g))
-117 POINT(57.98031067576927 17.854754130800437)
-118 POINT(57.98031067576927 17.854754130800437)
+117 POINT(57.98031067576927 17.854754130800433)
+118 POINT(57.98031067576927 17.854754130800433)
119 POINT(2 2)
SELECT fid, ST_Area(g) FROM gis_multi_polygon;
fid ST_Area(g)
@@ -1024,11 +1012,10 @@ fid ST_NumGeometries(g)
121 2
122 2
explain extended SELECT fid, ST_NumGeometries(g) from gis_multi_point;
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE gis_multi_point NULL ALL NULL NULL NULL NULL # 100.00 NULL
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 #
Warnings:
-Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
-Note 1003 /* select#1 */ select `test`.`gis_multi_point`.`fid` AS `fid`,st_numgeometries(`test`.`gis_multi_point`.`g`) AS `ST_NumGeometries(g)` from `test`.`gis_multi_point`
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,st_numgeometries(`test`.`gis_multi_point`.`g`) AS `ST_NumGeometries(g)` from `test`.`gis_multi_point`
SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_point;
fid ST_AsText(ST_GeometryN(g, 2))
111 POINT(10 10)
@@ -1055,11 +1042,10 @@ fid ST_AsText(ST_GeometryN(g, 1))
121 POINT(10 10)
122 POINT(44 6)
explain extended SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_point;
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE gis_multi_point NULL ALL NULL NULL NULL NULL # 100.00 NULL
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 #
Warnings:
-Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
-Note 1003 /* select#1 */ select `test`.`gis_multi_point`.`fid` AS `fid`,st_astext(st_geometryn(`test`.`gis_multi_point`.`g`,2)) AS `ST_AsText(ST_GeometryN(g, 2))` from `test`.`gis_multi_point`
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,st_astext(st_geometryn(`test`.`gis_multi_point`.`g`,2)) AS `ST_AsText(ST_GeometryN(g, 2))` from `test`.`gis_multi_point`
SELECT g1.fid as first, g2.fid as second,
MBRWithin(g1.g, g2.g) as w, MBRContains(g1.g, g2.g) as c, MBROverlaps(g1.g, g2.g) as o,
MBREquals(g1.g, g2.g) as e, MBRDisjoint(g1.g, g2.g) as d, ST_Touches(g1.g, g2.g) as t,
@@ -1067,9 +1053,9 @@ MBRIntersects(g1.g, g2.g) as i, ST_Crosses(g1.g, g2.g) as r
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
first second w c o e d t i r
120 120 1 1 0 1 0 0 1 0
-120 121 0 0 0 0 0 1 1 0
+120 121 0 0 0 0 0 1 1 1
120 122 0 0 1 0 0 0 1 0
-121 120 0 0 0 0 0 1 1 0
+121 120 0 0 0 0 0 1 1 1
121 121 1 1 0 1 0 0 1 0
121 122 0 0 0 0 1 0 0 0
122 120 0 0 1 0 0 0 1 0
@@ -1080,12 +1066,11 @@ MBRWithin(g1.g, g2.g) as w, MBRContains(g1.g, g2.g) as c, MBROverlaps(g1.g, g2.g
MBREquals(g1.g, g2.g) as e, MBRDisjoint(g1.g, g2.g) as d, ST_Touches(g1.g, g2.g) as t,
MBRIntersects(g1.g, g2.g) as i, ST_Crosses(g1.g, g2.g) as r
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE g1 NULL ALL NULL NULL NULL NULL # 100.00 Using temporary; Using filesort
-1 SIMPLE g2 NULL ALL NULL NULL NULL NULL # 100.00 Using join buffer (Block Nested Loop)
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE g1 ALL NULL NULL NULL NULL 3 # Using temporary; Using filesort
+1 SIMPLE g2 ALL NULL NULL NULL NULL 3 # Using join buffer (flat, BNL join)
Warnings:
-Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
-Note 1003 /* select#1 */ select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,mbrwithin(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,mbrcontains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,mbroverlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,mbrequals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,mbrdisjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,st_touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,mbrintersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,st_crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `first`,`second`
+Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,mbrwithin(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,mbrcontains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,mbroverlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,mbrequals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,mbrdisjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,st_touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,mbrintersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,st_crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
# check support of Foreign Key constraint
CREATE TABLE parent (id GEOMETRY NOT NULL,PRIMARY KEY (id(10))) ENGINE=INNODB;
CREATE TABLE child (id GEOMETRY, parent_id GEOMETRY,
@@ -1093,7 +1078,7 @@ INDEX par_ind (parent_id(10)),
FOREIGN KEY (parent_id(10)) REFERENCES parent(id)
ON DELETE CASCADE
) ENGINE=INNODB;
-ERROR HY000: Cannot add foreign key constraint
+ERROR HY000: Can't create table `test`.`child` (errno: 150 "Foreign key constraint is incorrectly formed")
#check partition table support
CREATE TABLE emp2(
id GEOMETRY NOT NULL,
@@ -1110,6 +1095,8 @@ ERROR 42000: The storage engine for the table doesn't support GEOMETRY
#check start transaction commit & Rollback
START TRANSACTION;
DELETE FROM tab3;
+SELECT * FROM tab3;
+c1 c2 c3 C4 c5 c6 c7 c8
ROLLBACK;
SELECT COUNT(*) FROM tab3;
COUNT(*)
@@ -1117,9 +1104,8 @@ COUNT(*)
START TRANSACTION;
DELETE FROM tab3;
COMMIT;
-SELECT COUNT(*) FROM tab3;
-COUNT(*)
-0
+SELECT * FROM tab3;
+c1 c2 c3 C4 c5 c6 c7 c8
DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point;
DROP TABLE gis_multi_line, gis_multi_polygon;
DROP TABLE gis_geometrycollection, gis_geometry;
diff --git a/mysql-test/suite/innodb_gis/r/gis.result b/mysql-test/suite/innodb_gis/r/gis.result
index a769f47bf7c..3a71e0a8558 100644
--- a/mysql-test/suite/innodb_gis/r/gis.result
+++ b/mysql-test/suite/innodb_gis/r/gis.result
@@ -1036,9 +1036,9 @@ SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000
SET @a=ST_POLYFROMWKB(@a);
create table t1(a polygon NOT NULL)engine=innodb;
insert into t1 values (ST_geomfromtext("point(0 1)"));
-ERROR 22007: Incorrect POLYGON value: 'POINT' for column `test`.`t1`.`a` at row 1
+ERROR 22007: Incorrect POLYGON value: 'POINT(0 1)' for column `test`.`t1`.`a` at row 1
insert into t1 values (ST_geomfromtext("point(1 0)"));
-ERROR 22007: Incorrect POLYGON value: 'POINT' for column `test`.`t1`.`a` at row 1
+ERROR 22007: Incorrect POLYGON value: 'POINT(1 0)' for column `test`.`t1`.`a` at row 1
select * from (select polygon(t1.a) as p from t1 order by t1.a) d;
p
drop table t1;
diff --git a/mysql-test/suite/innodb_gis/r/gis_split_inf.result b/mysql-test/suite/innodb_gis/r/gis_split_inf.result
index 624c982b553..9e7bf69c0d0 100644
--- a/mysql-test/suite/innodb_gis/r/gis_split_inf.result
+++ b/mysql-test/suite/innodb_gis/r/gis_split_inf.result
@@ -1,18 +1,16 @@
create table t1(a geometrycollection not null,spatial key(a))engine=innodb;
insert into t1(a) values( geometrycollection(multipolygon(polygon(linestring(point(-14,98), point(-14,98)), linestring(point(-97,64), point(-70,99), point(-97,64)), linestring(point(143851215403059150000000000000000000000.000000,13040009882500140000000000000000000000.000000), point(-73,85), point(-88,-29)))), multipolygon(polygon(linestring(point(41,95), point(4294967298,2050)), linestring(point(-61,85), point(-75,93), point(14,-2), point(1,84), point(-61,85)), linestring(point(-62,52), point(39,5), point(-18,12), point(-62,52))), polygon(linestring(point(-77,1), point(66,61), point(-77,1)), linestring(point(18446744073709551615,1125899906842622), point(-72,49), point(24,-66), point(82,73), point(68,22))), polygon(linestring(point(1048576,17179869181), point(-18,95), point(-90,-3), point(-33,82), point(20,-85)), linestring(point(-43,-97), point(-7,-3), point(39,-82), point(-65,-58), point(-43,-97)), linestring(point(44,-34), point(-69,58), point(44,-34)), linestring(point(57,-13), point(-17,74), point(57,-13)), linestring(point(3,71), point(-58,81), point(3,71)), linestring(point(9,25), point(77,-71), point(8388607,67108864), point(46,46), point(9,25)), linestring(point(98,-82), point(98,-82))))) ) ;
-ERROR 22023: Invalid GIS data provided to function polygon.
+Got one of the listed errors
insert into t1(a) values( geometrycollection(multilinestring(linestring(point(39,-60), point(-62,-11), point(-24,35), point(54,1)), linestring(point(-4,69), point(-22,-64), point(1.694824e+308,5.688896e+307), point(-33,-58), point(-64,-80), point(-15,-44), point(40,54)), linestring(point(-86,-54), point(11,41), point(-46,-38), point(-21,-8), point(10,70), point(-81,22), point(-46,-100)), linestring(point(-30,-48), point(50,58), point(-53,92), point(10,41), point(-46,-8)), linestring(point(-65,34), point(-92,93), point(-33,-74), point(75,-28)), linestring(point(25,-55), point(22,-10), point(-42,0), point(-86,-59), point(2,-37), point(63,-44), point(-55,-22)), linestring(point(28,0), point(-94,99), point(-32,-86)), linestring(point(9,-12), point(16,9), point(80,-73)), linestring(point(6,-55), point(83,-4)), linestring(point(-15,21), point(144115188075855876,16777212), point(-85,-31), point(-90,-50)), linestring(point(-33,33), point(21,90), point(-89,32)), linestring(point(16,24), point(73,-13), point(25,-48), point(71,52), point(-54,-78), point(-84,59), point(53,29)), linestring(point(-15,-81), point(83,43), point(-71,33), point(-8,0), point(84,-54), point(-35,38), point(-10,-50)), linestring(point(38,-50), point(20,-2), point(-57,-92)), linestring(point(5,-93), point(231601833467477080000000000000000000000.000000,51914987457169239000000000000000000000.000000), point(-94,62))), point(2,0)) ) ;
insert into t1(a) values( geometrycollection(multilinestring(linestring(point(80,-15), point(65,-57), point(-59,16), point(22,-67)), linestring(point(20,-55), point(-38,-64), point(19,-53), point(-63,-36), point(56,-37)), linestring(point(27,-8), point(-85,-75), point(4398046511106,2251799813685245)), linestring(point(45,32), point(-79,46))), multilinestring(linestring(point(8,-4), point(40,-38), point(100,95), point(5,-80), point(82,88)), linestring(point(-14,30), point(-94,51), point(-16,-29), point(37,-97), point(-26,92)), linestring(point(32,34), point(83,-23), point(-55,57), point(-15,90), point(32,-50), point(-20,-73), point(77,28)), linestring(point(4,88), point(87,74), point(-67,-58)), linestring(point(5.660747e+307,6.385657e+307), point(-58,-15), point(1.172095e+308,1.448533e+308)), linestring(point(-21,-37), point(-52,79), point(-16,-76), point(-65,-94), point(36,7), point(37,74), point(100,-57)), linestring(point(-23,-82), point(-73,23), point(18,-34)), linestring(point(20,-51), point(93,62), point(-65,84)), linestring(point(-48,31), point(-69,-96)), linestring(point(-5,78), point(10,-99), point(36,-33)), linestring(point(-84,55), point(96,1), point(-98,-29), point(-15,81), point(-27,-6), point(58,-32), point(54,-16)), linestring(point(2,5), point(2199023255553,8192)), linestring(point(12,-78), point(-97,-83)), linestring(point(-74,79), point(35,-56), point(50,95)), linestring(point(28,16), point(-39,-40), point(48,-3)), linestring(point(2199023255550,-65539), point(62,-25), point(94,-62)), linestring(point(-74,83), point(-18,75), point(91,17), point(-11,-48), point(30,100)), linestring(point(57,-13), point(88,-45)), linestring(point(20,-64), point(-37,13), point(20,35))), point(-3,-4)) ) ;
insert into t1(a) values( geometrycollection(multipolygon(polygon(linestring(point(-34,19), point(-25,92), point(61921390294166805000000000000000000000.000000,319674749161701840000000000000000000000.000000), point(56,50), point(-34,19)), linestring(point(-26,-58), point(99,-50), point(34,-20), point(-26,-58)), linestring(point(-42,45), point(-63,-7), point(5,-89), point(-97,36), point(-42,45)), linestring(point(94,11), point(-71,4), point(94,11)), linestring(point(16,25), point(4,-33), point(-45,-33), point(-64,-77), point(16,25)), linestring(point(19,45), point(36,45), point(-83,-96), point(19,45)), linestring(point(85,-31), point(-87,52), point(85,-31))), polygon(linestring(point(55,-88), point(63,-12), point(55,-88)), linestring(point(-49,10), point(-49,10)), linestring(point(-51,-32), point(-51,-32)))), multipolygon(polygon(linestring(point(-21,-8), point(66,-58), point(100,-27), point(-21,-8)), linestring(point(-29,-13), point(-29,-13))), polygon(linestring(point(91307574660224730000000000000000000000.000000,101214152547755520000000000000000000000.000000), point(89,64), point(77,87), point(66,29), point(-71,-53)), linestring(point(38,-78), point(-43,-90), point(37,20), point(81,65), point(38,-78))), polygon(linestring(point(51,0), point(-62,8), point(-11,22), point(51,0)), linestring(point(-4,-44), point(6,82), point(-19,-90), point(131,32)))), point(-4,-7)) ) ;
-ERROR 22023: Invalid GIS data provided to function polygon.
+Got one of the listed errors
insert into t1(a) values( geometrycollection(point(10,9), linestring(point(2305843009213693955,-1125899906842621), point(78,15)), multipoint(point(-1,3), point(4,-6))) ) ;
insert into t1(a) values( geometrycollection(polygon(linestring(point(0,13), point(-12,5), point(0,13)), linestring(point(11,-2), point(6,6), point(20,-14), point(-3,-10), point(1.330588e+308,2.666476e+307)), linestring(point(16382,67), point(7,4)), linestring(point(2,7), point(-14,15), point(2,7)), linestring(point(-14,12), point(-8,-8), point(-17,-2), point(-14,12)), linestring(point(-20,-10), point(-8,-13), point(-19,-17), point(13,-3), point(-20,-10)), linestring(point(-5,13), point(7,-9), point(6,8), point(-5,13))), linestring(point(-87,19), point(-64,51), point(-16,12)), multipoint(point(-1,-10), point(2,-10), point(3.670354e+307,2.501459e+307))) ) ;
-ERROR 22023: Invalid GIS data provided to function polygon.
-insert into t1(a) values( geometrycollection(multipoint(point(-3,7), point(4,-3), point(-6,-2), point(-9,1)), polygon(linestring(point(-17,-5), point(2,-8), point(-6,9), point(-9,19), point(-17,-5)), linestring(point(10,-1), point(15,-7), point(-13,6), point(10,-1))), multipolygon(polygon(linestring(point(69,-69), point(-90,-64), point(-17,4), point(47,-73), point(69,-69)), linestring(point(-35,-77), point(-35,-77)), linestring(point(95,-76), point(1.636688e+308,1.828723e+307), point(68719476740,536870916), point(95,-76)), linestring(point(-26,-85), point(-26,-85)), linestring(point(-53,57), point(-53,57)), linestring(point(-98,-64), point(79,-57), point(-98,-64)), linestring(point(-91,59), point(16,0), point(73,97), point(-35,-70), point(-91,59))))) ) ;
-ERROR 22023: Invalid GIS data provided to function polygon.
+Got one of the listed errors
insert into t1(a) values( geometrycollection(linestring(point(85,-29), point(15,84), point(39,-92), point(-99,19)), multilinestring(linestring(point(63,10), point(-47,95), point(10,-49), point(16,-65), point(-98,40), point(25,44), point(-55,-92)), linestring(point(5.266810e+307,6.648813e+307), point(47,33), point(-15,-13), point(-92,-58), point(36,73)), linestring(point(77,-56), point(-53,-10), point(-28,76), point(-51,6), point(51,-31), point(-95,81), point(92,26)), linestring(point(-91,7), point(58,53)), linestring(point(18,5), point(18,40), point(71,89), point(7.898707e+307,1.202585e+308), point(53,100)), linestring(point(-60,-18), point(-10,-31), point(-6,-25), point(-57,-95), point(16,77)))) ) ;
insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ;
-ERROR 22023: Invalid GIS data provided to function polygon.
+Got one of the listed errors
insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(99,-87), point(38,-79), point(33,-39), point(-91,-8), point(46,-87))) ) ;
insert into t1 select * from t1;
insert into t1 select * from t1;
diff --git a/mysql-test/suite/innodb_gis/r/innodb_gis_rtree.result b/mysql-test/suite/innodb_gis/r/innodb_gis_rtree.result
index 2ef8757339e..5f0187eaa30 100644
--- a/mysql-test/suite/innodb_gis/r/innodb_gis_rtree.result
+++ b/mysql-test/suite/innodb_gis/r/innodb_gis_rtree.result
@@ -1577,13 +1577,13 @@ INSERT INTO t1 VALUES(GeomFromText('LINESTRING(2 2, 3 3)'));
SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)'));
COUNT(*)
1
-SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l);
+SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0.5 0.5)'), l);
COUNT(*)
1
SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)'));
COUNT(*)
1
-SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l);
+SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0.5 0.5)'), l);
COUNT(*)
1
DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_gis/r/point_basic.result b/mysql-test/suite/innodb_gis/r/point_basic.result
index 633caebbce7..4842c72d99c 100644
--- a/mysql-test/suite/innodb_gis/r/point_basic.result
+++ b/mysql-test/suite/innodb_gis/r/point_basic.result
@@ -164,7 +164,6 @@ POINT(1 0) POINT(10 20)
POINT(0 0) POINT(10 20)
SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))'));
ST_AsText(p) ST_AsText(p1)
-POINT(1 0) POINT(10 20)
POINT(0 0) POINT(10 20)
# Drop spatial keys on the table
ALTER TABLE t1 DROP KEY p, DROP KEY p1;
@@ -194,7 +193,6 @@ POINT(1 0) POINT(10 20)
POINT(0 0) POINT(10 20)
SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))'));
ST_AsText(p) ST_AsText(p1)
-POINT(1 0) POINT(10 20)
POINT(0 0) POINT(10 20)
TRUNCATE t1;
ALTER TABLE t1 DROP COLUMN p, DROP COLUMN p1;
@@ -235,10 +233,8 @@ SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('
ST_AsText(p) ST_AsText(p1)
POINT(0 1) POINT(10 19)
POINT(1 1) POINT(10 20)
-POINT(1 0) POINT(10 21)
SELECT ST_AsText(p), ST_AsText(p1) FROM t1 WHERE MBRWithin(p, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))'));
ST_AsText(p) ST_AsText(p1)
-POINT(1 0) POINT(10 21)
POINT(0 0) POINT(10 22)
ALTER TABLE t1 DROP COLUMN p1, ADD COLUMN p1 POINT, CHANGE COLUMN p pp POINT AFTER p1;
SELECT c.name, c.mtype, c.prtype, c.len
@@ -274,14 +270,9 @@ SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE p1 = ST_PointFromText('POINT(1
ST_AsText(pp) ST_AsText(p1)
SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE MBRWithin(p1, ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))')) ORDER BY pp;
ST_AsText(pp) ST_AsText(p1)
-POINT(0 0) POINT(5 5)
-POINT(0 1) POINT(5 5)
-POINT(1 0) POINT(5 5)
-POINT(1 1) POINT(5 5)
SELECT ST_AsText(pp), ST_AsText(p1) FROM t1 WHERE MBRWithin(pp, ST_GeomFromText('POLYGON((-1 0.5, -1 -0.5, 1 -0.5, 1 0.5, -1 0.5))')) ORDER BY pp;
ST_AsText(pp) ST_AsText(p1)
POINT(0 0) POINT(5 5)
-POINT(1 0) POINT(5 5)
DROP TABLE t1;
#
# Test when the POINT is on B-TREE
@@ -537,10 +528,8 @@ ST_AsText(p1)
POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1);
ST_AsText(p1)
-POINT(2 4)
POINT(3 6)
POINT(4 8)
-POINT(5 10)
SELECT ST_AsText(p2) FROM gis_point1 WHERE ST_Contains(@poly2, p2);
ST_AsText(p2)
POINT(-1 -3)
@@ -569,6 +558,7 @@ POINT(10 21)
POINT(20.5 41)
SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly);
ST_AsText(p1)
+POINT(3 6)
# Check functions that use MBR, with line type data
SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRIntersects(p1, @ls1);
ST_AsText(p1)
@@ -618,10 +608,8 @@ POINT(4 8)
POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1);
ST_AsText(p1)
-POINT(2 4)
POINT(3 6)
POINT(4 8)
-POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @poly1);
ST_AsText(p1)
POINT(2 4)
@@ -744,10 +732,8 @@ POINT(4 8)
POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point1 WHERE MBRWithin(p1, @poly1);
ST_AsText(p1)
-POINT(2 4)
POINT(3 6)
POINT(4 8)
-POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point1 WHERE ST_Touches(p1, @poly1);
ST_AsText(p1)
POINT(2 4)
@@ -829,10 +815,8 @@ ST_AsText(p1)
POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1);
ST_AsText(p1)
-POINT(2 4)
POINT(3 6)
POINT(4 8)
-POINT(5 10)
SELECT ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2);
ST_AsText(p2)
POINT(-1 -3)
@@ -861,6 +845,7 @@ POINT(10 21)
POINT(20.5 41)
SELECT ST_AsText(p1) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly);
ST_AsText(p1)
+POINT(3 6)
# Check functions that use MBR, with line type data
SELECT ST_AsText(p1) FROM gis_point WHERE MBRIntersects(p1, @ls1);
ST_AsText(p1)
@@ -910,10 +895,8 @@ POINT(4 8)
POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1);
ST_AsText(p1)
-POINT(2 4)
POINT(3 6)
POINT(4 8)
-POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1);
ST_AsText(p1)
POINT(2 4)
@@ -1036,10 +1019,8 @@ POINT(4 8)
POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1);
ST_AsText(p1)
-POINT(2 4)
POINT(3 6)
POINT(4 8)
-POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1);
ST_AsText(p1)
POINT(2 4)
@@ -1151,10 +1132,8 @@ POINT(4 8)
POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1);
ST_AsText(p1)
-POINT(2 4)
POINT(3 6)
POINT(4 8)
-POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1);
ST_AsText(p1)
POINT(2 4)
@@ -1277,10 +1256,8 @@ POINT(4 8)
POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1);
ST_AsText(p1)
-POINT(2 4)
POINT(3 6)
POINT(4 8)
-POINT(5 10)
SELECT ST_AsText(p1) FROM gis_point WHERE ST_Touches(p1, @poly1);
ST_AsText(p1)
POINT(2 4)
diff --git a/mysql-test/suite/innodb_gis/r/point_big.result b/mysql-test/suite/innodb_gis/r/point_big.result
index de3632994a0..c471ab6adb2 100644
--- a/mysql-test/suite/innodb_gis/r/point_big.result
+++ b/mysql-test/suite/innodb_gis/r/point_big.result
@@ -259,10 +259,8 @@ INSERT INTO gis_point VALUES
(ST_PointFromText('POINT(32.1234 64.2468)'), ST_PointFromText('POINT(-1 -1)'));
'The ORDER BY for spatial index will use filesort'
EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2;
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 Using filesort
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`gis_point`.`p1`) AS `ST_AsText(p1)`,st_astext(`test`.`gis_point`.`p2`) AS `ST_AsText(p2)` from `test`.`gis_point` order by `test`.`gis_point`.`p1`,`test`.`gis_point`.`p2`
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_point ALL NULL NULL NULL NULL 13 #
SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2;
ST_AsText(p1) ST_AsText(p2)
POINT(2 4) POINT(-2 -6)
@@ -354,9 +352,11 @@ COUNT(*) ST_AsText(p1)
1024 POINT(4 8)
SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2;
COUNT(*) ST_AsText(p2)
+1024 POINT(0 0)
1024 POINT(-2 -6)
1024 POINT(-3 -9)
1024 POINT(-4 -12)
+1024 POINT(-5 -15)
1024 POINT(-1 -3)
1024 POINT(-1 -1)
SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2;
@@ -368,13 +368,17 @@ COUNT(*) ST_AsText(p1)
1024 POINT(32.1234 64.2468)
SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2;
COUNT(*) ST_AsText(p1) ST_AsText(p2)
+1024 POINT(3 6) POINT(-3 -9)
1024 POINT(4 8) POINT(-4 -12)
1024 POINT(5 10) POINT(-5 -15)
1024 POINT(6 12) POINT(-6 -18)
1024 POINT(7 14) POINT(-7 -21)
+1024 POINT(8 16) POINT(0 0)
+1024 POINT(10 21) POINT(-6 3)
1024 POINT(20.5 41) POINT(-8 4)
SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2;
COUNT(*) ST_AsText(p1) ST_AsText(p2)
+1024 POINT(3 6) POINT(-3 -9)
======================================================================
Build another new table with the same schema, will insert data from this table to the orignal one
======================================================================
@@ -522,9 +526,11 @@ COUNT(*) ST_AsText(p1)
1024 POINT(4 8)
SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2;
COUNT(*) ST_AsText(p2)
+2 POINT(0 0)
1024 POINT(-2 -6)
1024 POINT(-3 -9)
1024 POINT(-4 -12)
+1024 POINT(-5 -15)
1024 POINT(-1 -3)
1024 POINT(-1 -1)
SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2;
@@ -536,13 +542,17 @@ COUNT(*) ST_AsText(p1)
1024 POINT(32.1234 64.2468)
SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2;
COUNT(*) ST_AsText(p1) ST_AsText(p2)
+1024 POINT(3 6) POINT(-3 -9)
1024 POINT(4 8) POINT(-4 -12)
1024 POINT(5 10) POINT(-5 -15)
1024 POINT(6 12) POINT(-6 -18)
1024 POINT(7 14) POINT(-7 -21)
+2 POINT(8 16) POINT(0 0)
+1024 POINT(10 21) POINT(-6 3)
1024 POINT(20.5 41) POINT(-8 4)
SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2;
COUNT(*) ST_AsText(p1) ST_AsText(p2)
+1024 POINT(3 6) POINT(-3 -9)
CHECK TABLE gis_point;
Table Op Msg_type Msg_text
test.gis_point check status OK
diff --git a/mysql-test/suite/innodb_gis/r/rtree.result b/mysql-test/suite/innodb_gis/r/rtree.result
index 53719f12205..b7cdc8ec7c9 100644
--- a/mysql-test/suite/innodb_gis/r/rtree.result
+++ b/mysql-test/suite/innodb_gis/r/rtree.result
@@ -16,7 +16,6 @@ select ST_astext(t1.g) from t1 where MBRWithin(t1.g, @g1);
ST_astext(t1.g)
POINT(1 1)
POINT(1.5 1.5)
-POINT(3 3)
set @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');
delete from t1 where MBRWithin(t1.g, @g1);
check table t1;
@@ -24,6 +23,7 @@ Table Op Msg_type Msg_text
test.t1 check status OK
select ST_astext(t1.g) from t1;
ST_astext(t1.g)
+POINT(3 3)
POINT(3.1 3.1)
POINT(5 5)
set @g1 = ST_GeomFromText('Polygon((5 5,5 5,5 5,5 5,5 5))');
@@ -33,6 +33,7 @@ Table Op Msg_type Msg_text
test.t1 check status OK
select ST_astext(t1.g) from t1;
ST_astext(t1.g)
+POINT(3 3)
POINT(3.1 3.1)
POINT(2 2)
show indexes from t1;
@@ -161,7 +162,6 @@ select ST_astext(t1.g) from t1 where MBRWithin(t1.g, @g1);
ST_astext(t1.g)
POINT(1 1)
POINT(1.5 1.5)
-POINT(3 3)
set @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');
delete from t1 where MBRWithin(t1.g, @g1);
check table t1;
@@ -169,6 +169,7 @@ Table Op Msg_type Msg_text
test.t1 check status OK
select ST_astext(t1.g) from t1;
ST_astext(t1.g)
+POINT(3 3)
POINT(3.1 3.1)
POINT(5 5)
set @g1 = ST_GeomFromText('Polygon((5 5,5 5,5 5,5 5,5 5))');
@@ -178,6 +179,7 @@ Table Op Msg_type Msg_text
test.t1 check status OK
select ST_astext(t1.g) from t1;
ST_astext(t1.g)
+POINT(3 3)
POINT(3.1 3.1)
POINT(2 2)
show indexes from t1;
diff --git a/mysql-test/suite/innodb_gis/r/rtree_concurrent_srch.result b/mysql-test/suite/innodb_gis/r/rtree_concurrent_srch.result
index 9c5db3e06aa..f5a337ecd03 100644
--- a/mysql-test/suite/innodb_gis/r/rtree_concurrent_srch.result
+++ b/mysql-test/suite/innodb_gis/r/rtree_concurrent_srch.result
@@ -234,7 +234,7 @@ start transaction;
set @g1 = ST_GeomFromText('Polygon((800 800, 800 1000, 1000 1000, 1000 800, 800 800))');
select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*)
-201
+199
connection b;
CALL insert_t1(1001, 2000);
set session transaction isolation level serializable;
diff --git a/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result b/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result
index 11cf8ad91c1..0165887a9f1 100644
--- a/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result
+++ b/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result
@@ -6,13 +6,12 @@ insert into t1 values (4, "444", POINT(3.1,3.1));
insert into t1 values (5, "555", POINT(5,5));
analyze table t1;
Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
set @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');
explain select ST_astext(t1.g) from t1 where MBRWithin(t1.g, @g1);
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE t1 NULL ALL g NULL NULL NULL 5 100.00 Using where
-Warnings:
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_astext(t1.g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g1`))
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL g NULL NULL NULL 5 Using where
select ST_astext(t1.g) from t1 where MBRWithin(t1.g, @g1);
ST_astext(t1.g)
POINT(1 1)
@@ -97,18 +96,6 @@ left2 POLYGON((-2 0,-2 2,0 2,0 0,-2 0))
SELECT name, ST_AsText(square) from t1 where MBRWithin(@p, square);
name ST_AsText(square)
big POLYGON((0 0,0 3,3 3,3 0,0 0))
-SET @vert1 = ST_GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
-ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
-SET @horiz1 = ST_GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
-ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
-SET @horiz2 = ST_GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
-ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
-SET @horiz3 = ST_GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
-ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
-SET @point1 = ST_GeomFromText('POLYGON ((0 0))');
-ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
-SET @point2 = ST_GeomFromText('POLYGON ((-2 0))');
-ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS MBRoverlaps FROM t1 a1 WHERE MBROverlaps(a1.square, @vert1) GROUP BY a1.name;
MBRoverlaps
SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS MBRoverlaps FROM t1 a1 WHERE MBROverlaps(a1.square, @horiz1) GROUP BY a1.name;
@@ -140,7 +127,7 @@ alter table t1 drop primary key;
create spatial index idx on t1(g) algorithm=inplace;
create spatial index idx2 on t1(g);
Warnings:
-Warning 1831 Duplicate index 'idx2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
+Note 1831 Duplicate index `idx2`. This is deprecated and will be disallowed in a future release
alter table t1 add primary key(i), algorithm=inplace;
show create table t1;
Table Create Table
diff --git a/mysql-test/suite/innodb_gis/r/rtree_search.result b/mysql-test/suite/innodb_gis/r/rtree_search.result
index d186986156e..d8a8d209cd3 100644
--- a/mysql-test/suite/innodb_gis/r/rtree_search.result
+++ b/mysql-test/suite/innodb_gis/r/rtree_search.result
@@ -14,19 +14,19 @@ count(*)
set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
-1000
+999
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
-100
+99
set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
-791
+789
set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
-701
+699
set @g1 = ST_GeomFromText('Point(1 1)');
select count(*) from t1 where MBRequals(t1.c2, @g1);
count(*)
diff --git a/mysql-test/suite/innodb_gis/r/rtree_split.result b/mysql-test/suite/innodb_gis/r/rtree_split.result
index 65a9ff3499f..518319ff3d6 100644
--- a/mysql-test/suite/innodb_gis/r/rtree_split.result
+++ b/mysql-test/suite/innodb_gis/r/rtree_split.result
@@ -79,7 +79,7 @@ count(*)
set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
-65536
+57344
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
@@ -87,5 +87,5 @@ count(*)
set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
-65536
+57344
drop table t1;
diff --git a/mysql-test/suite/innodb_gis/t/bug16236208.test b/mysql-test/suite/innodb_gis/t/bug16236208.test
index ef2da6f2ab1..b55ab1d0fd3 100644
--- a/mysql-test/suite/innodb_gis/t/bug16236208.test
+++ b/mysql-test/suite/innodb_gis/t/bug16236208.test
@@ -47,7 +47,7 @@ ST_GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'));
CREATE INDEX linestring_index ON linestring(linestring_nokey(5));
ALTER TABLE linestring ADD KEY (linestring_key(5));
---error ER_GIS_INVALID_DATA
+# --error ER_GIS_INVALID_DATA
SELECT ST_AsText(linestring_nokey) FROM linestring FORCE KEY (
linestring_key ) WHERE ST_CONTAINS( ST_GeomFromText('POLYGON( ( 3923 2815 , 4246
2122 , 4028 2971 , 4017 3019 , 3923 2815 ) )') , linestring_key ) AND
diff --git a/mysql-test/suite/innodb_gis/t/bug16266012.test b/mysql-test/suite/innodb_gis/t/bug16266012.test
index 17986998fc9..6d72e4733c0 100644
--- a/mysql-test/suite/innodb_gis/t/bug16266012.test
+++ b/mysql-test/suite/innodb_gis/t/bug16266012.test
@@ -6,7 +6,7 @@
--source include/have_geometry.inc
--source include/not_embedded.inc
--source include/have_debug.inc
---error ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION
+# --error ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION
SELECT ST_WITHIN( LINESTRINGFROMTEXT(' LINESTRING( 5 9 , 3 4 , 4 1 , 4
4 , 4 9 ) ') , ST_SYMDIFFERENCE( ST_UNION( ST_ENVELOPE( POLYGONFROMTEXT('
POLYGON( ( 3 2 , 0 6 , 2 3 , 8 0 , 4 6 , 7 2 , 3 2 ) ) ') ) ,
diff --git a/mysql-test/suite/innodb_gis/t/geometry.test b/mysql-test/suite/innodb_gis/t/geometry.test
index 2d030f90dc9..3efc664fbd2 100644
--- a/mysql-test/suite/innodb_gis/t/geometry.test
+++ b/mysql-test/suite/innodb_gis/t/geometry.test
@@ -10,6 +10,7 @@
#********************************************************
--source include/have_geometry.inc
--source include/have_innodb.inc
+--source include/have_partition.inc
SET default_storage_engine=InnoDB;
SET innodb_strict_mode=OFF;
@@ -162,21 +163,21 @@ EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
---echo #check range predicate on the index columns
---replace_column 10 #
---error ER_WRONG_ARGUMENTS
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
-WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
-
---replace_column 10 #
---error ER_WRONG_ARGUMENTS
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
-WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
-
---replace_column 10 #
---error ER_WRONG_ARGUMENTS
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
-WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
+#--echo #check range predicate on the index columns
+#--replace_column 10 #
+#--error ER_WRONG_ARGUMENTS
+#EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
+#WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
+#
+#--replace_column 10 #
+#--error ER_WRONG_ARGUMENTS
+#EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
+#WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
+#
+#--replace_column 10 #
+#--error ER_WRONG_ARGUMENTS
+#EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
+#WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
--echo #check index with DELETE operation
--replace_column 10 #
@@ -409,10 +410,9 @@ SELECT ST_AsText(a.c2),ST_AsText(b.c2) FROM tab a,tab2 b WHERE a.c2=b.c2;
--echo #check DELETE stmt with Where clause and a constant predicate
DELETE FROM tab
-Where c8=c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
+WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
---echo #check the data, should 0
-SELECT COUNT(*) FROM tab;
+SELECT * FROM tab;
--echo #check UPDATE stmt with Where clause and a constant predicate
SET @c8=ST_GeomCollFromText('GeometryCollection(Point(10 10),LineString(20 20, 30 30))');
@@ -518,21 +518,21 @@ EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab3
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
---echo #check range predicate on the index columns
---replace_column 10 #
---error ER_WRONG_ARGUMENTS
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
-WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
-
---replace_column 10 #
---error ER_WRONG_ARGUMENTS
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
-WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
-
---replace_column 10 #
---error ER_WRONG_ARGUMENTS
-EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
-WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
+# --echo #check range predicate on the index columns
+# --replace_column 10 #
+# --error ER_WRONG_ARGUMENTS
+# EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
+# WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
+#
+# --replace_column 10 #
+# --error ER_WRONG_ARGUMENTS
+# EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
+# WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
+
+# --replace_column 10 #
+# --error ER_WRONG_ARGUMENTS
+# EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
+# WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
--echo #check index with DELETE operation
--replace_column 10 #
@@ -638,7 +638,7 @@ FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second
--echo # check support of Foreign Key constraint
CREATE TABLE parent (id GEOMETRY NOT NULL,PRIMARY KEY (id(10))) ENGINE=INNODB;
---error 1215
+--error ER_CANT_CREATE_TABLE
CREATE TABLE child (id GEOMETRY, parent_id GEOMETRY,
INDEX par_ind (parent_id(10)),
FOREIGN KEY (parent_id(10)) REFERENCES parent(id)
@@ -662,6 +662,7 @@ PARTITION BY LIST(store_id) (
--echo #check start transaction commit & Rollback
START TRANSACTION;
DELETE FROM tab3;
+SELECT * FROM tab3;
ROLLBACK;
SELECT COUNT(*) FROM tab3;
@@ -670,12 +671,12 @@ START TRANSACTION;
DELETE FROM tab3;
COMMIT;
-SELECT COUNT(*) FROM tab3;
+SELECT * FROM tab3;
DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point;
DROP TABLE gis_multi_line, gis_multi_polygon;
DROP TABLE gis_geometrycollection, gis_geometry;
-DROP TABLE tab,tab2,tab3,parent,emp2;
+DROP TABLE tab,tab2,tab3,parent;
DROP PROCEDURE geominout;
DROP PROCEDURE geom_insert;
DROP PROCEDURE geom_cursor;
diff --git a/mysql-test/suite/innodb_gis/t/gis_split_inf.test b/mysql-test/suite/innodb_gis/t/gis_split_inf.test
index e1b2d4e5947..addd2dbdbff 100644
--- a/mysql-test/suite/innodb_gis/t/gis_split_inf.test
+++ b/mysql-test/suite/innodb_gis/t/gis_split_inf.test
@@ -12,8 +12,6 @@ insert into t1(a) values( geometrycollection(multipolygon(polygon(linestring(
insert into t1(a) values( geometrycollection(point(10,9), linestring(point(2305843009213693955,-1125899906842621), point(78,15)), multipoint(point(-1,3), point(4,-6))) ) ;
--error ER_GIS_INVALID_DATA,ER_BAD_NULL_ERROR
insert into t1(a) values( geometrycollection(polygon(linestring(point(0,13), point(-12,5), point(0,13)), linestring(point(11,-2), point(6,6), point(20,-14), point(-3,-10), point(1.330588e+308,2.666476e+307)), linestring(point(16382,67), point(7,4)), linestring(point(2,7), point(-14,15), point(2,7)), linestring(point(-14,12), point(-8,-8), point(-17,-2), point(-14,12)), linestring(point(-20,-10), point(-8,-13), point(-19,-17), point(13,-3), point(-20,-10)), linestring(point(-5,13), point(7,-9), point(6,8), point(-5,13))), linestring(point(-87,19), point(-64,51), point(-16,12)), multipoint(point(-1,-10), point(2,-10), point(3.670354e+307,2.501459e+307))) ) ;
---error ER_GIS_INVALID_DATA,ER_BAD_NULL_ERROR
-insert into t1(a) values( geometrycollection(multipoint(point(-3,7), point(4,-3), point(-6,-2), point(-9,1)), polygon(linestring(point(-17,-5), point(2,-8), point(-6,9), point(-9,19), point(-17,-5)), linestring(point(10,-1), point(15,-7), point(-13,6), point(10,-1))), multipolygon(polygon(linestring(point(69,-69), point(-90,-64), point(-17,4), point(47,-73), point(69,-69)), linestring(point(-35,-77), point(-35,-77)), linestring(point(95,-76), point(1.636688e+308,1.828723e+307), point(68719476740,536870916), point(95,-76)), linestring(point(-26,-85), point(-26,-85)), linestring(point(-53,57), point(-53,57)), linestring(point(-98,-64), point(79,-57), point(-98,-64)), linestring(point(-91,59), point(16,0), point(73,97), point(-35,-70), point(-91,59))))) ) ;
insert into t1(a) values( geometrycollection(linestring(point(85,-29), point(15,84), point(39,-92), point(-99,19)), multilinestring(linestring(point(63,10), point(-47,95), point(10,-49), point(16,-65), point(-98,40), point(25,44), point(-55,-92)), linestring(point(5.266810e+307,6.648813e+307), point(47,33), point(-15,-13), point(-92,-58), point(36,73)), linestring(point(77,-56), point(-53,-10), point(-28,76), point(-51,6), point(51,-31), point(-95,81), point(92,26)), linestring(point(-91,7), point(58,53)), linestring(point(18,5), point(18,40), point(71,89), point(7.898707e+307,1.202585e+308), point(53,100)), linestring(point(-60,-18), point(-10,-31), point(-6,-25), point(-57,-95), point(16,77)))) ) ;
--error ER_GIS_INVALID_DATA,ER_BAD_NULL_ERROR
insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ;
@@ -22,5 +20,8 @@ insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
drop table t1;
diff --git a/mysql-test/suite/innodb_gis/t/rtree_multi_pk.test b/mysql-test/suite/innodb_gis/t/rtree_multi_pk.test
index 928b1878e69..f606e569376 100644
--- a/mysql-test/suite/innodb_gis/t/rtree_multi_pk.test
+++ b/mysql-test/suite/innodb_gis/t/rtree_multi_pk.test
@@ -75,19 +75,6 @@ SELECT name, ST_AsText(square) from t1 where MBRWithin(@p, square);
# MBROverlaps needs a few more tests, with point and line dimensions
---error ER_GIS_INVALID_DATA
-SET @vert1 = ST_GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
---error ER_GIS_INVALID_DATA
-SET @horiz1 = ST_GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
---error ER_GIS_INVALID_DATA
-SET @horiz2 = ST_GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
---error ER_GIS_INVALID_DATA
-SET @horiz3 = ST_GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
---error ER_GIS_INVALID_DATA
-SET @point1 = ST_GeomFromText('POLYGON ((0 0))');
---error ER_GIS_INVALID_DATA
-SET @point2 = ST_GeomFromText('POLYGON ((-2 0))');
-
SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS MBRoverlaps FROM t1 a1 WHERE MBROverlaps(a1.square, @vert1) GROUP BY a1.name;
SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS MBRoverlaps FROM t1 a1 WHERE MBROverlaps(a1.square, @horiz1) GROUP BY a1.name;
SELECT MBROverlaps(@horiz1, @vert1) FROM DUAL;
diff --git a/mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result b/mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result
index 4ce6fe769fd..15227e9d6d3 100644
--- a/mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result
+++ b/mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result
@@ -1,53 +1,52 @@
-call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded.");
-call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* because the .ibd file is missing. Please refer to .* for how to resolve the issue.");
-call mtr.add_suppression("InnoDB: Page 0 at offset 0 looks corrupted in file .*");
+call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded\\.");
+call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* because the .ibd file is missing. Please refer to .* for how to resolve the issue\\.");
+call mtr.add_suppression("InnoDB: Page 0 at offset 0 looks corrupted in file");
call mtr.add_suppression("InnoDB: Page for tablespace ");
call mtr.add_suppression("InnoDB: Invalid FSP_SPACE_FLAGS=0x");
FLUSH TABLES;
SET SESSION innodb_strict_mode=1;
-CREATE DATABASE test_wl5522;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-INSERT INTO test_wl5522.t1 VALUES (1), (2), (3), (4);
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+INSERT INTO t1 VALUES (1), (2), (3), (4);
+FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-INSERT INTO test_wl5522.t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_before_commit_crash";
-SELECT * FROM test_wl5522.t1;
+SELECT * FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Lost connection to MySQL server during query
SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash";
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Lost connection to MySQL server during query
unlink: t1.ibd
unlink: t1.cfg
# Restart and reconnect to the server
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
SET SESSION innodb_strict_mode=1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
restore: t1 .ibd and .cfg files
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-CHECK TABLE test_wl5522.t1;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
Table Op Msg_type Msg_text
-test_wl5522.t1 check status OK
-SELECT COUNT(*) FROM test_wl5522.t1;
+test.t1 check status OK
+SELECT COUNT(*) FROM t1;
COUNT(*)
4
-INSERT INTO test_wl5522.t1 VALUES(400), (500), (600);
-SELECT * FROM test_wl5522.t1;
+INSERT INTO t1 VALUES(400), (500), (600);
+SELECT * FROM t1;
c1
1
2
@@ -56,59 +55,59 @@ c1
400
500
600
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET @saved_debug_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug="+d,ib_import_internal_error";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Internal error: While updating the <space, root page number> of index GEN_CLUST_INDEX - Generic error
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+ALTER TABLE t1 IMPORT TABLESPACE;
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Too many concurrent transactions
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Too many concurrent transactions
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug=@saved_debug_dbug;
SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Got error 44 't1.ibd
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Got error 44 'Tablespace not found' from ./test/t1.ibd
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_cluster_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
restore: t1 .ibd and .cfg files
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (
+DROP TABLE t1;
+CREATE TABLE t1 (
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 BIGINT,
c3 VARCHAR(2048),
@@ -120,37 +119,30 @@ ROW_FORMAT=COMPRESSED;
connect purge_control,localhost,root;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
connection default;
-SET GLOBAL innodb_monitor_reset = ibuf_merges;
-SET GLOBAL innodb_monitor_reset = ibuf_merges_insert;
-INSERT INTO test_wl5522.t1(c2, c3, c4) VALUES
-(1, REPEAT('a', 2048), REPEAT('a', 2048)),
-(2, REPEAT('b', 2048), REPEAT('b', 2048)),
-(3, REPEAT('c', 2048), REPEAT('c', 2048)),
-(4, REPEAT('d', 2048), REPEAT('d', 2048));
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-DELETE FROM test_wl5522.t1 WHERE c2 = 1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c3 = REPEAT("c2", 1024);
-UPDATE test_wl5522.t1 SET c4 = REPEAT("c4", 1024);
-SHOW CREATE TABLE test_wl5522.t1;
+INSERT INTO t1
+SELECT 1 + seq, 1 + (seq MOD 4),
+REPEAT(SUBSTR('abcd', 1 + (seq MOD 4), 1), 2048),
+REPEAT(SUBSTR('abcd', 1 + (seq MOD 4), 1), 2048)
+FROM seq_0_to_127;
+DELETE FROM t1 WHERE c2 = 1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c3 = REPEAT("c2", 1024);
+UPDATE t1 SET c4 = REPEAT("c4", 1024);
+SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` bigint(20) NOT NULL AUTO_INCREMENT,
@@ -161,133 +153,16 @@ t1 CREATE TABLE `t1` (
KEY `idx1` (`c2`),
KEY `idx2` (`c3`(512)),
KEY `idx3` (`c4`(512))
-) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
-SELECT c1, c2 FROM test_wl5522.t1;
-c1 c2
-2 32
-3 48
-4 64
-6 92
-7 108
-8 124
-13 197
-14 213
-15 229
-17 257
-18 273
-19 289
-28 422
-29 438
-30 454
-32 482
-33 498
-34 514
-36 542
-37 558
-38 574
-40 602
-41 618
-42 634
-59 887
-60 903
-61 919
-63 947
-64 963
-65 979
-67 1007
-68 1023
-69 1039
-71 1067
-72 1083
-73 1099
-75 1127
-76 1143
-77 1159
-79 1187
-80 1203
-81 1219
-83 1247
-84 1263
-85 1279
-87 1307
-88 1323
-89 1339
-122 1832
-123 1848
-124 1864
-126 1892
-127 1908
-128 1924
-130 1952
-131 1968
-132 1984
-134 2012
-135 2028
-136 2044
-138 2072
-139 2088
-140 2104
-142 2132
-143 2148
-144 2164
-146 2192
-147 2208
-148 2224
-150 2252
-151 2268
-152 2284
-154 2312
-155 2328
-156 2344
-158 2372
-159 2388
-160 2404
-162 2432
-163 2448
-164 2464
-166 2492
-167 2508
-168 2524
-170 2552
-171 2568
-172 2584
-174 2612
-175 2628
-176 2644
-178 2672
-179 2688
-180 2704
-182 2732
-183 2748
-184 2764
-SELECT COUNT(*) FROM test_wl5522.t1;
-COUNT(*)
-96
-SELECT SUM(c2) FROM test_wl5522.t1;
-SUM(c2)
-145278
-SELECT name
-FROM information_schema.innodb_metrics
-WHERE name = 'ibuf_merges_insert' AND count = 0;
-name
-ibuf_merges_insert
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+) ENGINE=InnoDB AUTO_INCREMENT=129 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
+FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
-SELECT name
-FROM information_schema.innodb_metrics
-WHERE name = 'ibuf_merges' AND count > 0;
-name
-SELECT name
-FROM information_schema.innodb_metrics
-WHERE name = 'ibuf_merges_inserts' AND count > 0;
-name
connection purge_control;
COMMIT;
disconnect purge_control;
connection default;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (
+DROP TABLE t1;
+CREATE TABLE t1 (
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 BIGINT,
c3 VARCHAR(2048),
@@ -296,15 +171,15 @@ INDEX idx1(c2),
INDEX idx2(c3(512)),
INDEX idx3(c4(512))) Engine=InnoDB
ROW_FORMAT=COMPRESSED;
-SELECT c1, c2 FROM test_wl5522.t1;
+SELECT c1, c2 FROM t1;
c1 c2
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
restore: t1 .ibd and .cfg files
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-CHECK TABLE test_wl5522.t1;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
Table Op Msg_type Msg_text
-test_wl5522.t1 check status OK
-SELECT c1,c2 FROM test_wl5522.t1;
+test.t1 check status OK
+SELECT c1,c2 FROM t1;
c1 c2
2 32
3 48
@@ -312,103 +187,97 @@ c1 c2
6 92
7 108
8 124
-13 197
-14 213
-15 229
-17 257
-18 273
-19 289
-28 422
-29 438
-30 454
-32 482
-33 498
-34 514
-36 542
-37 558
-38 574
-40 602
-41 618
-42 634
-59 887
-60 903
-61 919
-63 947
-64 963
-65 979
-67 1007
-68 1023
-69 1039
-71 1067
-72 1083
-73 1099
-75 1127
-76 1143
-77 1159
-79 1187
-80 1203
-81 1219
-83 1247
-84 1263
-85 1279
-87 1307
-88 1323
-89 1339
+10 152
+11 168
+12 184
+14 212
+15 228
+16 244
+18 272
+19 288
+20 304
+22 332
+23 348
+24 364
+26 392
+27 408
+28 424
+30 452
+31 468
+32 484
+34 512
+35 528
+36 544
+38 572
+39 588
+40 604
+42 632
+43 648
+44 664
+46 692
+47 708
+48 724
+50 752
+51 768
+52 784
+54 812
+55 828
+56 844
+58 872
+59 888
+60 904
+62 932
+63 948
+64 964
+66 992
+67 1008
+68 1024
+70 1052
+71 1068
+72 1084
+74 1112
+75 1128
+76 1144
+78 1172
+79 1188
+80 1204
+82 1232
+83 1248
+84 1264
+86 1292
+87 1308
+88 1324
+90 1352
+91 1368
+92 1384
+94 1412
+95 1428
+96 1444
+98 1472
+99 1488
+100 1504
+102 1532
+103 1548
+104 1564
+106 1592
+107 1608
+108 1624
+110 1652
+111 1668
+112 1684
+114 1712
+115 1728
+116 1744
+118 1772
+119 1788
+120 1804
122 1832
123 1848
124 1864
126 1892
127 1908
128 1924
-130 1952
-131 1968
-132 1984
-134 2012
-135 2028
-136 2044
-138 2072
-139 2088
-140 2104
-142 2132
-143 2148
-144 2164
-146 2192
-147 2208
-148 2224
-150 2252
-151 2268
-152 2284
-154 2312
-155 2328
-156 2344
-158 2372
-159 2388
-160 2404
-162 2432
-163 2448
-164 2464
-166 2492
-167 2508
-168 2524
-170 2552
-171 2568
-172 2584
-174 2612
-175 2628
-176 2644
-178 2672
-179 2688
-180 2704
-182 2732
-183 2748
-184 2764
-SELECT COUNT(*) FROM test_wl5522.t1;
-COUNT(*)
-96
-SELECT SUM(c2) FROM test_wl5522.t1;
-SUM(c2)
-145278
-SHOW CREATE TABLE test_wl5522.t1;
+SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` bigint(20) NOT NULL AUTO_INCREMENT,
@@ -419,135 +288,116 @@ t1 CREATE TABLE `t1` (
KEY `idx1` (`c2`),
KEY `idx2` (`c3`(512)),
KEY `idx3` (`c4`(512))
-) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+) ENGINE=InnoDB AUTO_INCREMENT=129 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-INSERT IGNORE INTO test_wl5522.t1 VALUES
-(100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200));
-Warnings:
-Warning 1265 Data truncated for column 'c2' at row 1
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
-COUNT(*)
-256
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+INSERT INTO t1
+SELECT 100, REPEAT('Karanbir', 128), REPEAT('Ajeeth', 1200)
+FROM seq_1_to_256;
+FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Data structure corruption
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Data structure corruption
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index corrupt: Externally stored column(5) has a reference length of 19 in the cluster index GEN_CLUST_INDEX
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
SET SESSION debug_dbug="+d,ib_import_create_index_failure_1";
-ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1);
+ALTER TABLE t1 ADD INDEX idx(c1);
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,fil_space_create_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Got error 11 't1.ibd
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Got error 11 'Generic error' from ./test/t1.ibd
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Got error 39 't1.ibd
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Got error 39 'Data structure corruption' from ./test/t1.ibd
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
-SELECT COUNT(*) FROM test_wl5522.t1;
+ALTER TABLE t1 DISCARD TABLESPACE;
+SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure";
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption
+ALTER TABLE t1 IMPORT TABLESPACE;
+ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Data structure corruption
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
unlink: t1.ibd
unlink: t1.cfg
-DROP DATABASE test_wl5522;
-set global innodb_monitor_disable = all;
-set global innodb_monitor_reset_all = all;
-set global innodb_monitor_enable = default;
-set global innodb_monitor_disable = default;
-set global innodb_monitor_reset = default;
-set global innodb_monitor_reset_all = default;
diff --git a/mysql-test/suite/innodb_zip/r/wl5522_zip.result b/mysql-test/suite/innodb_zip/r/wl5522_zip.result
index ab8bafc262d..c0fddf7e8ed 100644
--- a/mysql-test/suite/innodb_zip/r/wl5522_zip.result
+++ b/mysql-test/suite/innodb_zip/r/wl5522_zip.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT.");
+call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT\\.");
SET SESSION innodb_strict_mode=1;
CREATE TABLE t1
(a INT AUTO_INCREMENT PRIMARY KEY,
@@ -6,29 +6,26 @@ b char(22),
c varchar(255),
KEY (b))
ENGINE = InnoDB ROW_FORMAT=COMPRESSED ;
-insert into t1 (b, c) values ('Apa', 'Filler........'),
+CREATE TEMPORARY TABLE t (b char(22),c varchar(255));
+INSERT INTO t VALUES
+('Apa', 'Filler........'),
('Banan', 'Filler........'), ('Cavalry', '..asdasdfaeraf'),
('Devotion', 'asdfuihknaskdf'), ('Evolution', 'lsjndofiabsoibeg');
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
+INSERT INTO t1 (b,c) SELECT b,c FROM t,seq_1_to_128;
+DROP TEMPORARY TABLE t;
SELECT COUNT(*) FROM t1;
COUNT(*)
640
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
a b c
-819 Apa Filler........
-814 Apa Filler........
-809 Apa Filler........
+636 Apa Filler........
+631 Apa Filler........
+626 Apa Filler........
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
a b c
-823 Evolution lsjndofiabsoibeg
-822 Devotion asdfuihknaskdf
-821 Cavalry ..asdasdfaeraf
+640 Evolution lsjndofiabsoibeg
+639 Devotion asdfuihknaskdf
+638 Cavalry ..asdasdfaeraf
db.opt
t1.frm
t1.ibd
@@ -48,14 +45,14 @@ COUNT(*)
1280
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
a b c
-1459 Apa Filler........
-1454 Apa Filler........
-1449 Apa Filler........
+1276 Apa Filler........
+1271 Apa Filler........
+1266 Apa Filler........
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
a b c
-1463 Evolution lsjndofiabsoibeg
-1462 Devotion asdfuihknaskdf
-1461 Cavalry ..asdasdfaeraf
+1280 Evolution lsjndofiabsoibeg
+1279 Devotion asdfuihknaskdf
+1278 Cavalry ..asdasdfaeraf
# Restarting server
# restart
# Done restarting server
@@ -74,14 +71,14 @@ COUNT(*)
640
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
a b c
-819 Apa Filler........
-814 Apa Filler........
-809 Apa Filler........
+636 Apa Filler........
+631 Apa Filler........
+626 Apa Filler........
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
a b c
-823 Evolution lsjndofiabsoibeg
-822 Devotion asdfuihknaskdf
-821 Cavalry ..asdasdfaeraf
+640 Evolution lsjndofiabsoibeg
+639 Devotion asdfuihknaskdf
+638 Cavalry ..asdasdfaeraf
db.opt
t1.cfg
t1.frm
@@ -91,14 +88,14 @@ COUNT(*)
640
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
a b c
-819 Apa Filler........
-814 Apa Filler........
-809 Apa Filler........
+636 Apa Filler........
+631 Apa Filler........
+626 Apa Filler........
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
a b c
-823 Evolution lsjndofiabsoibeg
-822 Devotion asdfuihknaskdf
-821 Cavalry ..asdasdfaeraf
+640 Evolution lsjndofiabsoibeg
+639 Devotion asdfuihknaskdf
+638 Cavalry ..asdasdfaeraf
DROP TABLE t1;
SET SESSION innodb_strict_mode=1;
CREATE TABLE t1(
@@ -114,18 +111,11 @@ DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
db.opt
t1.frm
t1.ibd
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-16
backup: t1
db.opt
t1.cfg
@@ -155,11 +145,7 @@ DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
db.opt
t1.frm
t1.ibd
@@ -176,8 +162,6 @@ UNLOCK TABLES;
db.opt
t1.frm
t1.ibd
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -202,23 +186,14 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX(c2)) ENGINE=InnoDB
ROW_FORMAT=COMPRESSED;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1 WHERE c2 = 1;
-COUNT(*)
-16
backup: t1
db.opt
t1.cfg
t1.frm
t1.ibd
UNLOCK TABLES;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -240,19 +215,10 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1 WHERE c2 = 1;
-COUNT(*)
-16
backup: t1
UNLOCK TABLES;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
DROP TABLE t1;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -281,39 +247,32 @@ c1 c2
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
unlink: t1.cfg
DROP TABLE t1;
SET GLOBAL innodb_file_per_table = 0;
CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-16
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`)
-) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1
FLUSH TABLES t1 FOR EXPORT;
Warnings:
Warning 1809 Table `test`.`t1` in system tablespace
@@ -324,12 +283,7 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB
ROW_FORMAT=COMPRESSED;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -337,41 +291,7 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
-SELECT * FROM t1;
-c1 c2
-1 1
-2 1
-3 1
-4 1
-6 1
-7 1
-8 1
-9 1
-13 1
-14 1
-15 1
-16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
FLUSH TABLES t1 FOR EXPORT;
backup: t1
UNLOCK TABLES;
@@ -449,42 +369,26 @@ t1 CREATE TABLE `t1` (
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `idx` (`c2`)
-) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
SELECT * FROM t1;
c1 c2
1 1
2 1
3 1
4 1
+5 1
6 1
7 1
8 1
9 1
+10 1
+11 1
+12 1
13 1
14 1
15 1
16 1
-17 1
-18 1
-19 1
-20 1
-28 1
-29 1
-30 1
-31 1
-32 1
-33 1
-34 1
-35 1
-36 1
-37 1
-38 1
-39 1
-40 1
-41 1
-42 1
-43 1
DROP TABLE t1;
call mtr.add_suppression("Got error -1 when reading table '.*'");
-call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'.*");
+call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'");
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded");
diff --git a/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test b/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test
index 22f729eccbe..9529045785f 100644
--- a/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test
+++ b/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test
@@ -12,70 +12,66 @@
--source include/innodb_page_size_small.inc
--source include/default_charset.inc
+--source include/have_sequence.inc
-call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded.");
-call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* because the .ibd file is missing. Please refer to .* for how to resolve the issue.");
-call mtr.add_suppression("InnoDB: Page 0 at offset 0 looks corrupted in file .*");
+call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded\\.");
+call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* because the .ibd file is missing. Please refer to .* for how to resolve the issue\\.");
+call mtr.add_suppression("InnoDB: Page 0 at offset 0 looks corrupted in file");
call mtr.add_suppression("InnoDB: Page for tablespace ");
call mtr.add_suppression("InnoDB: Invalid FSP_SPACE_FLAGS=0x");
FLUSH TABLES;
let MYSQLD_DATADIR =`SELECT @@datadir`;
-let $pathfix=/: '.*test_wl5522.*t1.ibd'/: 'test_wl5522_t1.ibd'/;
SET SESSION innodb_strict_mode=1;
-CREATE DATABASE test_wl5522;
-
# Create the table that we will use for crash recovery (during IMPORT)
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-INSERT INTO test_wl5522.t1 VALUES (1), (2), (3), (4);
-
---replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/
+INSERT INTO t1 VALUES (1), (2), (3), (4);
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_backup_tablespaces("test_wl5522", "t1");
+ib_backup_tablespaces("test", "t1");
EOF
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-INSERT INTO test_wl5522.t1 VALUES (1);
+INSERT INTO t1 VALUES (1);
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_discard_tablespaces("test_wl5522", "t1");
+ib_discard_tablespaces("test", "t1");
EOF
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
##### Before commit crash
SET SESSION debug_dbug="+d,ib_import_before_commit_crash";
--error ER_TABLESPACE_DISCARDED
-SELECT * FROM test_wl5522.t1;
+SELECT * FROM t1;
# Write file to make mysql-test-run.pl start up the server again
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Execute the statement that causes the crash
--error 2013
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
--enable_reconnect
--source include/wait_until_connected_again.inc
@@ -89,14 +85,14 @@ ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash";
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Don't start up the server right away.
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
# Execute the statement that causes the crash
--error 2013
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
# After the above test the results are non-deterministic,
# delete the old tablespace files and drop the table,
@@ -104,7 +100,7 @@ ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-- source include/wait_until_disconnected.inc
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
--echo # Restart and reconnect to the server
@@ -118,95 +114,91 @@ EOF
# After the above test the results are non-deterministic, recreate the table
# and do a proper import.
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
SET SESSION innodb_strict_mode=1;
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-CHECK TABLE test_wl5522.t1;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
-INSERT INTO test_wl5522.t1 VALUES(400), (500), (600);
+INSERT INTO t1 VALUES(400), (500), (600);
-SELECT * FROM test_wl5522.t1;
+SELECT * FROM t1;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
# Test handling of internal failure error
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after reset of space id and LSN in the tablespace
SET @saved_debug_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug="+d,ib_import_internal_error";
---replace_regex /'.*t1.cfg'/'t1.cfg'/
-
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
# Test failure after reset of space id and LSN in the tablespace
-CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT) ENGINE = Innodb
ROW_FORMAT=COMPRESSED;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after reset of space id and LSN in the tablespace
SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure";
---replace_regex /'.*t1.cfg'/'t1.cfg'/
-
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug=@saved_debug_dbug;
@@ -214,16 +206,16 @@ SET SESSION debug_dbug=@saved_debug_dbug;
# Test failure after attempting a tablespace open
SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure";
---replace_regex /'.*[\/\\]/'/
+--replace_result \\ /
--error ER_GET_ERRMSG
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after ibuf check
@@ -231,73 +223,65 @@ SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure";
# Need proper mapping of error codes :-(
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after adjusting the cluster index root page
SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure";
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after importing the cluster index
SET SESSION debug_dbug="+d,ib_import_cluster_failure";
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
# Test failure after importing the secondary index(es)
SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure";
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
-DROP TABLE test_wl5522.t1;
-
---disable_query_log
-# Enable metrics for the counters we are going to use
-set global innodb_monitor_enable = purge_stop_count;
-set global innodb_monitor_enable = purge_resume_count;
-set global innodb_monitor_enable = ibuf_merges;
-set global innodb_monitor_enable = ibuf_merges_insert;
---enable_query_log
+DROP TABLE t1;
#
# Create a large table with delete marked records, disable purge during
# the update so that we can test the IMPORT purge code.
#
-CREATE TABLE test_wl5522.t1 (
+CREATE TABLE t1 (
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 BIGINT,
c3 VARCHAR(2048),
@@ -312,77 +296,52 @@ connect (purge_control,localhost,root);
START TRANSACTION WITH CONSISTENT SNAPSHOT;
connection default;
-SET GLOBAL innodb_monitor_reset = ibuf_merges;
-SET GLOBAL innodb_monitor_reset = ibuf_merges_insert;
-
-INSERT INTO test_wl5522.t1(c2, c3, c4) VALUES
- (1, REPEAT('a', 2048), REPEAT('a', 2048)),
- (2, REPEAT('b', 2048), REPEAT('b', 2048)),
- (3, REPEAT('c', 2048), REPEAT('c', 2048)),
- (4, REPEAT('d', 2048), REPEAT('d', 2048));
-
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
+INSERT INTO t1
+SELECT 1 + seq, 1 + (seq MOD 4),
+ REPEAT(SUBSTR('abcd', 1 + (seq MOD 4), 1), 2048),
+ REPEAT(SUBSTR('abcd', 1 + (seq MOD 4), 1), 2048)
+FROM seq_0_to_127;
-DELETE FROM test_wl5522.t1 WHERE c2 = 1;
+DELETE FROM t1 WHERE c2 = 1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c2 = c2 + c1;
-UPDATE test_wl5522.t1 SET c3 = REPEAT("c2", 1024);
-UPDATE test_wl5522.t1 SET c4 = REPEAT("c4", 1024);
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c2 = c2 + c1;
+UPDATE t1 SET c3 = REPEAT("c2", 1024);
+UPDATE t1 SET c4 = REPEAT("c4", 1024);
-SHOW CREATE TABLE test_wl5522.t1;
+SHOW CREATE TABLE t1;
-SELECT c1, c2 FROM test_wl5522.t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
-SELECT SUM(c2) FROM test_wl5522.t1;
-
-SELECT name
- FROM information_schema.innodb_metrics
- WHERE name = 'ibuf_merges_insert' AND count = 0;
-
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+FLUSH TABLES t1 FOR EXPORT;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_backup_tablespaces("test_wl5522", "t1");
+ib_backup_tablespaces("test", "t1");
EOF
UNLOCK TABLES;
-SELECT name
- FROM information_schema.innodb_metrics
- WHERE name = 'ibuf_merges' AND count > 0;
-
-SELECT name
- FROM information_schema.innodb_metrics
- WHERE name = 'ibuf_merges_inserts' AND count > 0;
-
# Enable normal operation
connection purge_control;
COMMIT;
disconnect purge_control;
connection default;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (
+CREATE TABLE t1 (
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 BIGINT,
c3 VARCHAR(2048),
@@ -392,324 +351,286 @@ CREATE TABLE test_wl5522.t1 (
INDEX idx3(c4(512))) Engine=InnoDB
ROW_FORMAT=COMPRESSED;
-SELECT c1, c2 FROM test_wl5522.t1;
+SELECT c1, c2 FROM t1;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
-CHECK TABLE test_wl5522.t1;
+ALTER TABLE t1 IMPORT TABLESPACE;
+CHECK TABLE t1;
-SELECT c1,c2 FROM test_wl5522.t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
-SELECT SUM(c2) FROM test_wl5522.t1;
+SELECT c1,c2 FROM t1;
-SHOW CREATE TABLE test_wl5522.t1;
+SHOW CREATE TABLE t1;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
####
# Create a table and save the tablespace and .cfg file, we need to create
# a Btree that has several levels
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-INSERT IGNORE INTO test_wl5522.t1 VALUES
- (100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200));
-
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
-SELECT COUNT(*) FROM test_wl5522.t1;
-FLUSH TABLES test_wl5522.t1 FOR EXPORT;
+INSERT INTO t1
+SELECT 100, REPEAT('Karanbir', 128), REPEAT('Ajeeth', 1200)
+FROM seq_1_to_256;
+FLUSH TABLES t1 FOR EXPORT;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_backup_tablespaces("test_wl5522", "t1");
+ib_backup_tablespaces("test", "t1");
EOF
UNLOCK TABLES;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1";
---replace_regex /'.*t1.cfg'/'t1.cfg'/
-
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure";
---replace_regex /'.*t1.cfg'/'t1.cfg'/
-
# Following alter is failing
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2";
---replace_regex $pathfix
-
--error ER_INNODB_INDEX_CORRUPT
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3";
---replace_regex /'.*t1.cfg'/'t1.cfg'/
-
--error ER_NOT_KEYFILE
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
SET SESSION debug_dbug="+d,ib_import_create_index_failure_1";
-ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1);
+ALTER TABLE t1 ADD INDEX idx(c1);
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,fil_space_create_failure";
---replace_regex /'.*[\/\\]/'/
+--replace_result \\ /
--error ER_GET_ERRMSG
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure";
---replace_regex /'.*[\/\\]/'/
+--replace_result \\ /
--error ER_GET_ERRMSG
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
#
-CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
+ALTER TABLE t1 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
-SELECT COUNT(*) FROM test_wl5522.t1;
+SELECT COUNT(*) FROM t1;
# Restore files
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_restore_tablespaces("test_wl5522", "t1");
+ib_restore_tablespaces("test", "t1");
EOF
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure";
---replace_regex /'.*t1.cfg'/'t1.cfg'/
-
--error ER_INTERNAL_ERROR
-ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
+ALTER TABLE t1 IMPORT TABLESPACE;
SET SESSION debug_dbug=@saved_debug_dbug;
-DROP TABLE test_wl5522.t1;
+DROP TABLE t1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
-ib_unlink_tablespace("test_wl5522", "t1");
+ib_unlink_tablespace("test", "t1");
EOF
-
-DROP DATABASE test_wl5522;
-
-set global innodb_monitor_disable = all;
-set global innodb_monitor_reset_all = all;
-
--- disable_warnings
-set global innodb_monitor_enable = default;
-set global innodb_monitor_disable = default;
-set global innodb_monitor_reset = default;
-set global innodb_monitor_reset_all = default;
--- enable_warnings
-
--disable_query_log
call mtr.add_suppression("'Resource temporarily unavailable'");
-call mtr.add_suppression("Monitor ibuf_merges is already enabled");
-call mtr.add_suppression("Monitor ibuf_merges_insert is already enabled");
call mtr.add_suppression("Got error -1 when reading table '.*'");
call mtr.add_suppression("InnoDB: Table '.*' tablespace is set as discarded.");
-call mtr.add_suppression("InnoDB: Tablespace '.*' exists in the cache.*");
+call mtr.add_suppression("InnoDB: Tablespace '.*' exists in the cache");
call mtr.add_suppression("InnoDB: Freeing existing tablespace '.*' entry from the cache with id.*");
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded");
-call mtr.add_suppression(".*There was an error writing to the meta data file.*");
+call mtr.add_suppression("There was an error writing to the meta data file");
call mtr.add_suppression("InnoDB: Trying to import a tablespace, but could not open the tablespace file");
call mtr.add_suppression("Unsupported tablespace format");
-call mtr.add_suppression("Error in page .* of index \"GEN_CLUST_INDEX\" of table \"test_wl5522\".\"t1\"");
call mtr.add_suppression("Page is marked as free");
call mtr.add_suppression("t1.ibd: Page .* at offset .* looks corrupted");
call mtr.add_suppression("but tablespace with that id or name does not exist");
-call mtr.add_suppression("Failed to find tablespace for table '\"test_wl5522\".\"t1\"' in the cache");
-call mtr.add_suppression("Could not find a valid tablespace file for 'test_wl5522.*t1'");
+call mtr.add_suppression("Could not find a valid tablespace file for '.*t1'");
call mtr.add_suppression("Index for table 't1' is corrupt; try to repair it");
--enable_query_log
diff --git a/mysql-test/suite/innodb_zip/t/wl5522_zip.test b/mysql-test/suite/innodb_zip/t/wl5522_zip.test
index d92093262ac..d5e6bc6e725 100644
--- a/mysql-test/suite/innodb_zip/t/wl5522_zip.test
+++ b/mysql-test/suite/innodb_zip/t/wl5522_zip.test
@@ -2,8 +2,9 @@
--source include/not_embedded.inc
-- source include/innodb_page_size_small.inc
+-- source include/have_sequence.inc
-call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT.");
+call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT\\.");
SET SESSION innodb_strict_mode=1;
@@ -17,17 +18,14 @@ CREATE TABLE t1
KEY (b))
ENGINE = InnoDB ROW_FORMAT=COMPRESSED ;
-insert into t1 (b, c) values ('Apa', 'Filler........'),
+CREATE TEMPORARY TABLE t (b char(22),c varchar(255));
+INSERT INTO t VALUES
+('Apa', 'Filler........'),
('Banan', 'Filler........'), ('Cavalry', '..asdasdfaeraf'),
('Devotion', 'asdfuihknaskdf'), ('Evolution', 'lsjndofiabsoibeg');
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
-INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a;
+INSERT INTO t1 (b,c) SELECT b,c FROM t,seq_1_to_128;
+DROP TEMPORARY TABLE t;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3;
SELECT * FROM t1 ORDER BY a DESC LIMIT 3;
@@ -89,16 +87,11 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
--list_files $MYSQLD_DATADIR/test
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
ib_backup_tablespaces("test", "t1");
@@ -140,11 +133,7 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
--list_files $MYSQLD_DATADIR/test
FLUSH TABLES t1 FOR EXPORT;
@@ -159,9 +148,6 @@ UNLOCK TABLES;
--list_files $MYSQLD_DATADIR/test
# Move the LSN forward
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-
DROP TABLE t1;
CREATE TABLE t1(
@@ -195,14 +181,9 @@ CREATE TABLE t1(
c2 INT, INDEX(c2)) ENGINE=InnoDB
ROW_FORMAT=COMPRESSED;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1 WHERE c2 = 1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
ib_backup_tablespaces("test", "t1");
@@ -211,9 +192,6 @@ EOF
UNLOCK TABLES;
# Move the LSN forward
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-
DROP TABLE t1;
CREATE TABLE t1(
@@ -250,14 +228,9 @@ eval CREATE TABLE t1(
c2 INT, INDEX idx(c2)) ENGINE=InnoDB
ROW_FORMAT=COMPRESSED $KEY_BLOCK_SIZE;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
FLUSH TABLES t1 FOR EXPORT;
-SELECT COUNT(*) FROM t1 WHERE c2 = 1;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
ib_backup_tablespaces("test", "t1");
@@ -265,9 +238,6 @@ EOF
UNLOCK TABLES;
# Move the LSN forward
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-
DROP TABLE t1;
--replace_result $KEY_BLOCK_SIZE KEY_BLOCK_SIZE=16
@@ -319,14 +289,7 @@ CREATE TABLE t1(
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
c2 INT) ENGINE=InnoDB;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-
-SELECT COUNT(*) FROM t1;
-
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
# This should fail, InnoDB should return a warning
@@ -347,15 +310,9 @@ CREATE TABLE t1(
c2 INT, INDEX idx(c2)) ENGINE=InnoDB
ROW_FORMAT=COMPRESSED;
-INSERT INTO t1(c2) VALUES(1);
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
-INSERT INTO t1(c2) SELECT c2 FROM t1;
+INSERT INTO t1 SELECT seq,1 FROM seq_1_to_16;
SHOW CREATE TABLE t1;
-SELECT * FROM t1;
FLUSH TABLES t1 FOR EXPORT;
@@ -511,7 +468,7 @@ SELECT * FROM t1;
DROP TABLE t1;
call mtr.add_suppression("Got error -1 when reading table '.*'");
-call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'.*");
+call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'");
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded");
# cleanup
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 57ef5d6adb9..b75bae596e8 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -1614,11 +1614,9 @@ longlong Item_func_int_div::val_int()
raise_integer_overflow();
return res;
}
-
- longlong val0=args[0]->val_int();
- longlong val1=args[1]->val_int();
- bool val0_negative, val1_negative, res_negative;
- ulonglong uval0, uval1, res;
+
+ Longlong_hybrid val0= args[0]->to_longlong_hybrid();
+ Longlong_hybrid val1= args[1]->to_longlong_hybrid();
if ((null_value= (args[0]->null_value || args[1]->null_value)))
return 0;
if (val1 == 0)
@@ -1627,12 +1625,8 @@ longlong Item_func_int_div::val_int()
return 0;
}
- val0_negative= !args[0]->unsigned_flag && val0 < 0;
- val1_negative= !args[1]->unsigned_flag && val1 < 0;
- res_negative= val0_negative != val1_negative;
- uval0= (ulonglong) (val0_negative ? -val0 : val0);
- uval1= (ulonglong) (val1_negative ? -val1 : val1);
- res= uval0 / uval1;
+ bool res_negative= val0.neg() != val1.neg();
+ ulonglong res= val0.abs() / val1.abs();
if (res_negative)
{
if (res > (ulonglong) LONGLONG_MAX)
@@ -1657,11 +1651,8 @@ bool Item_func_int_div::fix_length_and_dec()
longlong Item_func_mod::int_op()
{
DBUG_ASSERT(fixed == 1);
- longlong val0= args[0]->val_int();
- longlong val1= args[1]->val_int();
- bool val0_negative, val1_negative;
- ulonglong uval0, uval1;
- ulonglong res;
+ Longlong_hybrid val0= args[0]->to_longlong_hybrid();
+ Longlong_hybrid val1= args[1]->to_longlong_hybrid();
if ((null_value= args[0]->null_value || args[1]->null_value))
return 0; /* purecov: inspected */
@@ -1676,13 +1667,9 @@ longlong Item_func_mod::int_op()
LONGLONG_MIN by -1 generates SIGFPE, we calculate using unsigned values and
then adjust the sign appropriately.
*/
- val0_negative= !args[0]->unsigned_flag && val0 < 0;
- val1_negative= !args[1]->unsigned_flag && val1 < 0;
- uval0= (ulonglong) (val0_negative ? -val0 : val0);
- uval1= (ulonglong) (val1_negative ? -val1 : val1);
- res= uval0 % uval1;
- return check_integer_overflow(val0_negative ? -(longlong) res : res,
- !val0_negative);
+ ulonglong res= val0.abs() % val1.abs();
+ return check_integer_overflow(val0.neg() ? -(longlong) res : res,
+ !val0.neg());
}
double Item_func_mod::real_op()
diff --git a/sql/log.cc b/sql/log.cc
index 3e7f3a043c3..647e5fbd60d 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -10815,7 +10815,6 @@ maria_declare_plugin(binlog)
maria_declare_plugin_end;
#ifdef WITH_WSREP
-#include "wsrep_trans_observer.h"
#include "wsrep_mysqld.h"
IO_CACHE *wsrep_get_trans_cache(THD * thd)
@@ -10838,33 +10837,33 @@ void wsrep_thd_binlog_trx_reset(THD * thd)
/*
todo: fix autocommit select to not call the caller
*/
- if (thd_get_ha_data(thd, binlog_hton) != NULL)
+ binlog_cache_mngr *const cache_mngr=
+ (binlog_cache_mngr*) thd_get_ha_data(thd, binlog_hton);
+ if (cache_mngr)
{
- binlog_cache_mngr *const cache_mngr=
- (binlog_cache_mngr*) thd_get_ha_data(thd, binlog_hton);
- if (cache_mngr)
+ cache_mngr->reset(false, true);
+ if (!cache_mngr->stmt_cache.empty())
{
- cache_mngr->reset(false, true);
- if (!cache_mngr->stmt_cache.empty())
- {
- WSREP_DEBUG("pending events in stmt cache, sql: %s", thd->query());
- cache_mngr->stmt_cache.reset();
- }
+ WSREP_DEBUG("pending events in stmt cache, sql: %s", thd->query());
+ cache_mngr->stmt_cache.reset();
}
}
thd->clear_binlog_table_maps();
DBUG_VOID_RETURN;
}
-
-void thd_binlog_rollback_stmt(THD * thd)
+void wsrep_thd_binlog_stmt_rollback(THD * thd)
{
- WSREP_DEBUG("thd_binlog_rollback_stmt connection: %llu",
- thd->thread_id);
+ DBUG_ENTER("wsrep_thd_binlog_stmt_rollback");
+ WSREP_DEBUG("wsrep_thd_binlog_stmt_rollback");
binlog_cache_mngr *const cache_mngr=
(binlog_cache_mngr*) thd_get_ha_data(thd, binlog_hton);
if (cache_mngr)
- cache_mngr->trx_cache.set_prev_position(MY_OFF_T_UNDEF);
+ {
+ thd->binlog_remove_pending_rows_event(TRUE, TRUE);
+ cache_mngr->stmt_cache.reset();
+ }
+ DBUG_VOID_RETURN;
}
bool wsrep_stmt_rollback_is_safe(THD* thd)
diff --git a/sql/log.h b/sql/log.h
index 41b25af0eaa..1071538fbfd 100644
--- a/sql/log.h
+++ b/sql/log.h
@@ -1223,6 +1223,7 @@ static inline TC_LOG *get_tc_log_implementation()
#ifdef WITH_WSREP
IO_CACHE* wsrep_get_trans_cache(THD *);
void wsrep_thd_binlog_trx_reset(THD * thd);
+void wsrep_thd_binlog_stmt_rollback(THD * thd);
#endif /* WITH_WSREP */
class Gtid_list_log_event;
diff --git a/sql/log_event_client.cc b/sql/log_event_client.cc
index 7cb9c90eec6..faec2a29407 100644
--- a/sql/log_event_client.cc
+++ b/sql/log_event_client.cc
@@ -1,6 +1,6 @@
/*
Copyright (c) 2000, 2018, Oracle and/or its affiliates.
- Copyright (c) 2009, 2019, MariaDB
+ Copyright (c) 2009, 2020, MariaDB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1093,7 +1093,7 @@ void Rows_log_event::change_to_flashback_event(PRINT_EVENT_INFO *print_event_inf
Table_map_log_event *map;
table_def *td;
DYNAMIC_ARRAY rows_arr;
- uchar *swap_buff1, *swap_buff2;
+ uchar *swap_buff1;
uchar *rows_pos= rows_buff + m_rows_before_size;
if (!(map= print_event_info->m_table_map.get_table(m_table_id)) ||
@@ -1142,7 +1142,7 @@ void Rows_log_event::change_to_flashback_event(PRINT_EVENT_INFO *print_event_inf
}
value+= length2;
- swap_buff2= (uchar *) my_malloc(PSI_NOT_INSTRUMENTED, length2, MYF(0));
+ void *swap_buff2= my_malloc(PSI_NOT_INSTRUMENTED, length2, MYF(0));
if (!swap_buff2)
{
fprintf(stderr, "\nError: Out of memory. "
@@ -1150,21 +1150,14 @@ void Rows_log_event::change_to_flashback_event(PRINT_EVENT_INFO *print_event_inf
exit(1);
}
memcpy(swap_buff2, start_pos + length1, length2); // WHERE part
- }
- if (ev_type == UPDATE_ROWS_EVENT ||
- ev_type == UPDATE_ROWS_EVENT_V1)
- {
/* Swap SET and WHERE part */
memcpy(start_pos, swap_buff2, length2);
memcpy(start_pos + length2, swap_buff1, length1);
+ my_free(swap_buff2);
}
- /* Free tmp buffers */
my_free(swap_buff1);
- if (ev_type == UPDATE_ROWS_EVENT ||
- ev_type == UPDATE_ROWS_EVENT_V1)
- my_free(swap_buff2);
/* Copying one row into a buff, and pushing into the array */
LEX_STRING one_row;
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 8f1c11a6518..387482ef6f0 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -7515,9 +7515,9 @@ SHOW_VAR status_vars[]= {
{"Key", (char*) &show_default_keycache, SHOW_FUNC},
{"Last_query_cost", (char*) offsetof(STATUS_VAR, last_query_cost), SHOW_DOUBLE_STATUS},
{"Max_statement_time_exceeded", (char*) offsetof(STATUS_VAR, max_statement_time_exceeded), SHOW_LONG_STATUS},
- {"Master_gtid_wait_count", (char*) offsetof(STATUS_VAR, master_gtid_wait_count), SHOW_LONGLONG_STATUS},
- {"Master_gtid_wait_timeouts", (char*) offsetof(STATUS_VAR, master_gtid_wait_timeouts), SHOW_LONGLONG_STATUS},
- {"Master_gtid_wait_time", (char*) offsetof(STATUS_VAR, master_gtid_wait_time), SHOW_LONGLONG_STATUS},
+ {"Master_gtid_wait_count", (char*) offsetof(STATUS_VAR, master_gtid_wait_count), SHOW_LONG_STATUS},
+ {"Master_gtid_wait_timeouts", (char*) offsetof(STATUS_VAR, master_gtid_wait_timeouts), SHOW_LONG_STATUS},
+ {"Master_gtid_wait_time", (char*) offsetof(STATUS_VAR, master_gtid_wait_time), SHOW_LONG_STATUS},
{"Max_used_connections", (char*) &max_used_connections, SHOW_LONG},
{"Memory_used", (char*) &show_memory_used, SHOW_SIMPLE_FUNC},
{"Memory_used_initial", (char*) &start_memory_used, SHOW_LONGLONG},
diff --git a/sql/rpl_gtid.cc b/sql/rpl_gtid.cc
index bc87441d183..e7ad4c02a19 100644
--- a/sql/rpl_gtid.cc
+++ b/sql/rpl_gtid.cc
@@ -1,4 +1,5 @@
/* Copyright (c) 2013, Kristian Nielsen and MariaDB Services Ab.
+ Copyright (c) 2020, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -2565,7 +2566,8 @@ gtid_waiting::wait_for_pos(THD *thd, String *gtid_str, longlong timeout_us)
/* fall through */
case 0:
status_var_add(thd->status_var.master_gtid_wait_time,
- microsecond_interval_timer() - before);
+ static_cast<ulong>
+ (microsecond_interval_timer() - before));
}
my_free(wait_pos);
return err;
diff --git a/sql/service_wsrep.cc b/sql/service_wsrep.cc
index 8a547710143..013ec65d3f5 100644
--- a/sql/service_wsrep.cc
+++ b/sql/service_wsrep.cc
@@ -167,6 +167,7 @@ extern "C" void wsrep_handle_SR_rollback(THD *bf_thd,
THD *victim_thd)
{
DBUG_ASSERT(victim_thd);
+ DBUG_ASSERT(wsrep_thd_is_SR(victim_thd));
if (!victim_thd || !wsrep_on(bf_thd)) return;
WSREP_DEBUG("handle rollback, for deadlock: thd %llu trx_id %" PRIu64 " frags %zu conf %s",
diff --git a/sql/spatial.cc b/sql/spatial.cc
index e3502dbac1a..301d50f5d1e 100644
--- a/sql/spatial.cc
+++ b/sql/spatial.cc
@@ -50,6 +50,98 @@ double my_double_round(double value, longlong dec, bool dec_unsigned,
#define MAX_DIGITS_IN_DOUBLE MY_GCVT_MAX_FIELD_WIDTH
+int MBR::within(const MBR *mbr)
+{
+ /*
+ We have to take into account the 'dimension' of
+ the MBR, where the dimension of a single point is 0,
+ the dimesion of an vertical or horizontal line is 1,
+ and finally the dimension of the solid rectangle is 2.
+ */
+
+ int dim1= dimension();
+ int dim2= mbr->dimension();
+
+ DBUG_ASSERT(dim1 >= 0 && dim1 <= 2 && dim2 >= 0 && dim2 <= 2);
+
+ /*
+ Either/both of the two operands can degrade to a point or a
+ horizontal/vertical line segment, and we have to treat such cases
+ separately.
+ */
+ switch (dim1)
+ {
+ case 0:
+ DBUG_ASSERT(xmin == xmax && ymin == ymax);
+ switch (dim2)
+ {
+ case 0:
+ DBUG_ASSERT(mbr->xmin == mbr->xmax && mbr->ymin == mbr->ymax);
+ return equals(mbr);
+ break;
+ case 1:
+ DBUG_ASSERT((mbr->xmin == mbr->xmax && mbr->ymin != mbr->ymax) ||
+ (mbr->ymin == mbr->ymax && mbr->xmin != mbr->xmax));
+ return ((xmin > mbr->xmin && xmin < mbr->xmax && ymin == mbr->ymin) ||
+ (ymin > mbr->ymin && ymin < mbr->ymax && xmin == mbr->xmin));
+ break;
+ case 2:
+ DBUG_ASSERT(mbr->xmin != mbr->xmax && mbr->ymin != mbr->ymax);
+ return (xmin > mbr->xmin && xmax < mbr->xmax &&
+ ymin > mbr->ymin && ymax < mbr->ymax);
+ break;
+ }
+ break;
+ case 1:
+ DBUG_ASSERT((xmin == xmax && ymin != ymax) ||
+ (ymin == ymax && xmin != xmax));
+ switch (dim2)
+ {
+ case 0:
+ DBUG_ASSERT(mbr->xmin == mbr->xmax && mbr->ymin == mbr->ymax);
+ return 0;
+ break;
+ case 1:
+ DBUG_ASSERT((mbr->xmin == mbr->xmax && mbr->ymin != mbr->ymax) ||
+ (mbr->ymin == mbr->ymax && mbr->xmin != mbr->xmax));
+ return ((xmin == xmax && mbr->xmin == mbr->xmax && mbr->xmin == xmin &&
+ mbr->ymin <= ymin && mbr->ymax >= ymax) ||
+ (ymin == ymax && mbr->ymin == mbr->ymax && mbr->ymin == ymin &&
+ mbr->xmin <= xmin && mbr->xmax >= xmax));
+ break;
+ case 2:
+ DBUG_ASSERT(mbr->xmin != mbr->xmax && mbr->ymin != mbr->ymax);
+ return ((xmin == xmax && xmin > mbr->xmin && xmax < mbr->xmax &&
+ ymin >= mbr->ymin && ymax <= mbr->ymax) ||
+ (ymin == ymax && ymin > mbr->ymin && ymax < mbr->ymax &&
+ xmin >= mbr->xmin && xmax <= mbr->xmax));
+ break;
+ }
+ break;
+ case 2:
+ DBUG_ASSERT(xmin != xmax && ymin != ymax);
+ switch (dim2)
+ {
+ case 0:
+ case 1:
+ return 0;
+ break;
+ case 2:
+ DBUG_ASSERT(mbr->xmin != mbr->xmax && mbr->ymin != mbr->ymax);
+ return ((mbr->xmin <= xmin) && (mbr->ymin <= ymin) &&
+ (mbr->xmax >= xmax) && (mbr->ymax >= ymax));
+ break;
+
+ }
+ break;
+ }
+
+ // Never reached.
+ DBUG_ASSERT(false);
+ return 0;
+}
+
+
/***************************** Gis_class_info *******************************/
String Geometry::bad_geometry_data("Bad object", &my_charset_bin);
diff --git a/sql/spatial.h b/sql/spatial.h
index 7817fd041cd..0b998e2e55c 100644
--- a/sql/spatial.h
+++ b/sql/spatial.h
@@ -145,12 +145,7 @@ struct MBR
(mbr->xmax >= xmin && mbr->xmax <= xmax)));
}
- int within(const MBR *mbr)
- {
- /* The following should be safe, even if we compare doubles */
- return ((mbr->xmin <= xmin) && (mbr->ymin <= ymin) &&
- (mbr->xmax >= xmax) && (mbr->ymax >= ymax));
- }
+ int within(const MBR *mbr);
int contains(const MBR *mbr)
{
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 86e19b5029a..6d3a18259a0 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -913,9 +913,9 @@ typedef struct system_status_var
ulong feature_window_functions; /* +1 when window functions are used */
/* From MASTER_GTID_WAIT usage */
- ulonglong master_gtid_wait_timeouts; /* Number of timeouts */
- ulonglong master_gtid_wait_time; /* Time in microseconds */
- ulonglong master_gtid_wait_count;
+ ulong master_gtid_wait_timeouts; /* Number of timeouts */
+ ulong master_gtid_wait_time; /* Time in microseconds */
+ ulong master_gtid_wait_count;
ulong empty_queries;
ulong access_denied_errors;
diff --git a/sql/sql_type_geom.cc b/sql/sql_type_geom.cc
index 0dcde0009b0..c177eae2408 100644
--- a/sql/sql_type_geom.cc
+++ b/sql/sql_type_geom.cc
@@ -1,6 +1,5 @@
/*
- Copyright (c) 2015 MariaDB Foundation
- Copyright (c) 2019 MariaDB
+ Copyright (c) 2015, 2020, MariaDB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -862,9 +861,18 @@ int Field_geom::store(const char *from, size_t length, CHARSET_INFO *cs)
if (!tab_name)
tab_name= "";
+ Geometry_buffer buffer;
+ Geometry *geom= NULL;
+ String wkt;
+ const char *dummy;
+ wkt.set_charset(&my_charset_latin1);
+ if (!(geom= Geometry::construct(&buffer, from, uint32(length))) ||
+ geom->as_wkt(&wkt, &dummy))
+ goto err;
+
my_error(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, MYF(0),
Geometry::ci_collection[m_type_handler->geometry_type()]->m_name.str,
- Geometry::ci_collection[wkb_type]->m_name.str,
+ wkt.c_ptr(),
db, tab_name, field_name.str,
(ulong) table->in_use->get_stmt_da()->
current_row_for_warning());
diff --git a/sql/sql_type_int.h b/sql/sql_type_int.h
index 054a861d190..d3e9d0318cf 100644
--- a/sql/sql_type_int.h
+++ b/sql/sql_type_int.h
@@ -109,6 +109,26 @@ public:
*/
return cmp_signed(other);
}
+ bool operator==(const Longlong_hybrid &nr) const
+ {
+ return cmp(nr) == 0;
+ }
+ bool operator==(ulonglong nr) const
+ {
+ return cmp(Longlong_hybrid((longlong) nr, true)) == 0;
+ }
+ bool operator==(uint nr) const
+ {
+ return cmp(Longlong_hybrid((longlong) nr, true)) == 0;
+ }
+ bool operator==(longlong nr) const
+ {
+ return cmp(Longlong_hybrid(nr, false)) == 0;
+ }
+ bool operator==(int nr) const
+ {
+ return cmp(Longlong_hybrid(nr, false)) == 0;
+ }
};
diff --git a/sql/wsrep_binlog.cc b/sql/wsrep_binlog.cc
index f555480d2e0..da899321ba8 100644
--- a/sql/wsrep_binlog.cc
+++ b/sql/wsrep_binlog.cc
@@ -228,40 +228,6 @@ void wsrep_dump_rbr_buf(THD *thd, const void* rbr_buf, size_t buf_len)
free(filename);
}
-/*
- wsrep exploits binlog's caches even if binlogging itself is not
- activated. In such case connection close needs calling
- actual binlog's method.
- Todo: split binlog hton from its caches to use ones by wsrep
- without referring to binlog's stuff.
-*/
-int wsrep_binlog_close_connection(THD* thd)
-{
- DBUG_ENTER("wsrep_binlog_close_connection");
- if (thd_get_ha_data(thd, binlog_hton) != NULL)
- binlog_hton->close_connection (binlog_hton, thd);
- DBUG_RETURN(0);
-}
-
-int wsrep_binlog_savepoint_set(THD *thd, void *sv)
-{
- if (!wsrep_emulate_bin_log) return 0;
- int rcode= binlog_hton->savepoint_set(binlog_hton, thd, sv);
- return rcode;
-}
-
-int wsrep_binlog_savepoint_rollback(THD *thd, void *sv)
-{
- if (!wsrep_emulate_bin_log) return 0;
- int rcode= binlog_hton->savepoint_rollback(binlog_hton, thd, sv);
- return rcode;
-}
-
-void thd_binlog_flush_pending_rows_event(THD *thd, bool stmt_end)
-{
- thd->binlog_flush_pending_rows_event(stmt_end);
-}
-
/* Dump replication buffer along with header to a file. */
void wsrep_dump_rbr_buf_with_header(THD *thd, const void *rbr_buf,
size_t buf_len)
@@ -343,8 +309,6 @@ cleanup1:
DBUG_VOID_RETURN;
}
-#include "log_event.h"
-
int wsrep_write_skip_event(THD* thd)
{
DBUG_ENTER("wsrep_write_skip_event");
diff --git a/sql/wsrep_binlog.h b/sql/wsrep_binlog.h
index 4e29b30baca..252fbe602d2 100644
--- a/sql/wsrep_binlog.h
+++ b/sql/wsrep_binlog.h
@@ -50,8 +50,6 @@ void wsrep_dump_rbr_buf(THD *thd, const void* rbr_buf, size_t buf_len);
void wsrep_dump_rbr_buf_with_header(THD *thd, const void *rbr_buf,
size_t buf_len);
-int wsrep_binlog_close_connection(THD* thd);
-
/**
Write a skip event into binlog.
diff --git a/sql/wsrep_mysqld.h b/sql/wsrep_mysqld.h
index b51dc308646..8ccab45700e 100644
--- a/sql/wsrep_mysqld.h
+++ b/sql/wsrep_mysqld.h
@@ -534,11 +534,6 @@ extern void
wsrep_handle_mdl_conflict(MDL_context *requestor_ctx,
MDL_ticket *ticket,
const MDL_key *key);
-IO_CACHE * get_trans_log(THD * thd);
-bool wsrep_trans_cache_is_empty(THD *thd);
-void thd_binlog_flush_pending_rows_event(THD *thd, bool stmt_end);
-void thd_binlog_rollback_stmt(THD * thd);
-void thd_binlog_trx_reset(THD * thd);
enum wsrep_thread_type {
WSREP_APPLIER_THREAD=1,
diff --git a/sql/wsrep_trans_observer.h b/sql/wsrep_trans_observer.h
index 5f68da684e5..cb58026207b 100644
--- a/sql/wsrep_trans_observer.h
+++ b/sql/wsrep_trans_observer.h
@@ -361,15 +361,22 @@ static inline int wsrep_before_rollback(THD* thd, bool all)
int ret= 0;
if (wsrep_is_active(thd))
{
- if (!all && thd->in_active_multi_stmt_transaction() &&
- thd->wsrep_trx().is_streaming() &&
- !wsrep_stmt_rollback_is_safe(thd))
+ if (!all && thd->in_active_multi_stmt_transaction())
{
- /* Non-safe statement rollback during SR multi statement
- transasction. Self abort the transaction, the actual rollback
- and error handling will be done in after statement phase. */
- wsrep_thd_self_abort(thd);
- ret= 0;
+ if (wsrep_emulate_bin_log)
+ {
+ wsrep_thd_binlog_stmt_rollback(thd);
+ }
+
+ if (thd->wsrep_trx().is_streaming() &&
+ !wsrep_stmt_rollback_is_safe(thd))
+ {
+ /* Non-safe statement rollback during SR multi statement
+ transasction. Self abort the transaction, the actual rollback
+ and error handling will be done in after statement phase. */
+ wsrep_thd_self_abort(thd);
+ ret= 0;
+ }
}
else if (wsrep_is_real(thd, all) &&
thd->wsrep_trx().state() != wsrep::transaction::s_aborted)
diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc
index 7df8815d73f..bb2e2c230c9 100644
--- a/storage/innobase/buf/buf0buf.cc
+++ b/storage/innobase/buf/buf0buf.cc
@@ -2319,7 +2319,7 @@ withdraw_retry:
ut_zalloc_nokey_nofatal(new_chunks_size));
DBUG_EXECUTE_IF("buf_pool_resize_chunk_null",
- { ut_free(new_chunks); new_chunks= nullptr; });
+ ut_free(new_chunks); new_chunks= nullptr; );
if (!new_chunks) {
ib::error() << "failed to allocate"
diff --git a/storage/innobase/buf/buf0rea.cc b/storage/innobase/buf/buf0rea.cc
index 4dceaf8f524..adecbf3cfe1 100644
--- a/storage/innobase/buf/buf0rea.cc
+++ b/storage/innobase/buf/buf0rea.cc
@@ -747,9 +747,12 @@ buf_read_recv_pages(
for (ulint i = 0; i < n_stored; i++) {
const page_id_t cur_page_id(space_id, page_nos[i]);
- for (ulint count = 0, limit = recv_sys.max_blocks() / 2;
- buf_pool.n_pend_reads >= limit; ) {
+ ulint limit = 0;
+ for (ulint j = 0; j < buf_pool.n_chunks; j++) {
+ limit += buf_pool.chunks[j].size / 2;
+ }
+ for (ulint count = 0; buf_pool.n_pend_reads >= limit; ) {
os_thread_sleep(10000);
if (!(++count % 1000)) {
diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc
index d66dd642acb..b907fc3575a 100644
--- a/storage/innobase/dict/dict0dict.cc
+++ b/storage/innobase/dict/dict0dict.cc
@@ -1495,7 +1495,7 @@ dict_table_rename_in_cache(
return(DB_OUT_OF_MEMORY);
}
- fil_delete_tablespace(table->space_id);
+ fil_delete_tablespace(table->space_id, !table->space);
/* Delete any temp file hanging around. */
if (os_file_status(filepath, &exists, &ftype)
diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc
index d7c3fb5cb69..788fd34bd52 100644
--- a/storage/innobase/fil/fil0fil.cc
+++ b/storage/innobase/fil/fil0fil.cc
@@ -2253,14 +2253,9 @@ bool fil_table_accessible(const dict_table_t* table)
/** Delete a tablespace and associated .ibd file.
@param[in] id tablespace identifier
+@param[in] if_exists whether to ignore missing tablespace
@return DB_SUCCESS or error */
-dberr_t
-fil_delete_tablespace(
- ulint id
-#ifdef BTR_CUR_HASH_ADAPT
- , bool drop_ahi /*!< whether to drop the adaptive hash index */
-#endif /* BTR_CUR_HASH_ADAPT */
- )
+dberr_t fil_delete_tablespace(ulint id, bool if_exists)
{
char* path = 0;
fil_space_t* space = 0;
@@ -2271,10 +2266,11 @@ fil_delete_tablespace(
id, FIL_OPERATION_DELETE, &space, &path);
if (err != DB_SUCCESS) {
-
- ib::error() << "Cannot delete tablespace " << id
- << " because it is not found in the tablespace"
- " memory cache.";
+ if (!if_exists) {
+ ib::error() << "Cannot delete tablespace " << id
+ << " because it is not found"
+ " in the tablespace memory cache.";
+ }
return(err);
}
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index 2107153b48e..808f78a9498 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -14881,7 +14881,7 @@ ha_innobase::optimize(
calls to OPTIMIZE, which is undesirable. */
bool try_alter = true;
- if (srv_defragment) {
+ if (!m_prebuilt->table->is_temporary() && srv_defragment) {
int err= defragment_table(
m_prebuilt->table->name.m_name, NULL, false);
diff --git a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h
index 8c1cd2e9a34..5622ffb4f9e 100644
--- a/storage/innobase/include/fil0fil.h
+++ b/storage/innobase/include/fil0fil.h
@@ -1187,14 +1187,9 @@ bool fil_table_accessible(const dict_table_t* table)
/** Delete a tablespace and associated .ibd file.
@param[in] id tablespace identifier
+@param[in] if_exists whether to ignore missing tablespace
@return DB_SUCCESS or error */
-dberr_t
-fil_delete_tablespace(
- ulint id
-#ifdef BTR_CUR_HASH_ADAPT
- , bool drop_ahi = false /*!< whether to drop the adaptive hash index */
-#endif /* BTR_CUR_HASH_ADAPT */
- );
+dberr_t fil_delete_tablespace(ulint id, bool if_exists= false);
/** Prepare to truncate an undo tablespace.
@param[in] space_id undo tablespace id
diff --git a/storage/innobase/include/log0recv.h b/storage/innobase/include/log0recv.h
index dfc3caba656..c8e0f6717f2 100644
--- a/storage/innobase/include/log0recv.h
+++ b/storage/innobase/include/log0recv.h
@@ -307,15 +307,10 @@ private:
void open_log_files_if_needed();
- /** Maximum number of buffer pool blocks to allocate for redo log records */
- ulint max_log_blocks;
-
- /** Base node of the redo block list (up to max_log_blocks)
+ /** Base node of the redo block list.
List elements are linked via buf_block_t::unzip_LRU. */
UT_LIST_BASE_NODE_T(buf_block_t) blocks;
public:
- /** @return the maximum number of buffer pool blocks for log records */
- ulint max_blocks() const { return max_log_blocks; }
/** Check whether the number of read redo log blocks exceeds the maximum.
Store last_stored_lsn if the recovery is not in the last phase.
@param[in,out] store whether to store page operations
diff --git a/storage/innobase/include/row0merge.h b/storage/innobase/include/row0merge.h
index 25ee088f1f7..5a2e63d6d23 100644
--- a/storage/innobase/include/row0merge.h
+++ b/storage/innobase/include/row0merge.h
@@ -203,18 +203,6 @@ row_merge_file_destroy_low(
const pfs_os_file_t& fd); /*!< in: merge file descriptor */
/*********************************************************************//**
-Provide a new pathname for a table that is being renamed if it belongs to
-a file-per-table tablespace. The caller is responsible for freeing the
-memory allocated for the return value.
-@return new pathname of tablespace file, or NULL if space = 0 */
-char*
-row_make_new_pathname(
-/*==================*/
- dict_table_t* table, /*!< in: table to be renamed */
- const char* new_name) /*!< in: new name */
- MY_ATTRIBUTE((nonnull, warn_unused_result));
-
-/*********************************************************************//**
Rename an index in the dictionary that was created. The data
dictionary must have been locked exclusively by the caller, because
the transaction will not be committed.
diff --git a/storage/innobase/lock/lock0lock.cc b/storage/innobase/lock/lock0lock.cc
index 401de967808..d36bd822ab6 100644
--- a/storage/innobase/lock/lock0lock.cc
+++ b/storage/innobase/lock/lock0lock.cc
@@ -6754,7 +6754,7 @@ DeadlockChecker::trx_rollback()
print("*** WE ROLL BACK TRANSACTION (1)\n");
#ifdef WITH_WSREP
- if (wsrep_on(trx->mysql_thd)) {
+ if (wsrep_on(trx->mysql_thd) && wsrep_thd_is_SR(trx->mysql_thd)) {
wsrep_handle_SR_rollback(m_start->mysql_thd, trx->mysql_thd);
}
#endif
@@ -6847,7 +6847,8 @@ DeadlockChecker::check_and_resolve(const lock_t* lock, trx_t* trx)
print("*** WE ROLL BACK TRANSACTION (2)\n");
#ifdef WITH_WSREP
- if (wsrep_on(trx->mysql_thd)) {
+ if (wsrep_on(trx->mysql_thd)
+ && wsrep_thd_is_SR(trx->mysql_thd)) {
wsrep_handle_SR_rollback(trx->mysql_thd,
victim_trx->mysql_thd);
}
diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc
index 098bc987252..93865602c98 100644
--- a/storage/innobase/log/log0recv.cc
+++ b/storage/innobase/log/log0recv.cc
@@ -1008,14 +1008,8 @@ void recv_sys_t::create()
apply_log_recs = false;
apply_batch_on = false;
- if (buf_pool.is_initialised()) {
- max_log_blocks = buf_pool.get_n_pages() / 3;
- } else {
- ut_ad(srv_operation == SRV_OPERATION_BACKUP
- || srv_operation == SRV_OPERATION_RESTORE_DELTA);
- max_log_blocks = 0;
- }
- buf = static_cast<byte*>(ut_malloc_dontdump(RECV_PARSING_BUF_SIZE, PSI_INSTRUMENT_ME));
+ buf = static_cast<byte*>(ut_malloc_dontdump(RECV_PARSING_BUF_SIZE,
+ PSI_INSTRUMENT_ME));
len = 0;
parse_start_lsn = 0;
scanned_lsn = 0;
@@ -2722,7 +2716,8 @@ Store last_stored_lsn if the recovery is not in the last phase.
@return whether the memory is exhausted */
inline bool recv_sys_t::is_memory_exhausted(store_t *store)
{
- if (*store == STORE_NO || UT_LIST_GET_LEN(blocks) < max_log_blocks)
+ if (*store == STORE_NO ||
+ UT_LIST_GET_LEN(blocks) * 3 < buf_pool.get_n_pages())
return false;
if (*store == STORE_YES)
last_stored_lsn= recovered_lsn;
diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc
index b46caac721e..324ee7d40a5 100644
--- a/storage/innobase/os/os0file.cc
+++ b/storage/innobase/os/os0file.cc
@@ -1928,12 +1928,12 @@ os_file_flush_func(
/** Retrieves the last error number if an error occurs in a file io function.
The number should be retrieved before any other OS calls (because they may
overwrite the error number). If the number is not known to this program,
-the OS error number + 100 is returned.
+then OS error number + OS_FILE_ERROR_MAX is returned.
@param[in] report_all_errors true if we want an error message printed
of all errors
@param[in] on_error_silent true then don't print any diagnostic
to the log
-@return error number, or OS error number + 100 */
+@return error number, or OS error number + OS_FILE_ERROR_MAX */
static
ulint
os_file_get_last_error_low(
diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc
index ef9d8ee542c..1c3f52e1b4a 100644
--- a/storage/innobase/row/row0merge.cc
+++ b/storage/innobase/row/row0merge.cc
@@ -4236,22 +4236,6 @@ row_merge_rename_index_to_drop(
return(err);
}
-/*********************************************************************//**
-Provide a new pathname for a table that is being renamed if it belongs to
-a file-per-table tablespace. The caller is responsible for freeing the
-memory allocated for the return value.
-@return new pathname of tablespace file, or NULL if space = 0 */
-char*
-row_make_new_pathname(
-/*==================*/
- dict_table_t* table, /*!< in: table to be renamed */
- const char* new_name) /*!< in: new name */
-{
- ut_ad(!is_system_tablespace(table->space_id));
- return os_file_make_new_pathname(table->space->chain.start->name,
- new_name);
-}
-
/** Create the index and load in to the dictionary.
@param[in,out] table the index is on this table
@param[in] index_def the index definition
diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc
index a9bcd9463a2..48c44d15941 100644
--- a/storage/innobase/row/row0mysql.cc
+++ b/storage/innobase/row/row0mysql.cc
@@ -3735,10 +3735,11 @@ do_drop:
dict_table_t. */
if (DICT_TF_HAS_DATA_DIR(table->flags)) {
dict_get_and_save_data_dir_path(table, true);
- ut_a(table->data_dir_path);
+ ut_ad(table->data_dir_path || !space);
filepath = space ? NULL : fil_make_filepath(
table->data_dir_path,
- table->name.m_name, IBD, true);
+ table->name.m_name, IBD,
+ table->data_dir_path != NULL);
} else {
filepath = space ? NULL : fil_make_filepath(
NULL, table->name.m_name, IBD, false);
@@ -4316,14 +4317,14 @@ row_rename_table_for_mysql(
/* SYS_TABLESPACES and SYS_DATAFILES need to be updated if
the table is in a single-table tablespace. */
- if (err == DB_SUCCESS
- && dict_table_is_file_per_table(table)) {
- /* Make a new pathname to update SYS_DATAFILES. */
+ if (err != DB_SUCCESS || !dict_table_is_file_per_table(table)) {
+ } else if (table->space) {
/* If old path and new path are the same means tablename
has not changed and only the database name holding the table
has changed so we need to make the complete filepath again. */
char* new_path = dict_tables_have_same_db(old_name, new_name)
- ? row_make_new_pathname(table, new_name)
+ ? os_file_make_new_pathname(
+ table->space->chain.start->name, new_name)
: fil_make_filepath(NULL, new_name, IBD, false);
info = pars_info_create();
diff --git a/storage/innobase/trx/trx0roll.cc b/storage/innobase/trx/trx0roll.cc
index 38e98324f7e..e55bf5ebc4b 100644
--- a/storage/innobase/trx/trx0roll.cc
+++ b/storage/innobase/trx/trx0roll.cc
@@ -182,7 +182,8 @@ trx_rollback_to_savepoint(
complete rollback */
{
#ifdef WITH_WSREP
- if (savept == NULL && wsrep_on(trx->mysql_thd)) {
+ if (savept == NULL && wsrep_on(trx->mysql_thd)
+ && wsrep_thd_is_SR(trx->mysql_thd)) {
wsrep_handle_SR_rollback(NULL, trx->mysql_thd);
}
#endif /* WITH_WSREP */
diff --git a/storage/maria/ma_loghandler.c b/storage/maria/ma_loghandler.c
index 6b861e6b657..be44a82d0d6 100644
--- a/storage/maria/ma_loghandler.c
+++ b/storage/maria/ma_loghandler.c
@@ -1,4 +1,5 @@
/* Copyright (C) 2007 MySQL AB & Sanja Belkin. 2010 Monty Program Ab.
+ Copyright (c) 2020, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -5446,15 +5447,15 @@ static uchar *translog_get_LSN_from_diff(LSN base_lsn, uchar *src, uchar *dst)
src + 1 + LSN_STORE_SIZE));
DBUG_RETURN(src + 1 + LSN_STORE_SIZE);
}
- rec_offset= LSN_OFFSET(base_lsn) - ((first_byte << 8) + *((uint8*)src));
+ rec_offset= LSN_OFFSET(base_lsn) - ((first_byte << 8) | *((uint8*)src));
break;
case 1:
diff= uint2korr(src);
- rec_offset= LSN_OFFSET(base_lsn) - ((first_byte << 16) + diff);
+ rec_offset= LSN_OFFSET(base_lsn) - ((first_byte << 16) | diff);
break;
case 2:
diff= uint3korr(src);
- rec_offset= LSN_OFFSET(base_lsn) - ((first_byte << 24) + diff);
+ rec_offset= LSN_OFFSET(base_lsn) - ((first_byte << 24) | diff);
break;
case 3:
{
diff --git a/storage/maria/ma_packrec.c b/storage/maria/ma_packrec.c
index b2cf7fb697a..dd4ac28bbac 100644
--- a/storage/maria/ma_packrec.c
+++ b/storage/maria/ma_packrec.c
@@ -1,4 +1,5 @@
/* Copyright (C) 2006 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+ Copyright (c) 2020, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1157,10 +1158,10 @@ static void decode_bytes(MARIA_COLUMNDEF *rec,MARIA_BIT_BUFF *bit_buff,
bit_buff->error=1;
return; /* Can't be right */
}
- bit_buff->current_byte= (bit_buff->current_byte << 32) +
- ((((uint) bit_buff->pos[3])) +
- (((uint) bit_buff->pos[2]) << 8) +
- (((uint) bit_buff->pos[1]) << 16) +
+ bit_buff->current_byte= (bit_buff->current_byte << 32) |
+ ((((uint) bit_buff->pos[3])) |
+ (((uint) bit_buff->pos[2]) << 8) |
+ (((uint) bit_buff->pos[1]) << 16) |
(((uint) bit_buff->pos[0]) << 24));
bit_buff->pos+=4;
bits+=32;
@@ -1251,23 +1252,23 @@ static void decode_bytes(MARIA_COLUMNDEF *rec, MARIA_BIT_BUFF *bit_buff,
return; /* Can't be right */
}
#if BITS_SAVED == 32
- bit_buff->current_byte= (bit_buff->current_byte << 24) +
- (((uint) ((uchar) bit_buff->pos[2]))) +
- (((uint) ((uchar) bit_buff->pos[1])) << 8) +
+ bit_buff->current_byte= (bit_buff->current_byte << 24) |
+ (((uint) ((uchar) bit_buff->pos[2]))) |
+ (((uint) ((uchar) bit_buff->pos[1])) << 8) |
(((uint) ((uchar) bit_buff->pos[0])) << 16);
bit_buff->pos+=3;
bits+=24;
#else
if (bits) /* We must have at leasts 9 bits */
{
- bit_buff->current_byte= (bit_buff->current_byte << 8) +
+ bit_buff->current_byte= (bit_buff->current_byte << 8) |
(uint) ((uchar) bit_buff->pos[0]);
bit_buff->pos++;
bits+=8;
}
else
{
- bit_buff->current_byte= ((uint) ((uchar) bit_buff->pos[0]) << 8) +
+ bit_buff->current_byte= ((uint) ((uchar) bit_buff->pos[0]) << 8) |
((uint) ((uchar) bit_buff->pos[1]));
bit_buff->pos+=2;
bits+=16;
@@ -1291,14 +1292,14 @@ static void decode_bytes(MARIA_COLUMNDEF *rec, MARIA_BIT_BUFF *bit_buff,
if (bits < 8)
{ /* We don't need to check end */
#if BITS_SAVED == 32
- bit_buff->current_byte= (bit_buff->current_byte << 24) +
- (((uint) ((uchar) bit_buff->pos[2]))) +
- (((uint) ((uchar) bit_buff->pos[1])) << 8) +
+ bit_buff->current_byte= (bit_buff->current_byte << 24) |
+ (((uint) ((uchar) bit_buff->pos[2]))) |
+ (((uint) ((uchar) bit_buff->pos[1])) << 8) |
(((uint) ((uchar) bit_buff->pos[0])) << 16);
bit_buff->pos+=3;
bits+=24;
#else
- bit_buff->current_byte= (bit_buff->current_byte << 8) +
+ bit_buff->current_byte= (bit_buff->current_byte << 8) |
(uint) ((uchar) bit_buff->pos[0]);
bit_buff->pos+=1;
bits+=8;
@@ -1488,25 +1489,25 @@ static void fill_buffer(MARIA_BIT_BUFF *bit_buff)
return;
}
#if BITS_SAVED == 64
- bit_buff->current_byte= ((((uint) ((uchar) bit_buff->pos[7]))) +
- (((uint) ((uchar) bit_buff->pos[6])) << 8) +
- (((uint) ((uchar) bit_buff->pos[5])) << 16) +
- (((uint) ((uchar) bit_buff->pos[4])) << 24) +
+ bit_buff->current_byte= ((((uint) ((uchar) bit_buff->pos[7]))) |
+ (((uint) ((uchar) bit_buff->pos[6])) << 8) |
+ (((uint) ((uchar) bit_buff->pos[5])) << 16) |
+ (((uint) ((uchar) bit_buff->pos[4])) << 24) |
((ulonglong)
- ((((uint) ((uchar) bit_buff->pos[3]))) +
- (((uint) ((uchar) bit_buff->pos[2])) << 8) +
- (((uint) ((uchar) bit_buff->pos[1])) << 16) +
+ ((((uint) ((uchar) bit_buff->pos[3]))) |
+ (((uint) ((uchar) bit_buff->pos[2])) << 8) |
+ (((uint) ((uchar) bit_buff->pos[1])) << 16) |
(((uint) ((uchar) bit_buff->pos[0])) << 24)) << 32));
bit_buff->pos+=8;
#else
#if BITS_SAVED == 32
- bit_buff->current_byte= (((uint) ((uchar) bit_buff->pos[3])) +
- (((uint) ((uchar) bit_buff->pos[2])) << 8) +
- (((uint) ((uchar) bit_buff->pos[1])) << 16) +
+ bit_buff->current_byte= (((uint) ((uchar) bit_buff->pos[3])) |
+ (((uint) ((uchar) bit_buff->pos[2])) << 8) |
+ (((uint) ((uchar) bit_buff->pos[1])) << 16) |
(((uint) ((uchar) bit_buff->pos[0])) << 24));
bit_buff->pos+=4;
#else
- bit_buff->current_byte= (uint) (((uint) ((uchar) bit_buff->pos[1]))+
+ bit_buff->current_byte= (uint) (((uint) ((uchar) bit_buff->pos[1])) |
(((uint) ((uchar) bit_buff->pos[0])) << 8));
bit_buff->pos+=2;
#endif
diff --git a/storage/myisam/mi_packrec.c b/storage/myisam/mi_packrec.c
index 637b1e69bfd..d5bfdac3008 100644
--- a/storage/myisam/mi_packrec.c
+++ b/storage/myisam/mi_packrec.c
@@ -1,4 +1,5 @@
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2020, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1113,10 +1114,10 @@ static void decode_bytes(MI_COLUMNDEF *rec,MI_BIT_BUFF *bit_buff,uchar *to,
bit_buff->error=1;
return; /* Can't be right */
}
- bit_buff->current_byte= (bit_buff->current_byte << 32) +
- ((((uint) bit_buff->pos[3])) +
- (((uint) bit_buff->pos[2]) << 8) +
- (((uint) bit_buff->pos[1]) << 16) +
+ bit_buff->current_byte= (bit_buff->current_byte << 32) |
+ ((((uint) bit_buff->pos[3])) |
+ (((uint) bit_buff->pos[2]) << 8) |
+ (((uint) bit_buff->pos[1]) << 16) |
(((uint) bit_buff->pos[0]) << 24));
bit_buff->pos+=4;
bits+=32;
@@ -1207,23 +1208,23 @@ static void decode_bytes(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff, uchar *to,
return; /* Can't be right */
}
#if BITS_SAVED == 32
- bit_buff->current_byte= (bit_buff->current_byte << 24) +
- (((uint) ((uchar) bit_buff->pos[2]))) +
- (((uint) ((uchar) bit_buff->pos[1])) << 8) +
+ bit_buff->current_byte= (bit_buff->current_byte << 24) |
+ (((uint) ((uchar) bit_buff->pos[2]))) |
+ (((uint) ((uchar) bit_buff->pos[1])) << 8) |
(((uint) ((uchar) bit_buff->pos[0])) << 16);
bit_buff->pos+=3;
bits+=24;
#else
if (bits) /* We must have at leasts 9 bits */
{
- bit_buff->current_byte= (bit_buff->current_byte << 8) +
+ bit_buff->current_byte= (bit_buff->current_byte << 8) |
(uint) ((uchar) bit_buff->pos[0]);
bit_buff->pos++;
bits+=8;
}
else
{
- bit_buff->current_byte= ((uint) ((uchar) bit_buff->pos[0]) << 8) +
+ bit_buff->current_byte= ((uint) ((uchar) bit_buff->pos[0]) << 8) |
((uint) ((uchar) bit_buff->pos[1]));
bit_buff->pos+=2;
bits+=16;
@@ -1247,14 +1248,14 @@ static void decode_bytes(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff, uchar *to,
if (bits < 8)
{ /* We don't need to check end */
#if BITS_SAVED == 32
- bit_buff->current_byte= (bit_buff->current_byte << 24) +
- (((uint) ((uchar) bit_buff->pos[2]))) +
- (((uint) ((uchar) bit_buff->pos[1])) << 8) +
+ bit_buff->current_byte= (bit_buff->current_byte << 24) |
+ (((uint) ((uchar) bit_buff->pos[2]))) |
+ (((uint) ((uchar) bit_buff->pos[1])) << 8) |
(((uint) ((uchar) bit_buff->pos[0])) << 16);
bit_buff->pos+=3;
bits+=24;
#else
- bit_buff->current_byte= (bit_buff->current_byte << 8) +
+ bit_buff->current_byte= (bit_buff->current_byte << 8) |
(uint) ((uchar) bit_buff->pos[0]);
bit_buff->pos+=1;
bits+=8;
@@ -1441,25 +1442,25 @@ static void fill_buffer(MI_BIT_BUFF *bit_buff)
}
#if BITS_SAVED == 64
- bit_buff->current_byte= ((((uint) ((uchar) bit_buff->pos[7]))) +
- (((uint) ((uchar) bit_buff->pos[6])) << 8) +
- (((uint) ((uchar) bit_buff->pos[5])) << 16) +
- (((uint) ((uchar) bit_buff->pos[4])) << 24) +
+ bit_buff->current_byte= ((((uint) ((uchar) bit_buff->pos[7]))) |
+ (((uint) ((uchar) bit_buff->pos[6])) << 8) |
+ (((uint) ((uchar) bit_buff->pos[5])) << 16) |
+ (((uint) ((uchar) bit_buff->pos[4])) << 24) |
((ulonglong)
- ((((uint) ((uchar) bit_buff->pos[3]))) +
- (((uint) ((uchar) bit_buff->pos[2])) << 8) +
- (((uint) ((uchar) bit_buff->pos[1])) << 16) +
+ ((((uint) ((uchar) bit_buff->pos[3]))) |
+ (((uint) ((uchar) bit_buff->pos[2])) << 8) |
+ (((uint) ((uchar) bit_buff->pos[1])) << 16) |
(((uint) ((uchar) bit_buff->pos[0])) << 24)) << 32));
bit_buff->pos+=8;
#else
#if BITS_SAVED == 32
- bit_buff->current_byte= (((uint) ((uchar) bit_buff->pos[3])) +
- (((uint) ((uchar) bit_buff->pos[2])) << 8) +
- (((uint) ((uchar) bit_buff->pos[1])) << 16) +
+ bit_buff->current_byte= (((uint) ((uchar) bit_buff->pos[3])) |
+ (((uint) ((uchar) bit_buff->pos[2])) << 8) |
+ (((uint) ((uchar) bit_buff->pos[1])) << 16) |
(((uint) ((uchar) bit_buff->pos[0])) << 24));
bit_buff->pos+=4;
#else
- bit_buff->current_byte= (uint) (((uint) ((uchar) bit_buff->pos[1]))+
+ bit_buff->current_byte= (uint) (((uint) ((uchar) bit_buff->pos[1])) |
(((uint) ((uchar) bit_buff->pos[0])) << 8));
bit_buff->pos+=2;
#endif