Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
da58c0c
Ensure that mtr.out-of-source is not acccidently calling itself
montywi May 13, 2026
f0ae019
bump the VERSION
dbart May 18, 2026
61d251c
MDEV-13542 fixup: Remove orphan trx_print()
dr-m May 19, 2026
13e6808
MDEV-39676 : Galera Cluster-peer > Donor command execution
janlindstrom May 20, 2026
03e040e
Fix test failure on galera_sst_mariabackup_encrypt_with_key_server
janlindstrom May 20, 2026
3a3c1e4
Prepare for Galera library version 26.4.27
janlindstrom May 20, 2026
1648170
MDEV-39565 missing filename check in mariadb-backup --decompress
vuvova May 11, 2026
c5409ca
MDEV-39564 One-byte OOB write in PROXY protocol v1 header parser
vuvova May 11, 2026
31319c7
proxy protocol v2: fix a harmless typo
vuvova May 12, 2026
05663d1
MDEV-39576 PROXY v2 protocol uninitialized memory reads
vuvova May 12, 2026
9a3e153
MDEV-39581 dynamic column header missing sanity checks
vuvova May 12, 2026
11c41cd
MDEV-39622 OBJECT_INSTANCE_BEGIN in P_S are unstable, difficult to co…
vuvova May 15, 2026
32ab8a2
MDEV-39657 ASAN error on malformed WKB point
vuvova May 18, 2026
52bbe5b
MDEV-39658 ASAN crash on invalid proxy_protocol_networks value
vuvova May 18, 2026
fe3039e
MDEV-39673 group_concat ignores max_allowed_packet
vuvova May 19, 2026
5cedbdf
fix columnstore for new cmake
vuvova May 20, 2026
dae315a
MDEV-39648: wsrep_sst_rsync.sh: apply safe() to joiner-supplied param…
hemantdangi-gc May 18, 2026
a9e2f7f
MDEV-39676 disallow global.wsrep_sst_donor=NULL again
vuvova May 21, 2026
f2296f3
MDEV-39685 : galera multi table update crash
janlindstrom May 21, 2026
e7374f2
Revert "MDEV-17677: Keywords followed by .number parsed as identifiers"
vuvova May 20, 2026
29c0041
MDEV-39654 schema-qualified unquoted table name starting with digit f…
vuvova May 20, 2026
ed8404a
MDEV-39721: wsrep_notify.cc: reject shell-unsafe characters in joiner…
hemantdangi-gc May 22, 2026
b2050fd
strengthen safe() in wsrep_sst_common, just in case
vuvova May 23, 2026
fafcaa8
bump the VERSION
dbart May 18, 2026
197f92b
Merge branch '10.6' into 10.11
vuvova May 23, 2026
b6921bb
Test for MDEV-39788
ParadoxV5 May 29, 2026
cef52e2
fixup
ParadoxV5 May 29, 2026
78ac3f8
ye smol problem with test-result pairs is that it’s easy to forget to…
ParadoxV5 May 29, 2026
df587c1
whoops. (RIP our CI today)
ParadoxV5 May 29, 2026
0d654f6
didn’t notice that null lists were allowed in pre-12.3
ParadoxV5 May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
MYSQL_VERSION_MAJOR=10
MYSQL_VERSION_MINOR=11
MYSQL_VERSION_PATCH=17
MYSQL_VERSION_PATCH=18
SERVER_MATURITY=stable
8 changes: 8 additions & 0 deletions extra/mariabackup/backup_copy.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1942,6 +1942,14 @@ decrypt_decompress_file(const char *filepath, uint thread_n)

msg(thread_n,"%s\n", message.str().c_str());

/* all valid *.qp files are table-name-safe */
for (const char *s=filepath; *s; s++)
if (!isalnum(*s) && !strchr("-.@/_#", *s))
Comment on lines +1946 to +1947
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Calling isalnum with a signed char directly can lead to undefined behavior if the character has a negative value (e.g., non-ASCII characters). It is safer to cast the character to unsigned char before passing it to isalnum.

                for (const char *s=filepath; *s; s++)
                  if (!isalnum((unsigned char)*s) && !strchr("-.@/_#", *s))

{
msg(thread_n,"Error: invalid file name\n");
return(false);
}

if (system(cmd.str().c_str()) != 0) {
return(false);
}
Expand Down
5 changes: 5 additions & 0 deletions mysql-test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@

INSTALL_MYSQL_TEST("." "")

IF (NOT CMAKE_REAL_SOURCE_DIR)
get_filename_component(CMAKE_REAL_SOURCE_DIR "${CMAKE_SOURCE_DIR}" REALPATH)
get_filename_component(CMAKE_REAL_BINARY_DIR "${CMAKE_BINARY_DIR}" REALPATH)
ENDIF()

IF(NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
# Enable running mtr from build directory
CONFIGURE_FILE(
Expand Down
7 changes: 7 additions & 0 deletions mysql-test/main/dyncol.result
Original file line number Diff line number Diff line change
Expand Up @@ -1979,4 +1979,11 @@ drop table t1;
#
SELECT COLUMN_JSON(1000);
ERROR HY000: Encountered illegal format of dynamic column string
#
# MDEV-39581 dynamic column header missing sanity checks
#
SELECT COLUMN_LIST(0x040100FFFF00000300666F6F21626172);
ERROR HY000: Encountered illegal format of dynamic column string
SELECT COLUMN_JSON(CONCAT(0x040200020001000000000000004241, REPEAT('D', 512)));
ERROR HY000: Encountered illegal format of dynamic column string
# End of 10.6 tests
10 changes: 10 additions & 0 deletions mysql-test/main/dyncol.test
Original file line number Diff line number Diff line change
Expand Up @@ -1033,4 +1033,14 @@ drop table t1;
--error ER_DYN_COL_WRONG_FORMAT
SELECT COLUMN_JSON(1000);


--echo #
--echo # MDEV-39581 dynamic column header missing sanity checks
--echo #
--error ER_DYN_COL_WRONG_FORMAT
SELECT COLUMN_LIST(0x040100FFFF00000300666F6F21626172);

--error ER_DYN_COL_WRONG_FORMAT
SELECT COLUMN_JSON(CONCAT(0x040200020001000000000000004241, REPEAT('D', 512)));

--echo # End of 10.6 tests
18 changes: 18 additions & 0 deletions mysql-test/main/func_gconcat.result
Original file line number Diff line number Diff line change
Expand Up @@ -1538,3 +1538,21 @@ DROP VIEW v1;
DROP TABLE t1;
SET NAMES latin1;
# End of 10.5 tests
#
# MDEV-39673 group_concat ignores max_allowed_packet
#
connect u,localhost,root;
set group_concat_max_len=2*1024*1024*1024;
Warnings:
Warning 1292 Truncated incorrect group_concat_max_len value: '2147483648'
select @@group_concat_max_len;
@@group_concat_max_len
1073741824
select length(group_concat(repeat('a', @@max_allowed_packet-1), repeat('a', @@max_allowed_packet-1))) from dual;
length(group_concat(repeat('a', @@max_allowed_packet-1), repeat('a', @@max_allowed_packet-1)))
16777216
Warnings:
Warning 1260 Row 1 was cut by GROUP_CONCAT()
disconnect u;
connection default;
# End of 10.6 tests
12 changes: 12 additions & 0 deletions mysql-test/main/func_gconcat.test
Original file line number Diff line number Diff line change
Expand Up @@ -1125,3 +1125,15 @@ DROP TABLE t1;
SET NAMES latin1;

--echo # End of 10.5 tests

--echo #
--echo # MDEV-39673 group_concat ignores max_allowed_packet
--echo #
connect u,localhost,root;
set group_concat_max_len=2*1024*1024*1024;
select @@group_concat_max_len;
select length(group_concat(repeat('a', @@max_allowed_packet-1), repeat('a', @@max_allowed_packet-1))) from dual;
disconnect u;
connection default;

--echo # End of 10.6 tests
2 changes: 1 addition & 1 deletion mysql-test/main/func_json_notembedded.result
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ connect u,localhost,root;
#
# MDEV-24909 JSON functions don't respect KILL QUERY / max_statement_time limit
#
set group_concat_max_len= 4294967295;
set group_concat_max_len= 1000000000;
set @obj=concat_ws('','{', repeat('"a":"b",', 1250000/2), '"c":"d"}');
set @arr=concat_ws('','[', repeat('1234567,', 1250000/2), '2345678]');
select length(@obj), length(@arr);
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/main/func_json_notembedded.test
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ connect u,localhost,root;
--echo #
--echo # MDEV-24909 JSON functions don't respect KILL QUERY / max_statement_time limit
--echo #
set group_concat_max_len= 4294967295;
set group_concat_max_len= 1000000000;

set @obj=concat_ws('','{', repeat('"a":"b",', 1250000/2), '"c":"d"}');
set @arr=concat_ws('','[', repeat('1234567,', 1250000/2), '2345678]');
Expand Down
6 changes: 6 additions & 0 deletions mysql-test/main/gis.result
Original file line number Diff line number Diff line change
Expand Up @@ -5595,4 +5595,10 @@ mp
SELECT ST_GeomFromWKB(x'01070000000100000001070000000100000001070000000100000001020000000100000000000000') IS NOT NULL AS gc;
gc
0
#
# MDEV-39657 ASAN error on malformed WKB point
#
SELECT HEX(ST_GeometryN(0x000000000107000000010000000101000000, 1));
HEX(ST_GeometryN(0x000000000107000000010000000101000000, 1))
NULL
# End of 10.6 tests
5 changes: 5 additions & 0 deletions mysql-test/main/gis.test
Original file line number Diff line number Diff line change
Expand Up @@ -3568,4 +3568,9 @@ SELECT ST_GeomFromWKB(x'01050000000200000001020000000200000000000000000000000000
SELECT ST_GeomFromWKB(x'01060000000100000001030000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') IS NOT NULL AS mp;
SELECT ST_GeomFromWKB(x'01070000000100000001070000000100000001070000000100000001020000000100000000000000') IS NOT NULL AS gc;

--echo #
--echo # MDEV-39657 ASAN error on malformed WKB point
--echo #
SELECT HEX(ST_GeometryN(0x000000000107000000010000000101000000, 1));

--echo # End of 10.6 tests
50 changes: 9 additions & 41 deletions mysql-test/main/parser.result
Original file line number Diff line number Diff line change
Expand Up @@ -2266,47 +2266,15 @@ LEAVE sysdate;
END WHILE ;
END;
$$
#
# End of 10.6 tests
#
# MDEV-39654 schema-qualified unquoted table name starting with digit fails to parse
#
# MDEV-17677 : Keywords are parsed as identifiers when followed by a dot
#
SET NAMES utf8;
test for Nd (should work)
SELECT.1;
.1
0.1
SELECT.123+0;
.123+0
0.123
SELECT.5 * 2;
.5 * 2
1.0
test for Mn
SELECT.́1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT.́1' at line 1
SELECT.̈abc;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT.̈abc' at line 1
test for Mc
SELECT.ःtest;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT.ःtest' at line 1
test for Pc
SELECT.‿a;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT.‿a' at line 1
test for Cf
SELECT.‎abc;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT.‎abc' at line 1
test for Middle-dot and underscore
SELECT.·123;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT.·123' at line 1
ٍSELECT._1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ٍSELECT._1' at line 1
still work as identifier
CREATE TABLE `SELECT` (a INT);
INSERT INTO `SELECT` VALUES (5);
SELECT `SELECT`.a FROM `SELECT`;
a
5
DROP TABLE `SELECT`;
SET NAMES DEFAULT;
create table 1a (1b int);
create table `select` (1c int);
select 1b from test.1a;
1b
select select.1c from test.select;
1c
drop table 1a, `select`;
# End of 10.11 tests
48 changes: 7 additions & 41 deletions mysql-test/main/parser.test
Original file line number Diff line number Diff line change
Expand Up @@ -2064,52 +2064,18 @@ DELIMITER ;$$

--disable_prepare_warnings

--echo #
--echo # End of 10.6 tests
--echo #

--echo #
--echo # MDEV-17677 : Keywords are parsed as identifiers when followed by a dot
--echo # MDEV-39654 schema-qualified unquoted table name starting with digit fails to parse
--echo #

SET NAMES utf8;

--echo test for Nd (should work)
SELECT.1;
SELECT.123+0;
SELECT.5 * 2;

--character_set utf8mb4
--echo test for Mn
--error ER_PARSE_ERROR
SELECT.́1;

--error ER_PARSE_ERROR
SELECT.̈abc;

create table 1a (1b int);
create table `select` (1c int);

-- echo test for Mc
--error ER_PARSE_ERROR
SELECT.ःtest;

--echo test for Pc
--error ER_PARSE_ERROR
SELECT.‿a;

--echo test for Cf
--error ER_PARSE_ERROR
SELECT.‎abc;

--echo test for Middle-dot and underscore
--error ER_PARSE_ERROR
SELECT.·123;
--error ER_PARSE_ERROR
ٍSELECT._1;
select 1b from test.1a;
select select.1c from test.select;

--echo still work as identifier
CREATE TABLE `SELECT` (a INT);
INSERT INTO `SELECT` VALUES (5);
SELECT `SELECT`.a FROM `SELECT`;
DROP TABLE `SELECT`;
drop table 1a, `select`;

SET NAMES DEFAULT;
--echo # End of 10.11 tests
8 changes: 8 additions & 0 deletions mysql-test/main/rpl_info_file_line_count.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
CHANGE MASTER TO master_host='127.0.0.1';
# restart: --skip-slave-start
Master_SSL_Key = ''
Using_Gtid = 'Current_Pos'
SQL_Delay = '0'
RESET SLAVE ALL;
Warnings:
Note 4190 RESET SLAVE is implicitly changing the value of 'Using_Gtid' from 'Current_Pos' to 'Slave_Pos'
74 changes: 74 additions & 0 deletions mysql-test/main/rpl_info_file_line_count.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Line count / upgrading test for `@@master_info_file` & `@@relay_log_info_file`
#
# This regression test reminds that the line count includes the line count line.
#
# Reference:
# MDEV-39788 CHANGE MASTER savefiles read and write one line to many

--source include/have_binlog_format_mixed.inc # format-agnostic
CHANGE MASTER TO master_host='127.0.0.1'; # have_info_files

--let $MYSQLD_DATADIR= `SELECT @@datadir`


# `using_gtid` is the key-value section, not the 33rd option.
--remove_file $MYSQLD_DATADIR/master.info
--write_file $MYSQLD_DATADIR/master.info
33

4
127.0.0.1
root

3306
60
1





1
60.000

0

100000













using_gtid=1
EOF

# This file does not have the 6th option
# (neither does the current `@@relay_log_info_file`).
--remove_file $MYSQLD_DATADIR/relay-log.info
--write_file $MYSQLD_DATADIR/relay-log.info
6
./mysqld-relay-bin.000001
4

0
0
EOF


--let $restart_parameters= --skip-slave-start
--source include/restart_mysqld.inc

--let $status_items= Master_SSL_Key, Using_Gtid, SQL_Delay
--source include/show_slave_status.inc


# Reset
RESET SLAVE ALL;
9 changes: 9 additions & 0 deletions mysql-test/mtr.out-of-source
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
#!/usr/bin/env perl
# Call mtr in out-of-source build

use Cwd qw(cwd abs_path);
$ENV{MTR_BINDIR} = '@CMAKE_BINARY_DIR@';
my $dir= cwd();
my $new_dir= abs_path('@CMAKE_SOURCE_DIR@');
if ($dir eq $new_dir . '/mysql-test')
{
print stderr "Something went wrong. Do 'git checkout mysql-test/mariadb-test-run.pl' and try again";
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

In Perl, standard filehandles are case-sensitive and uppercase (STDERR). Using lowercase stderr is incorrect and will either cause a syntax/runtime error or print to STDOUT instead of STDERR. Also, consider adding a newline \n at the end of the error message.

    print STDERR "Something went wrong. Do 'git checkout mysql-test/mariadb-test-run.pl' and try again\n";

exit 1;
}
chdir('@CMAKE_SOURCE_DIR@/mysql-test');
exit(system($^X, '@CMAKE_SOURCE_DIR@/mysql-test/mariadb-test-run.pl', @ARGV) >> 8);
2 changes: 1 addition & 1 deletion mysql-test/suite/funcs_1/r/innodb_trig_0407.result
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ create table t1_433a (f1a char (5)) engine = <engine_to_be_used>;
CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
set new.f1 = 'Trigger 3.5.4.3';
Drop trigger t1.433.trg3;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.433.trg3' at line 1
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.trg3' at line 1
Drop trigger db_drop3.t1.433.trg3;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.433.trg3' at line 1
Drop trigger mysql.trg3;
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/suite/funcs_1/r/memory_trig_0407.result
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ create table t1_433a (f1a char (5)) engine = <engine_to_be_used>;
CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
set new.f1 = 'Trigger 3.5.4.3';
Drop trigger t1.433.trg3;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.433.trg3' at line 1
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.trg3' at line 1
Drop trigger db_drop3.t1.433.trg3;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.433.trg3' at line 1
Drop trigger mysql.trg3;
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/suite/funcs_1/r/myisam_trig_0407.result
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ create table t1_433a (f1a char (5)) engine = <engine_to_be_used>;
CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
set new.f1 = 'Trigger 3.5.4.3';
Drop trigger t1.433.trg3;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.433.trg3' at line 1
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.trg3' at line 1
Drop trigger db_drop3.t1.433.trg3;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.433.trg3' at line 1
Drop trigger mysql.trg3;
Expand Down
13 changes: 13 additions & 0 deletions mysql-test/suite/galera/r/MDEV-39685.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
connection node_2;
connection node_1;
CREATE TABLE t1 (
pk int PRIMARY KEY,
c varchar(8),
i int
) ENGINE=InnoDB;
CREATE TABLE t2 (f int) ENGINE=InnoDB;
CREATE TABLE t3 (x int,
FOREIGN KEY (x) REFERENCES t1 (pk)
) ENGINE=InnoDB;
UPDATE t1 JOIN t2 ON t1.i = t2.f SET t1.c = 'foo';
DROP TABLE t3, t2, t1;
Loading