Skip to content

Commit 3170875

Browse files
committed
Merge branch '11.8' into '12.3'
2 parents 61d784c + 867d16c commit 3170875

60 files changed

Lines changed: 950 additions & 864 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CODING_STANDARDS.md

Lines changed: 111 additions & 312 deletions
Large diffs are not rendered by default.

cmake/mariadb_connector_c.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ SET(CLIENT_PLUGIN_PVIO_SHMEM STATIC)
4545
SET(CLIENT_PLUGIN_PVIO_SOCKET STATIC)
4646

4747
MESSAGE("== Configuring MariaDB Connector/C")
48-
ADD_SUBDIRECTORY(libmariadb)
48+
ADD_SUBMODULE_SUBDIRECTORY(libmariadb)
4949

5050
IF(MSVC AND TARGET mariadb_obj AND TARGET mariadbclient)
5151
# With MSVC, do not produce LTCG-compiled static client libraries.

cmake/ssl.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ MACRO (MYSQL_USE_BUNDLED_SSL)
5757
SET(HAVE_evp_pkey ON CACHE INTERNAL "wolfssl does support EVP_PKEY API")
5858
SET(HAVE_hkdf ON CACHE INTERNAL "wolfssl does support EVP_PKEY_HKDF API")
5959
CHANGE_SSL_SETTINGS("bundled")
60+
ADD_SUBMODULE(extra/wolfssl/wolfssl)
6061
ADD_SUBDIRECTORY(extra/wolfssl)
6162
MESSAGE_ONCE(SSL_LIBRARIES "SSL_LIBRARIES = ${SSL_LIBRARIES}")
6263
ENDMACRO()

cmake/submodules.cmake

Lines changed: 39 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,54 @@
1-
# update submodules automatically
2-
31
OPTION(UPDATE_SUBMODULES "Update submodules automatically" ON)
4-
IF(NOT UPDATE_SUBMODULES)
5-
RETURN()
6-
ENDIF()
72

8-
IF(GIT_EXECUTABLE AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
3+
IF(NOT UPDATE_SUBMODULES)
4+
SET(SUBMODULE_UPDATE_CONFIG_MESSAGE "Disabled by -DUPDATE_SUBMODULES=OFF")
5+
ELSEIF(NOT GIT_EXECUTABLE)
6+
SET(SUBMODULE_UPDATE_CONFIG_MESSAGE "git executable was not found")
7+
ELSEIF(NOT EXISTS "${CMAKE_SOURCE_DIR}/.git")
8+
SET(SUBMODULE_UPDATE_CONFIG_MESSAGE "Not inside a git repository")
9+
ELSE()
910
EXECUTE_PROCESS(COMMAND "${GIT_EXECUTABLE}" config --get cmake.update-submodules
1011
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
11-
OUTPUT_VARIABLE cmake_update_submodules
12+
OUTPUT_VARIABLE CMAKE_UPDATE_SUBMODULES
1213
RESULT_VARIABLE git_config_get_result)
13-
IF(cmake_update_submodules MATCHES no)
14+
IF(CMAKE_UPDATE_SUBMODULES MATCHES no)
1415
SET(update_result 0)
15-
SET(SUBMODULE_UPDATE_CONFIG_MESSAGE
16-
"\n\nTo update submodules automatically, set cmake.update-submodules to 'yes', or 'force' to update automatically:
17-
${GIT_EXECUTABLE} config cmake.update-submodules yes")
16+
SET(SUBMODULE_UPDATE_CONFIG_MESSAGE "Disabled by git config. To enable set cmake.update-submodules to 'yes', or 'force': ${GIT_EXECUTABLE} config cmake.update-submodules yes")
1817
ELSEIF(git_config_get_result EQUAL 128)
19-
SET(update_result 0)
18+
SET(SUBMODULE_UPDATE_CONFIG_MESSAGE "Git executable ${GIT_EXECUTABLE} failed to run")
19+
ENDIF()
20+
ENDIF()
21+
22+
FUNCTION(ADD_SUBMODULE dir)
23+
IF (ARGV1)
24+
SET(file "${ARGV1}")
2025
ELSE()
21-
SET(UPDATE_SUBMODULES_COMMAND
22-
"${GIT_EXECUTABLE}" submodule update --init --recursive)
23-
# Old Git may not work with "--depth 1".
24-
# See also: https://github.com/git/git/commit/fb43e31f2b43076e7a30c9cd00d0241cb8cf97eb
25-
IF(NOT GIT_VERSION_STRING VERSION_LESS "2.8.0")
26-
SET(UPDATE_SUBMODULES_COMMAND ${UPDATE_SUBMODULES_COMMAND} --depth 1)
26+
SET(file CMakeLists.txt)
27+
ENDIF()
28+
IF(SUBMODULE_UPDATE_CONFIG_MESSAGE)
29+
IF(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${file})
30+
MESSAGE(FATAL_ERROR "Cannot download ${CMAKE_CURRENT_SOURCE_DIR}/${dir} submodule: ${SUBMODULE_UPDATE_CONFIG_MESSAGE}")
2731
ENDIF()
28-
IF(cmake_update_submodules MATCHES force)
29-
MESSAGE(STATUS "Updating submodules (forced)")
30-
EXECUTE_PROCESS(COMMAND ${UPDATE_SUBMODULES_COMMAND} --force
31-
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
32-
RESULT_VARIABLE update_result)
33-
ELSEIF(cmake_update_submodules MATCHES yes)
34-
EXECUTE_PROCESS(COMMAND ${UPDATE_SUBMODULES_COMMAND}
35-
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
32+
ELSE()
33+
MESSAGE(STATUS "Downloading ${CMAKE_CURRENT_SOURCE_DIR}/${dir} submodule...")
34+
SET(UPDATE_SUBMODULES_COMMAND
35+
"${GIT_EXECUTABLE}" submodule update --init --recursive --depth 1)
36+
IF(CMAKE_UPDATE_SUBMODULES MATCHES force)
37+
EXECUTE_PROCESS(COMMAND ${UPDATE_SUBMODULES_COMMAND} --force ${dir}
38+
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
3639
RESULT_VARIABLE update_result)
3740
ELSE()
38-
MESSAGE(STATUS "Updating submodules")
39-
EXECUTE_PROCESS(COMMAND ${UPDATE_SUBMODULES_COMMAND}
40-
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
41+
EXECUTE_PROCESS(COMMAND ${UPDATE_SUBMODULES_COMMAND} ${dir}
42+
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
4143
RESULT_VARIABLE update_result)
4244
ENDIF()
45+
IF(update_result OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${file})
46+
MESSAGE(FATAL_ERROR "Failed to download ${CMAKE_CURRENT_SOURCE_DIR}/${dir} submodule")
47+
ENDIF()
4348
ENDIF()
44-
ENDIF()
49+
ENDFUNCTION()
4550

46-
IF(update_result OR NOT EXISTS ${CMAKE_SOURCE_DIR}/libmariadb/CMakeLists.txt)
47-
MESSAGE(FATAL_ERROR "No MariaDB Connector/C! Run
48-
${GIT_EXECUTABLE} submodule update --init --recursive
49-
Then restart the build.${SUBMODULE_UPDATE_CONFIG_MESSAGE}")
50-
ENDIF()
51+
MACRO(ADD_SUBMODULE_SUBDIRECTORY dir)
52+
ADD_SUBMODULE(${dir})
53+
ADD_SUBDIRECTORY(${dir})
54+
ENDMACRO()

cmake/wsrep.cmake

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,8 @@ IF(WITH_WSREP)
3535
# Set the patch version
3636
SET(WSREP_PATCH_VERSION "22")
3737

38-
IF(NOT EXISTS "${CMAKE_SOURCE_DIR}/wsrep-lib/wsrep-API/v26/wsrep_api.h")
39-
MESSAGE(FATAL_ERROR "No MariaDB wsrep-API code! Run
40-
${GIT_EXECUTABLE} submodule update --init --recursive
41-
Then restart the build.
42-
")
43-
ENDIF()
38+
ADD_SUBMODULE(wsrep-lib)
39+
4440
# Obtain wsrep API version
4541
FILE(STRINGS "${CMAKE_SOURCE_DIR}/wsrep-lib/wsrep-API/v26/wsrep_api.h" WSREP_API_VERSION
4642
LIMIT_COUNT 1 REGEX "WSREP_INTERFACE_VERSION")

debian/autobake-deb.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,8 @@ then
162162
# On Gitlab the output log must stay under 4MB so make the
163163
# build less verbose
164164
sed '/Add support for verbose builds/,/^$/d' -i debian/rules
165-
elif [[ -d storage/columnstore/columnstore/debian ]] && [[ "$LSBNAME" = !(buster|bionic) ]]
165+
elif grep -qs "$architecture" storage/columnstore/columnstore/debian/control && \
166+
[[ "$LSBNAME" = !(buster|bionic) ]]
166167
then
167168
# ColumnStore is explicitly disabled in the native Debian build. Enable it
168169
# now when build is triggered by autobake-deb.sh (MariaDB.org) and when the

mysql-test/main/ctype_collate_implicit.result

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,3 +289,11 @@ t1 CREATE TABLE `t1` (
289289
`a` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
290290
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
291291
DROP TABLE t1;
292+
#
293+
# MDEV-40059 too long character_set_collations crash
294+
#
295+
SET @@session.character_set_collations='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=x';
296+
ERROR 42000: Variable 'character_set_collations' can't be set to the value of 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...'
297+
SET @@session.character_set_collations='utf8mb3=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
298+
ERROR 42000: Variable 'character_set_collations' can't be set to the value of 'utf8mb3=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...'
299+
# End of 11.4 tests

mysql-test/main/ctype_collate_implicit.test

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,13 @@ SET @@character_set_collations='';
235235
EXECUTE stmt;
236236
SHOW CREATE TABLE t1;
237237
DROP TABLE t1;
238+
239+
--echo #
240+
--echo # MDEV-40059 too long character_set_collations crash
241+
--echo #
242+
--error ER_WRONG_VALUE_FOR_VAR
243+
SET @@session.character_set_collations='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=x';
244+
--error ER_WRONG_VALUE_FOR_VAR
245+
SET @@session.character_set_collations='utf8mb3=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
246+
247+
--echo # End of 11.4 tests
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
--loose-enable-performance-schema
22
--max-allowed-packet=32000000
3-
--proxy-protocol-networks=::1/32,127.0.0.0/8,localhost
3+
--proxy-protocol-networks=::1/32,127.0.0.0/8,localhost,2001:db8::6:6
44
--sequence=on
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
--general-log --general-log-file=$MYSQLTEST_VARDIR/log/master.log --log-output=FILE,TABLE
22
--max-allowed-packet=32000000
3-
--proxy-protocol-networks=::1,::ffff:127.0.0.1/97,localhost
3+
--proxy-protocol-networks=::1,::ffff:127.0.0.1/97,localhost,2001:db8::6:6
44
--sequence=on

0 commit comments

Comments
 (0)