summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2022-06-17 08:37:01 +0200
committerSergei Golubchik <serg@mariadb.org>2022-06-17 08:37:01 +0200
commita629d3b70340f303ca0dcf279c51401502014698 (patch)
tree9e69d6f32b62d02f8b7cb15a4d9e0e639c2cf003
parentdcb780d28fed127f8309a79b3a53b93261c9b2f6 (diff)
parent152921174df4206edd0bd93bb83ef8adf89c6bae (diff)
downloadmariadb-git-a629d3b70340f303ca0dcf279c51401502014698.tar.gz
Merge branch '10.9' into 10.10
-rw-r--r--debian/control2
-rw-r--r--debian/not-installed4
-rw-r--r--mysql-test/suite/sys_vars/r/character_set_client_basic.result27
-rw-r--r--mysql-test/suite/sys_vars/r/character_set_connection_basic.result26
-rw-r--r--mysql-test/suite/sys_vars/r/character_set_database_basic.result22
-rw-r--r--mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result11
-rw-r--r--mysql-test/suite/sys_vars/r/character_set_results_basic.resultbin16295 -> 16427 bytes
-rw-r--r--mysql-test/suite/sys_vars/r/character_set_server_basic.result22
-rw-r--r--mysql-test/suite/sys_vars/t/character_set_client_basic.test28
-rw-r--r--mysql-test/suite/sys_vars/t/character_set_connection_basic.test24
-rw-r--r--mysql-test/suite/sys_vars/t/character_set_database_basic.test20
-rw-r--r--mysql-test/suite/sys_vars/t/character_set_filesystem_basic.test10
-rw-r--r--mysql-test/suite/sys_vars/t/character_set_results_basic.test21
-rw-r--r--mysql-test/suite/sys_vars/t/character_set_server_basic.test20
-rw-r--r--mysql-test/suite/versioning/t/rpl_common.inc1
-rw-r--r--sql/sys_vars.cc4
16 files changed, 163 insertions, 79 deletions
diff --git a/debian/control b/debian/control
index 8d4cc5b164d..8886da40fdf 100644
--- a/debian/control
+++ b/debian/control
@@ -970,7 +970,7 @@ Description: CrackLib Password Validation Plugin for MariaDB
Package: mariadb-plugin-hashicorp-key-management
Architecture: any
Depends: libcurl4,
- mariadb-server (= ${server:Version}),
+ mariadb-server,
${misc:Depends},
${shlibs:Depends}
Description: Hashicorp Key Management plugin for MariaDB
diff --git a/debian/not-installed b/debian/not-installed
index 56061eed20c..dd7882a9821 100644
--- a/debian/not-installed
+++ b/debian/not-installed
@@ -15,6 +15,10 @@ usr/bin/mariadb-embedded # Shipping the embedded server in distro packaging does
usr/bin/mysql_config # Debian packaging has mysql_config as symlink to mariadb_config
usr/bin/mysql_embedded # Symlink to mariadb-embeded which is intentionally not included
usr/bin/sst_dump # Use the one from rocksdb-tools package
+usr/lib/aarch64-linux-gnu/libdbbc.a # ColumnStore header file
+usr/lib/aarch64-linux-gnu/libidbboot.a # ColumnStore header file
+usr/lib/aarch64-linux-gnu/libprocessor.a # ColumnStore header file
+usr/lib/aarch64-linux-gnu/libwe_xml.a # ColumnStore header file
usr/lib/x86_64-linux-gnu/libdbbc.a # ColumnStore header file
usr/lib/x86_64-linux-gnu/libidbboot.a # ColumnStore header file
usr/lib/x86_64-linux-gnu/libprocessor.a # ColumnStore header file
diff --git a/mysql-test/suite/sys_vars/r/character_set_client_basic.result b/mysql-test/suite/sys_vars/r/character_set_client_basic.result
index a15e1d10b79..d62d88027c7 100644
--- a/mysql-test/suite/sys_vars/r/character_set_client_basic.result
+++ b/mysql-test/suite/sys_vars/r/character_set_client_basic.result
@@ -383,10 +383,9 @@ SET @@character_set_client = 1;
SELECT @@character_set_client;
@@character_set_client
big5
+# latin2_czech_cs is not a default collation
SET @@character_set_client = 2;
-SELECT @@character_set_client;
-@@character_set_client
-latin2
+ERROR 42000: Unknown character set: '2'
SET @@character_set_client = 3;
SELECT @@character_set_client;
@@character_set_client
@@ -395,20 +394,19 @@ SET @@character_set_client = 36;
SELECT @@character_set_client;
@@character_set_client
cp866
+# cp1250_polish_ci is not a default collation
SET @@character_set_client = 99;
-SELECT @@character_set_client;
-@@character_set_client
-cp1250
+ERROR 42000: Unknown character set: '99'
+# Collation ID 100 does not exist
SET @@character_set_client = 100;
ERROR 42000: Unknown character set: '100'
SET @@global.character_set_client = 1;
SELECT @@global.character_set_client;
@@global.character_set_client
big5
+# latin2_czech_cs is not a default collation
SET @@global.character_set_client = 2;
-SELECT @@global.character_set_client;
-@@global.character_set_client
-latin2
+ERROR 42000: Unknown character set: '2'
SET @@global.character_set_client = 3;
SELECT @@global.character_set_client;
@@global.character_set_client
@@ -417,10 +415,10 @@ SET @@global.character_set_client = 36;
SELECT @@global.character_set_client;
@@global.character_set_client
cp866
+# cp1250_polish_ci is not a default collation
SET @@global.character_set_client = 99;
-SELECT @@global.character_set_client;
-@@global.character_set_client
-cp1250
+ERROR 42000: Unknown character set: '99'
+# Collation ID 100 does not exist
SET @@global.character_set_client = 100;
ERROR 42000: Unknown character set: '100'
SET @total_charset = (SELECT count(*) FROM INFORMATION_SCHEMA.CHARACTER_SETS);
@@ -497,5 +495,10 @@ SELECT @@session.character_set_client =
WHERE VARIABLE_NAME='character_set_client') AS res;
res
1
+#
+# MDEV-28769 Assertion `(m_ci->state & 32) || m_with_collate' failed in Lex_exact_charset_opt_extended_collate::Lex_exact_charset_opt_extended_collate on SET NAMES
+#
+SET GLOBAL character_set_client=2;
+ERROR 42000: Unknown character set: '2'
SET @@global.character_set_client = @global_start_value;
SET @@session.character_set_client = @session_start_value;
diff --git a/mysql-test/suite/sys_vars/r/character_set_connection_basic.result b/mysql-test/suite/sys_vars/r/character_set_connection_basic.result
index 6d098f37bd1..e356d62ed2b 100644
--- a/mysql-test/suite/sys_vars/r/character_set_connection_basic.result
+++ b/mysql-test/suite/sys_vars/r/character_set_connection_basic.result
@@ -378,10 +378,9 @@ SET @@character_set_connection = 1;
SELECT @@character_set_connection;
@@character_set_connection
big5
+# latin2_czech_cs is not a default collation
SET @@character_set_connection = 2;
-SELECT @@character_set_connection;
-@@character_set_connection
-latin2
+ERROR 42000: Unknown character set: '2'
SET @@character_set_connection = 3;
SELECT @@character_set_connection;
@@character_set_connection
@@ -390,20 +389,19 @@ SET @@character_set_connection = 36;
SELECT @@character_set_connection;
@@character_set_connection
cp866
+# cp1250_polish_ci is not a default collation
SET @@character_set_connection = 99;
-SELECT @@character_set_connection;
-@@character_set_connection
-cp1250
+ERROR 42000: Unknown character set: '99'
+# Collation ID 100 does not exist
SET @@character_set_connection = 100;
ERROR 42000: Unknown character set: '100'
SET @@global.character_set_connection = 1;
SELECT @@global.character_set_connection;
@@global.character_set_connection
big5
+# latin2_czech_cs is not a default collation
SET @@global.character_set_connection = 2;
-SELECT @@global.character_set_connection;
-@@global.character_set_connection
-latin2
+ERROR 42000: Unknown character set: '2'
SET @@global.character_set_connection = 3;
SELECT @@global.character_set_connection;
@@global.character_set_connection
@@ -412,10 +410,10 @@ SET @@global.character_set_connection = 36;
SELECT @@global.character_set_connection;
@@global.character_set_connection
cp866
+# cp1250_polish_ci is not a default collation
SET @@global.character_set_connection = 99;
-SELECT @@global.character_set_connection;
-@@global.character_set_connection
-cp1250
+ERROR 42000: Unknown character set: '99'
+# Collation ID 100 does not exist
SET @@global.character_set_connection = 100;
ERROR 42000: Unknown character set: '100'
SET @total_charset = (SELECT count(*) FROM INFORMATION_SCHEMA.CHARACTER_SETS);
@@ -435,8 +433,12 @@ SET @@character_set_connection = -1;
ERROR 42000: Unknown character set: '-1'
SET @@character_set_connection = 'utf8 ';
ERROR 42000: Unknown character set: 'utf8 '
+SET @@character_set_connection=cp1250;
SET @@character_set_connection = 'lätin2';
ERROR 42000: Unknown character set: 'lätin2'
+SET @@character_set_connection=cp866;
+SET @@character_set_connection = 'lätin2';
+ERROR 42000: Unknown character set: 'l?tin2'
SET @@character_set_connection = true;
SELECT @@character_set_connection AS res_with_true;
res_with_true
diff --git a/mysql-test/suite/sys_vars/r/character_set_database_basic.result b/mysql-test/suite/sys_vars/r/character_set_database_basic.result
index 752dad8500e..c15e0531efc 100644
--- a/mysql-test/suite/sys_vars/r/character_set_database_basic.result
+++ b/mysql-test/suite/sys_vars/r/character_set_database_basic.result
@@ -380,10 +380,9 @@ SET @@character_set_database = 1;
SELECT @@character_set_database;
@@character_set_database
big5
+# latin2_czech_cs is not a default collation
SET @@character_set_database = 2;
-SELECT @@character_set_database;
-@@character_set_database
-latin2
+ERROR 42000: Unknown character set: '2'
SET @@character_set_database = 3;
SELECT @@character_set_database;
@@character_set_database
@@ -392,20 +391,19 @@ SET @@character_set_database = 36;
SELECT @@character_set_database;
@@character_set_database
cp866
+# cp1250_polish_ci is not a default collation
SET @@character_set_database = 99;
-SELECT @@character_set_database;
-@@character_set_database
-cp1250
+ERROR 42000: Unknown character set: '99'
+# Collation ID 100 does not exist
SET @@character_set_database = 100;
ERROR 42000: Unknown character set: '100'
SET @@global.character_set_database = 1;
SELECT @@global.character_set_database;
@@global.character_set_database
big5
+# latin2_czech_cs is not a default collation
SET @@global.character_set_database = 2;
-SELECT @@global.character_set_database;
-@@global.character_set_database
-latin2
+ERROR 42000: Unknown character set: '2'
SET @@global.character_set_database = 3;
SELECT @@global.character_set_database;
@@global.character_set_database
@@ -414,10 +412,10 @@ SET @@global.character_set_database = 36;
SELECT @@global.character_set_database;
@@global.character_set_database
cp866
+# cp1250_polish_ci is not a default collation
SET @@global.character_set_database = 99;
-SELECT @@global.character_set_database;
-@@global.character_set_database
-cp1250
+ERROR 42000: Unknown character set: '99'
+# Collation ID 100 does not exist
SET @@global.character_set_database = 100;
ERROR 42000: Unknown character set: '100'
SET @total_charset = (SELECT count(*) FROM INFORMATION_SCHEMA.CHARACTER_SETS);
diff --git a/mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result b/mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result
index 8c5b5e524ba..da85a7dee54 100644
--- a/mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result
+++ b/mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result
@@ -379,10 +379,9 @@ SET @@character_set_filesystem = 1;
SELECT @@character_set_filesystem;
@@character_set_filesystem
big5
+# latin2_czech_cs is not a default collation
SET @@character_set_filesystem = 2;
-SELECT @@character_set_filesystem;
-@@character_set_filesystem
-latin2
+ERROR 42000: Unknown character set: '2'
SET @@character_set_filesystem = 3;
SELECT @@character_set_filesystem;
@@character_set_filesystem
@@ -391,10 +390,10 @@ SET @@character_set_filesystem = 36;
SELECT @@character_set_filesystem;
@@character_set_filesystem
cp866
+# cp1250_polish_ci is not a default collation
SET @@character_set_filesystem = 99;
-SELECT @@character_set_filesystem;
-@@character_set_filesystem
-cp1250
+ERROR 42000: Unknown character set: '99'
+# Collation ID 100 does not exist
SET @@character_set_filesystem = 100;
ERROR 42000: Unknown character set: '100'
SET @total_charset = (SELECT count(*) FROM INFORMATION_SCHEMA.CHARACTER_SETS);
diff --git a/mysql-test/suite/sys_vars/r/character_set_results_basic.result b/mysql-test/suite/sys_vars/r/character_set_results_basic.result
index 86cd9265efb..d1c6a52ba17 100644
--- a/mysql-test/suite/sys_vars/r/character_set_results_basic.result
+++ b/mysql-test/suite/sys_vars/r/character_set_results_basic.result
Binary files differ
diff --git a/mysql-test/suite/sys_vars/r/character_set_server_basic.result b/mysql-test/suite/sys_vars/r/character_set_server_basic.result
index e395b048f42..e0a13c729fe 100644
--- a/mysql-test/suite/sys_vars/r/character_set_server_basic.result
+++ b/mysql-test/suite/sys_vars/r/character_set_server_basic.result
@@ -382,10 +382,9 @@ SET @@character_set_server = 1;
SELECT @@character_set_server;
@@character_set_server
big5
+# latin2_czech_cs is not a default collation
SET @@character_set_server = 2;
-SELECT @@character_set_server;
-@@character_set_server
-latin2
+ERROR 42000: Unknown character set: '2'
SET @@character_set_server = 3;
SELECT @@character_set_server;
@@character_set_server
@@ -394,28 +393,27 @@ SET @@character_set_server = 36;
SELECT @@character_set_server;
@@character_set_server
cp866
+# cp1250_polish_ci is not a default collation
SET @@character_set_server = 99;
-SELECT @@character_set_server;
-@@character_set_server
-cp1250
+ERROR 42000: Unknown character set: '99'
+# Collation ID 100 does not exist
SET @@character_set_server = 100;
ERROR 42000: Unknown character set: '100'
SET @@global.character_set_server = 1;
SELECT @@global.character_set_server;
@@global.character_set_server
big5
+# latin2_czech_cs is not a default collation
SET @@global.character_set_server = 2;
-SELECT @@global.character_set_server;
-@@global.character_set_server
-latin2
+ERROR 42000: Unknown character set: '2'
SET @@global.character_set_server = 36;
SELECT @@global.character_set_server;
@@global.character_set_server
cp866
+# cp1250_polish_ci is not a default collation
SET @@global.character_set_server = 99;
-SELECT @@global.character_set_server;
-@@global.character_set_server
-cp1250
+ERROR 42000: Unknown character set: '99'
+# Collation ID 100 does not exist
SET @@global.character_set_server = 100;
ERROR 42000: Unknown character set: '100'
'#--------------------FN_DYNVARS_009_10-------------------------#'
diff --git a/mysql-test/suite/sys_vars/t/character_set_client_basic.test b/mysql-test/suite/sys_vars/t/character_set_client_basic.test
index e3461e4ac77..09f758a0316 100644
--- a/mysql-test/suite/sys_vars/t/character_set_client_basic.test
+++ b/mysql-test/suite/sys_vars/t/character_set_client_basic.test
@@ -229,33 +229,44 @@ SELECT @@global.character_set_client;
##############################################################
SET @@character_set_client = 1;
SELECT @@character_set_client;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_client = 2;
-SELECT @@character_set_client;
+
SET @@character_set_client = 3;
SELECT @@character_set_client;
SET @@character_set_client = 36;
SELECT @@character_set_client;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_client = 99;
-SELECT @@character_set_client;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_client = 100;
SET @@global.character_set_client = 1;
SELECT @@global.character_set_client;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_client = 2;
-SELECT @@global.character_set_client;
+
SET @@global.character_set_client = 3;
SELECT @@global.character_set_client;
SET @@global.character_set_client = 36;
SELECT @@global.character_set_client;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_client = 99;
-SELECT @@global.character_set_client;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_client = 100;
-
SET @total_charset = (SELECT count(*) FROM INFORMATION_SCHEMA.CHARACTER_SETS);
SELECT @total_charset;
@@ -332,6 +343,13 @@ SELECT @@session.character_set_client =
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
WHERE VARIABLE_NAME='character_set_client') AS res;
+--echo #
+--echo # MDEV-28769 Assertion `(m_ci->state & 32) || m_with_collate' failed in Lex_exact_charset_opt_extended_collate::Lex_exact_charset_opt_extended_collate on SET NAMES
+--echo #
+
+--error ER_UNKNOWN_CHARACTER_SET
+SET GLOBAL character_set_client=2;
+
####################################
# Restore initial value #
####################################
diff --git a/mysql-test/suite/sys_vars/t/character_set_connection_basic.test b/mysql-test/suite/sys_vars/t/character_set_connection_basic.test
index 5d6412dd420..3d9094fca04 100644
--- a/mysql-test/suite/sys_vars/t/character_set_connection_basic.test
+++ b/mysql-test/suite/sys_vars/t/character_set_connection_basic.test
@@ -155,30 +155,42 @@ SELECT @@global.character_set_connection;
##############################################################
SET @@character_set_connection = 1;
SELECT @@character_set_connection;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_connection = 2;
-SELECT @@character_set_connection;
+
SET @@character_set_connection = 3;
SELECT @@character_set_connection;
SET @@character_set_connection = 36;
SELECT @@character_set_connection;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_connection = 99;
-SELECT @@character_set_connection;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_connection = 100;
SET @@global.character_set_connection = 1;
SELECT @@global.character_set_connection;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_connection = 2;
-SELECT @@global.character_set_connection;
+
SET @@global.character_set_connection = 3;
SELECT @@global.character_set_connection;
SET @@global.character_set_connection = 36;
SELECT @@global.character_set_connection;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_connection = 99;
-SELECT @@global.character_set_connection;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_connection = 100;
@@ -201,6 +213,10 @@ SET @@character_set_connection = 1.1;
SET @@character_set_connection = -1;
--Error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_connection = 'utf8 ';
+SET @@character_set_connection=cp1250;
+--Error ER_UNKNOWN_CHARACTER_SET
+SET @@character_set_connection = 'lätin2';
+SET @@character_set_connection=cp866;
--Error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_connection = 'lätin2';
SET @@character_set_connection = true;
diff --git a/mysql-test/suite/sys_vars/t/character_set_database_basic.test b/mysql-test/suite/sys_vars/t/character_set_database_basic.test
index 54ccc5afddb..95ffa83950f 100644
--- a/mysql-test/suite/sys_vars/t/character_set_database_basic.test
+++ b/mysql-test/suite/sys_vars/t/character_set_database_basic.test
@@ -154,30 +154,42 @@ SELECT @@global.character_set_database;
##############################################################
SET @@character_set_database = 1;
SELECT @@character_set_database;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_database = 2;
-SELECT @@character_set_database;
+
SET @@character_set_database = 3;
SELECT @@character_set_database;
SET @@character_set_database = 36;
SELECT @@character_set_database;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_database = 99;
-SELECT @@character_set_database;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_database = 100;
SET @@global.character_set_database = 1;
SELECT @@global.character_set_database;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_database = 2;
-SELECT @@global.character_set_database;
+
SET @@global.character_set_database = 3;
SELECT @@global.character_set_database;
SET @@global.character_set_database = 36;
SELECT @@global.character_set_database;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_database = 99;
-SELECT @@global.character_set_database;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_database = 100;
diff --git a/mysql-test/suite/sys_vars/t/character_set_filesystem_basic.test b/mysql-test/suite/sys_vars/t/character_set_filesystem_basic.test
index 33b77eede06..b3ebb38360e 100644
--- a/mysql-test/suite/sys_vars/t/character_set_filesystem_basic.test
+++ b/mysql-test/suite/sys_vars/t/character_set_filesystem_basic.test
@@ -151,15 +151,21 @@ SELECT @@character_set_filesystem;
##############################################################
SET @@character_set_filesystem = 1;
SELECT @@character_set_filesystem;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_filesystem = 2;
-SELECT @@character_set_filesystem;
+
SET @@character_set_filesystem = 3;
SELECT @@character_set_filesystem;
SET @@character_set_filesystem = 36;
SELECT @@character_set_filesystem;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_filesystem = 99;
-SELECT @@character_set_filesystem;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_filesystem = 100;
diff --git a/mysql-test/suite/sys_vars/t/character_set_results_basic.test b/mysql-test/suite/sys_vars/t/character_set_results_basic.test
index cca2277713e..617332b9780 100644
--- a/mysql-test/suite/sys_vars/t/character_set_results_basic.test
+++ b/mysql-test/suite/sys_vars/t/character_set_results_basic.test
@@ -153,29 +153,42 @@ SELECT @@global.character_set_results;
##############################################################
SET @@character_set_results = 1;
SELECT @@character_set_results;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_results = 2;
-SELECT @@character_set_results;
+
SET @@character_set_results = 3;
SELECT @@character_set_results;
SET @@character_set_results = 36;
SELECT @@character_set_results;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_results = 99;
-SELECT @@character_set_results;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_results = 100;
+
SET @@global.character_set_results = 1;
SELECT @@global.character_set_results;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_results = 2;
-SELECT @@global.character_set_results;
+
SET @@global.character_set_results = 3;
SELECT @@global.character_set_results;
SET @@global.character_set_results = 36;
SELECT @@global.character_set_results;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_results = 99;
-SELECT @@global.character_set_results;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_results = 100;
diff --git a/mysql-test/suite/sys_vars/t/character_set_server_basic.test b/mysql-test/suite/sys_vars/t/character_set_server_basic.test
index de090348307..b2f4788fdae 100644
--- a/mysql-test/suite/sys_vars/t/character_set_server_basic.test
+++ b/mysql-test/suite/sys_vars/t/character_set_server_basic.test
@@ -155,27 +155,39 @@ SELECT @@global.character_set_server;
##############################################################
SET @@character_set_server = 1;
SELECT @@character_set_server;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_server = 2;
-SELECT @@character_set_server;
+
SET @@character_set_server = 3;
SELECT @@character_set_server;
SET @@character_set_server = 36;
SELECT @@character_set_server;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_server = 99;
-SELECT @@character_set_server;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@character_set_server = 100;
SET @@global.character_set_server = 1;
SELECT @@global.character_set_server;
+
+--echo # latin2_czech_cs is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_server = 2;
-SELECT @@global.character_set_server;
+
SET @@global.character_set_server = 36;
SELECT @@global.character_set_server;
+
+--echo # cp1250_polish_ci is not a default collation
+--error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_server = 99;
-SELECT @@global.character_set_server;
+--echo # Collation ID 100 does not exist
--Error ER_UNKNOWN_CHARACTER_SET
SET @@global.character_set_server = 100;
diff --git a/mysql-test/suite/versioning/t/rpl_common.inc b/mysql-test/suite/versioning/t/rpl_common.inc
index c37e58f0f96..37e1d76cc09 100644
--- a/mysql-test/suite/versioning/t/rpl_common.inc
+++ b/mysql-test/suite/versioning/t/rpl_common.inc
@@ -4,6 +4,7 @@
--echo # MDEV-25347 DML events for auto-partitioned tables are written into binary log twice
--echo #
flush binary logs;
+--source include/wait_for_binlog_checkpoint.inc
create table t1 (a int) with system versioning
partition by system_time limit 1 auto;
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
index fdc17fddd7e..cd0fb5967dc 100644
--- a/sql/sys_vars.cc
+++ b/sql/sys_vars.cc
@@ -789,7 +789,9 @@ static bool check_charset(sys_var *self, THD *thd, set_var *var)
else // INT_RESULT
{
int csno= (int)var->value->val_int();
- if (!(var->save_result.ptr= get_charset(csno, MYF(0))))
+ CHARSET_INFO *cs;
+ if (!(var->save_result.ptr= cs= get_charset(csno, MYF(0))) ||
+ !(cs->state & MY_CS_PRIMARY))
{
my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), llstr(csno, buff));
return true;