summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-10-11 15:18:49 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2022-10-11 15:18:49 +0300
commit7434eb566e2cb832d7798196d50629dcaa1d7f79 (patch)
tree1c3c4a81c763d385e1bfea2ab5cfe6ea619c86b3
parent3f5b03c415662135257a4ae9bc525fd72a795872 (diff)
parente8101a4d033a59237d542f4bd0ae0b5323058e26 (diff)
downloadmariadb-git-7434eb566e2cb832d7798196d50629dcaa1d7f79.tar.gz
Merge 10.3 into 10.4
-rw-r--r--client/mysqlbinlog.cc2
-rw-r--r--config.h.cmake7
-rw-r--r--mysql-test/suite/innodb/r/innodb-64k.result4
-rw-r--r--mysql-test/suite/innodb/t/innodb-64k.test5
-rw-r--r--mysql-test/suite/innodb_fts/r/misc_debug.result3
-rw-r--r--mysql-test/suite/innodb_fts/r/misc_debug2.result5
-rw-r--r--mysql-test/suite/innodb_fts/t/misc_debug.test3
-rw-r--r--mysql-test/suite/innodb_fts/t/misc_debug2.test5
-rw-r--r--sql/CMakeLists.txt11
-rw-r--r--storage/innobase/CMakeLists.txt5
-rw-r--r--storage/innobase/btr/btr0bulk.cc7
11 files changed, 38 insertions, 19 deletions
diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc
index a7421024f92..79f567d4186 100644
--- a/client/mysqlbinlog.cc
+++ b/client/mysqlbinlog.cc
@@ -1781,7 +1781,7 @@ that may lead to an endless loop.",
&opt_binlog_rows_event_max_encoded_size, 0,
GET_ULONG, REQUIRED_ARG, UINT_MAX/4, 256, ULONG_MAX, 0, 256, 0},
#endif
- {"verify-binlog-checksum", 'c', "Verify checksum binlog events.",
+ {"verify-binlog-checksum", 'c', "Verify binlog event checksums.",
(uchar**) &opt_verify_binlog_checksum, (uchar**) &opt_verify_binlog_checksum,
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"rewrite-db", OPT_REWRITE_DB,
diff --git a/config.h.cmake b/config.h.cmake
index e7754337b1f..da2fc539bab 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -258,9 +258,6 @@
#cmakedefine STRUCT_TIMESPEC_HAS_TV_SEC 1
#cmakedefine STRUCT_TIMESPEC_HAS_TV_NSEC 1
-#define USE_MB 1
-#define USE_MB_IDENT 1
-
/* this means that valgrind headers and macros are available */
#cmakedefine HAVE_VALGRIND_MEMCHECK_H 1
@@ -459,8 +456,8 @@
#cmakedefine MYSQL_DEFAULT_CHARSET_NAME "@MYSQL_DEFAULT_CHARSET_NAME@"
#cmakedefine MYSQL_DEFAULT_COLLATION_NAME "@MYSQL_DEFAULT_COLLATION_NAME@"
-#cmakedefine USE_MB 1
-#cmakedefine USE_MB_IDENT 1
+#cmakedefine USE_MB
+#cmakedefine USE_MB_IDENT
/* This should mean case insensitive file system */
#cmakedefine FN_NO_CASE_SENSE 1
diff --git a/mysql-test/suite/innodb/r/innodb-64k.result b/mysql-test/suite/innodb/r/innodb-64k.result
index 310203282d3..758179568b9 100644
--- a/mysql-test/suite/innodb/r/innodb-64k.result
+++ b/mysql-test/suite/innodb/r/innodb-64k.result
@@ -1082,9 +1082,11 @@ COMMIT;
drop table t2;
DROP TABLE t1;
#
-# MDEV-19526 heap number overflow
+# MDEV-19526/MDEV-29742 heap number overflow
#
CREATE TABLE t1(a SMALLINT NOT NULL UNIQUE AUTO_INCREMENT, KEY(a))
ENGINE=InnoDB;
INSERT INTO t1 (a) SELECT seq FROM seq_1_to_8191;
+ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
DROP TABLE t1;
+# End of 10.3 tests
diff --git a/mysql-test/suite/innodb/t/innodb-64k.test b/mysql-test/suite/innodb/t/innodb-64k.test
index 62d7b929ba1..972ba6bb8b8 100644
--- a/mysql-test/suite/innodb/t/innodb-64k.test
+++ b/mysql-test/suite/innodb/t/innodb-64k.test
@@ -641,9 +641,12 @@ drop table t2;
DROP TABLE t1;
--echo #
---echo # MDEV-19526 heap number overflow
+--echo # MDEV-19526/MDEV-29742 heap number overflow
--echo #
CREATE TABLE t1(a SMALLINT NOT NULL UNIQUE AUTO_INCREMENT, KEY(a))
ENGINE=InnoDB;
INSERT INTO t1 (a) SELECT seq FROM seq_1_to_8191;
+ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
DROP TABLE t1;
+
+--echo # End of 10.3 tests
diff --git a/mysql-test/suite/innodb_fts/r/misc_debug.result b/mysql-test/suite/innodb_fts/r/misc_debug.result
index e252d7f6b11..022c389a47e 100644
--- a/mysql-test/suite/innodb_fts/r/misc_debug.result
+++ b/mysql-test/suite/innodb_fts/r/misc_debug.result
@@ -56,9 +56,8 @@ DROP TABLE t1;
# MDEV-25663 Double free of transaction during TRUNCATE
#
call mtr.add_suppression("InnoDB: \\(Too many concurrent transactions\\)");
-SET DEBUG_DBUG='-d,ib_create_table_fail_too_many_trx';
-CREATE TABLE t1 (b CHAR(12), FULLTEXT KEY(b)) engine=InnoDB;
SET @save_dbug= @@debug_dbug;
+CREATE TABLE t1 (b CHAR(12), FULLTEXT KEY(b)) engine=InnoDB;
SET debug_dbug='+d,ib_create_table_fail_too_many_trx';
TRUNCATE t1;
ERROR HY000: Got error -1 "Internal error < 0 (Not system error)" from storage engine InnoDB
diff --git a/mysql-test/suite/innodb_fts/r/misc_debug2.result b/mysql-test/suite/innodb_fts/r/misc_debug2.result
index f1ebef6175f..9e22f5680c0 100644
--- a/mysql-test/suite/innodb_fts/r/misc_debug2.result
+++ b/mysql-test/suite/innodb_fts/r/misc_debug2.result
@@ -11,12 +11,13 @@ DROP TABLE mdev21563;
#
CREATE TABLE t1(f1 CHAR(100), FULLTEXT idx(f1))ENGINE=InnoDB;
INSERT INTO t1 VALUES('mysql'), ('innodb');
+SET @save_dbug=@@debug_dbug;
set debug_dbug="+d,fts_instrument_sync_debug";
INSERT INTO t1 VALUES('test');
-set debug_dbug="-d,fts_instrument_sync_debug";
+set debug_dbug=@save_dbug;
INSERT INTO t1 VALUES('This is a fts issue');
# restart
set debug_dbug="+d,fts_instrument_sync_debug";
UPDATE t1 SET f1="mariadb";
-set debug_dbug="-d,fts_instrument_sync_debug";
+set debug_dbug=@save_dbug;
DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_fts/t/misc_debug.test b/mysql-test/suite/innodb_fts/t/misc_debug.test
index 4a0edf4ef88..eec841b22ec 100644
--- a/mysql-test/suite/innodb_fts/t/misc_debug.test
+++ b/mysql-test/suite/innodb_fts/t/misc_debug.test
@@ -85,10 +85,9 @@ DROP TABLE t1;
--echo # MDEV-25663 Double free of transaction during TRUNCATE
--echo #
call mtr.add_suppression("InnoDB: \\(Too many concurrent transactions\\)");
-SET DEBUG_DBUG='-d,ib_create_table_fail_too_many_trx';
+SET @save_dbug= @@debug_dbug;
CREATE TABLE t1 (b CHAR(12), FULLTEXT KEY(b)) engine=InnoDB;
-SET @save_dbug= @@debug_dbug;
SET debug_dbug='+d,ib_create_table_fail_too_many_trx';
--error ER_GET_ERRNO
TRUNCATE t1;
diff --git a/mysql-test/suite/innodb_fts/t/misc_debug2.test b/mysql-test/suite/innodb_fts/t/misc_debug2.test
index 1ba77f2481e..815be816afd 100644
--- a/mysql-test/suite/innodb_fts/t/misc_debug2.test
+++ b/mysql-test/suite/innodb_fts/t/misc_debug2.test
@@ -16,12 +16,13 @@ DROP TABLE mdev21563;
--echo #
CREATE TABLE t1(f1 CHAR(100), FULLTEXT idx(f1))ENGINE=InnoDB;
INSERT INTO t1 VALUES('mysql'), ('innodb');
+SET @save_dbug=@@debug_dbug;
set debug_dbug="+d,fts_instrument_sync_debug";
INSERT INTO t1 VALUES('test');
-set debug_dbug="-d,fts_instrument_sync_debug";
+set debug_dbug=@save_dbug;
INSERT INTO t1 VALUES('This is a fts issue');
--source include/restart_mysqld.inc
set debug_dbug="+d,fts_instrument_sync_debug";
UPDATE t1 SET f1="mariadb";
-set debug_dbug="-d,fts_instrument_sync_debug";
+set debug_dbug=@save_dbug;
DROP TABLE t1;
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index e42f1a164df..e7c87698451 100644
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -1,5 +1,5 @@
# Copyright (c) 2006, 2014, Oracle and/or its affiliates.
-# Copyright (c) 2010, 2018, MariaDB Corporation
+# Copyright (c) 2010, 2022, 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
@@ -152,7 +152,14 @@ SET (SQL_SOURCE
${GEN_SOURCES}
${MYSYS_LIBWRAP_SOURCE}
)
-
+
+IF(CMAKE_C_COMPILER_ID MATCHES "Clang" AND
+ NOT CMAKE_C_COMPILER_VERSION VERSION_LESS "13.0.0")
+ ADD_COMPILE_FLAGS(${CMAKE_CURRENT_BINARY_DIR}/sql_yacc.cc
+ ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.cc
+ COMPILE_FLAGS "-Wno-unused-but-set-variable")
+ENDIF()
+
IF ((CMAKE_SYSTEM_NAME MATCHES "Linux" OR
CMAKE_SYSTEM_NAME MATCHES "SunOS" OR
WIN32 OR
diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt
index ab7d00e71a8..6083d77748a 100644
--- a/storage/innobase/CMakeLists.txt
+++ b/storage/innobase/CMakeLists.txt
@@ -364,6 +364,11 @@ IF(MSVC)
# on generated file.
TARGET_COMPILE_OPTIONS(innobase PRIVATE "/wd4065")
ENDIF()
+IF(CMAKE_C_COMPILER_ID MATCHES "Clang" AND
+ NOT CMAKE_C_COMPILER_VERSION VERSION_LESS "13.0.0")
+ ADD_COMPILE_FLAGS(pars/pars0grm.cc fts/fts0pars.cc
+ COMPILE_FLAGS "-Wno-unused-but-set-variable")
+ENDIF()
IF(NOT (PLUGIN_INNOBASE STREQUAL DYNAMIC))
ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/extra/mariabackup ${CMAKE_BINARY_DIR}/extra/mariabackup)
diff --git a/storage/innobase/btr/btr0bulk.cc b/storage/innobase/btr/btr0bulk.cc
index 5e0df4597f9..4d87828697f 100644
--- a/storage/innobase/btr/btr0bulk.cc
+++ b/storage/innobase/btr/btr0bulk.cc
@@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 2014, 2019, Oracle and/or its affiliates. All Rights Reserved.
-Copyright (c) 2017, 2021, MariaDB Corporation.
+Copyright (c) 2017, 2022, 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 the Free Software
@@ -597,6 +597,11 @@ bool
PageBulk::isSpaceAvailable(
ulint rec_size)
{
+ if (m_rec_no >= 8190) {
+ ut_ad(srv_page_size == 65536);
+ return false;
+ }
+
ulint slot_size;
ulint required_space;