1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00
Commit Graph

1941 Commits

Author SHA1 Message Date
Oleksandr Byelkin
9f98f82b14 Merge branch '11.8' into 12.3 2026-05-26 21:15:58 +02:00
Sergei Golubchik
46a8eb42a5 fix plugins.feedback_os_release failure on sles-1600
just the comment at the beginning of its /etc/os-release
is already more than 256 bytes
2026-05-24 11:53:55 +02:00
Alexey Botchkov
6b79d98fc0 MDEV-39653 AddressSanitizer: heap-use-after-free in my_mb_wc_latin1/../Field_xmltype::store after invalid xml.
The Field_blob::store can affect the 'from' argument so it can't be used
after it.
2026-05-20 10:25:47 +04:00
Alexey Botchkov
6e20438a1c MDEV-39599 AddressSanitizer: heap-use-after-free in escape_string_for_mysql after sp with invalid xml (xmltype)).
Test case added.
2026-05-16 11:18:56 +04:00
Alexey Botchkov
c9421c80ff MDEV-39592 ALTER.. with xmltype silently overwrites row with prior rows data.
tests added.
2026-05-15 23:50:27 +04:00
Alexey Botchkov
6dcd3c9dc0 MDEV-39589 Wrong results with xmltype as a virtual column.
Store value in the XML column even if an error happened.
2026-05-15 20:00:01 +04:00
Alexey Botchkov
2c7c7e1216 MDEV-39573 Server crashes in Item_char_typecast::fix_length_and_dec_internal after select xmltype.
Charset specified for XMLTYPE constructor.
Error returned if XML is in UTF16/UTF32 as we can't parse it yet.
XML check added so only well-formed allowed.
2026-05-15 17:02:33 +04:00
Alexey Botchkov
49b2fd7f9e MDEV-39575 Protocol::end_statement(): Assertion `0' failed after insert into xmltype union of valid and invalid xml.
Field_xmltype::store has to do the my_error when it gets invalid XML,
  just the warning with the -1 return results in the DBUG_ASSERT.

Also the UpdateXML function result reverted back to the STRING as
it can legally produce invalid XML, so we can't have columns built
from the UpdateXML to be XMLTYPE.
2026-05-15 13:46:27 +04:00
Alexey Botchkov
66632eb126 MDEV-39570 LeakSanitizer: detected memory leaks after insert with xmltype
XML parser should always be freed.
2026-05-13 14:49:09 +04:00
Alexey Botchkov
181f13ec49 MDEV-39536 ASAN heap-buffer-overflow in process_str_arg upon ER_TRUNCATED_WRONG_VALUE "Incorrect XML value".
XML should be prepared before inserting it into the error message.
2026-05-10 14:29:02 +04:00
Alexey Botchkov
4c371e30f0 MDEV-38809 RBR fails upon DML with XML type.
Add Field_xmltype::rpl_conv_type_from() function to control
replication data types.
2026-05-08 14:09:25 +04:00
Oleksandr Byelkin
9cb70f0220 Merge branch '11.4' into 11.8 2026-05-08 08:11:03 +02:00
Oleksandr Byelkin
7598e4e95d Merge branch '10.11' into 11.4 2026-05-08 08:00:01 +02:00
Yuchen Pei
fd93184bc2 MDEV-38752 Check that virtual column is a supertype to its expression before substitution
New optimizations were introduced that substitute virtual column
expressions (abbr. vcol expr) with index virtual columns (abbr. vcol
field) in ORDER BY and GROUP BY.

In this patch we introduce checks that the type of a vcol field is the
supertype to its vcol expr, and if not, do not proceed the
optimization. This ensures that the substitution is safe and does not
for example lose information due to truncation.

For simplicity, the version of the check implemented is strict with
100% precision, meaning that there are instances where vcol field is a
supertype to vcol expr, but the check returns false.

Type not covered in tests: Type_handler_null

Thanks to Jarir Khan <kjarir23@gmail.com> for initial patches
addressing this issue.
2026-05-06 11:35:09 +10:00
Daniel Black
7efbb0d0b2 MDEV-38913: pam_mariadb_mtr.so installation path change
This reverts the effect of MDEV-21654 and includes
pam_mariadb_mtr in the mariadb-test-data Deb package.

This allows our CI systems to run tests on the
pam implementation on Debian systems.

As the pam configuration can include a full path,
we've change the installation of the pam module
pam_mariadb_mtr.so to under the /usr/lib*/plugins/test_pam_modules
directory and configured the pam configuration file,
suite/plugins/pam/mariadb_mtr, to include the
full path to pam_mariadb_mtr.so.
2026-05-03 19:17:17 +10:00
Sergei Golubchik
26606cefdc MDEV-39141 MariaDB crashes in THD::THD() due to misalignment
fix alloc_root() and my_malloc() to return 16-aligned pointers

(type_assoc_array.sp-assoc-array-64bit prints changes in memory_used,
and my_malloc() uses more memory now)
2026-04-30 21:55:42 +02:00
Sergei Golubchik
e1c2bb860a bump the maturity of caching_sha2_password and parsec plugins 2026-04-30 09:48:04 +02:00
Alexey Botchkov
2ed8c4c812 MDEV-39124 XMLTYPE: allow only well-formed XML.
Necessary checks added to the XMLTYPE.
2026-04-29 14:38:18 +04:00
Sergei Golubchik
f34afeaf6b MDEV-39318 MTR: fix test failures when running with --ssl
make sure P_S.{global|session}_status and I_S.feedback plugin table
have a column of the same width as I_S.global_status.

Otherwise long status strings (e.g. Ssl_cipher_list) won't fit
and trigger a data truncation warning (an error in the strict mode)
2026-04-28 16:05:51 +02:00
Anway Durge
a96ebfcb2a MDEV-39126: Feedback plugin to use /etc/os-release
Update prepare_linux_info() to use /etc/os-release
(PRETTY_NAME) as the primary source for OS detection.

Retain fallback support for /etc/lsb-release and
/etc/*-release for older systems.

Add MTR regression test feedback_os_release.

Signed-off-by: Anway Durge <124391429+itzanway@users.noreply.github.com>
2026-04-22 09:20:15 +10:00
Alexey Botchkov
5d234b2aa8 MDEV-38767 XML datatype to be reported as format in extended metadata in protocol.
add respective Send_field metadata for UDT.
2026-04-21 10:13:04 +04:00
Mikhail Pochatkin
cbcff6324a MDEV-39173 Replace sprintf with snprintf, remove deprecated pragma
Remove the unscoped #pragma GCC diagnostic ignored
"-Wdeprecated-declarations" from include/violite.h and replace all
sprintf/vsprintf calls with snprintf/vsnprintf across the codebase.

Where possible, pass actual buffer sizes as function parameters
instead of using hardcoded constants or recomputing strlen().
Notable API changes:
- get_date(): added to_len parameter for buffer size
- nice_time(), end_timer() in client/mysql.cc: added buff_size
- generate_new_name(): added name_size parameter
- calc_md5(): added buffer_size parameter (fixes off-by-one)
- MD5_HASH_TO_STRING macro: added _size parameter
- Added MYSQL_UDF_MAX_RESULT_LENGTH constant in mysql_com.h

Also fixed a pre-existing bug in sql/rpl_mi.cc where the ellipsis
"..." was written to the wrong buffer (dbuff instead of buff).

Vendored code is excluded: extra/readline, extra/wolfssl,
wsrep-lib, libmariadb, storage/mroonga/vendor, zlib.
2026-04-16 19:00:12 +10:00
Marko Mäkelä
55b3dced05 Merge 11.8 into 12.3 2026-04-02 09:15:17 +03:00
Tuukka Pasanen
a103be381b MDEV-30953: Add package for Galera server for RPM
Following the previous commit, we apply the same
to RPM.

Add new package Mariadb-server-galera to RPM build
recude mariadb-server package dependencies.
Galera cluster scripts and libraries are currently
in package mariadb-server. Move Galera cluster
scripts and libraries to new package mariadb-server-galera
as most of the people does not need them and
it allows to slim down mariadb-server package

The MariaDB-test package unlike its Debian
equal, didn't depend on the MariaDB-server
(and now it does), except if WITH_WSREP is
specified in which case it depends on the
MariaDB-server-galera package

Also from a865a7c23b
lsof, socat and pv are RECOMMENDS.
* lsof/socat - when selinux is enabled, these aren't used
* pv - the galera sst scripts will silently ignore its absence

Updated/Edited by: Daniel Black <daniel@mariadb.org>
2026-04-02 09:28:48 +11:00
Marko Mäkelä
1a144f713a Merge 11.4 into 11.8 2026-04-01 15:03:59 +03:00
Vladislav Vaintroub
330f9b133f MDEV-28115 Hashicorp MTR tests aren't runnable on WIndows
- Fixed detection of "vault" utility
- Removed include/not_windows.inc from common include
- On Windows, skip 2 tests that rely on "grep"
- in mtr, set PATH to include mtr plugin directory (this is necessary
  to load vcpkg dependencies)
2026-03-25 19:36:23 +01:00
Alexander Barkov
734670b962 MDEV-39115 FUNCTION does not exist error on package body assoc array variable
Problem:
When parsing `a.b()`, LEX::make_item_func_or_method_call() could not find
a package body variable 'a'.

Fix:
When searching for a variable, search not only in the current parse context,
but also in the parent package body context (if exists).
2026-03-19 12:38:20 +04:00
forkfun
a3c2a17d36 MDEV-38967: STR_TO_DATE() cannot be used in indexed virtual columns
Update STR_TO_DATE() to accept an optional third argument for the locale.
DATE_FORMAT() and STR_TO_DATE() return NULL when the locale argument is NULL;
issue a warning and fall back to the session @@lc_time_names for invalid locale names.
STR_TO_DATE() can now be used in indexed virtual columns while having all 3 arguments,
but not allowed when 2 as it depends then on the session @@lc_time_names
2026-03-13 16:17:11 +01:00
Alexey Botchkov
bd74c8cf7c MDEV-37261 Basic XML data type.
XMLTYPE column added.
Type_handler::get_column_attributes() added so parser can check
if unexpected attributes were specified for the UDT column.
2026-02-09 20:55:41 +01:00
Sergei Golubchik
4456eb1a5e Merge branch '12.2' into 12.3 2026-02-07 22:12:32 +01:00
Sergei Golubchik
f83d196a04 compiler warning: unused variable 2026-02-07 22:08:35 +01:00
Sergei Golubchik
f1ce18d3eb fix error message for assoc arrays 2026-02-06 17:46:50 +01:00
Sergei Golubchik
75b2aadb9e cleanup: remove #ifdef MYSQL_VERSION_ID
remove conditional compilation for old MariaDB versions.
Some were as old as MYSQL_VERSION_ID > 32300

Didn't touch engines hosted externally, like connect, mroonga,
and columnstore
2026-02-06 17:46:50 +01:00
Sergei Golubchik
d653fcb564 Merge branch '11.8' into 12.2 2026-02-03 14:53:15 +01:00
Sergei Golubchik
9bfea48ce1 Merge branch '11.4' into 11.8 2026-01-31 14:08:54 +01:00
Sergei Golubchik
40f7084661 Merge branch '10.11' into 11.4 2026-01-28 21:52:18 +01:00
Sergei Golubchik
b29d3779e4 Merge branch '10.6' into 10.11 2026-01-28 14:22:20 +01:00
Sergei Golubchik
12578d8a69 MDEV-38604 fix SP execution too 2026-01-26 23:15:34 +01:00
Sergei Golubchik
b6d0e23d76 MDEV-38365 SHA2 auth plugin crash on large packets
use my_safe_alloca() as the key_len comes directly from the client

Reported by Pavel Kohout, Aisle Research, www.aisle.com
2026-01-23 14:31:12 +01:00
Sergei Golubchik
cb31d7536b MDEV-38604 Assertion `thd->utime_after_query >= thd->utime_after_lock' failed in query_response_time_audit_notify on 2nd execution of SP with query cache
even when PS is served from a query cache, thd->utime_after_query
must be updated.

also, backport the assert from 11.8
2026-01-23 12:15:34 +01:00
Oleg Smirnov
f2b48e565c MDEV-38574 Rename cloning functions of class Item and descendants
Rename cloning methods of class Item and its descendants
in the following way:

   (from)            (to)
do_build_clone  -> deep_copy
   build_clone  -> deep_copy_with_checks

do_get_copy  -> shallow_copy
   get_copy  -> shallow_copy_with_checks

to better reflect their functionality.

Also make Item::deep_copy() and shallow_copy() protected.
Outside users should call deep_copy_with_checks()
and shallow_copy_with_checks().
2026-01-22 12:57:48 +01:00
Marko Mäkelä
08c57c5ebf MDEV-37600 fixup: clang 21 -Wunterminated-string-initialization 2026-01-20 08:55:59 +02:00
Vladislav Vaintroub
ce6be40b79 MDEV-37997 vcpkg's FIND_PACKAGE throws error for zlib dependent packages
Build with vcpkg and WITH_ZLIB=bundled throws error
"Broken installation of vcpkg port zlib" in FIND_PACKAGE(CURL)

Set CMAKE_DISABLE_FIND_PACKAGE_ZLIB to workaround.

Previously, this workaround was hashicorp specific, now we need this also
for videx. Thus setting CMAKE_DISABLE_FIND_PACKAGE_ZLIB was moved to
correct place,  inside MYSQL_USE_BUNDLED_ZLIB macro.
2026-01-19 17:18:33 +01:00
Vladislav Vaintroub
f2cb54849f MDEV-38203 fix build error on Windows 2026-01-19 16:36:55 +01:00
Vladislav Vaintroub
42c260bc0f MDEV-37997 vcpkg's FIND_PACKAGE throws error for zlib dependent packages
Build with vcpkg and WITH_ZLIB=bundled throws error
"Broken installation of vcpkg port zlib" in FIND_PACKAGE(CURL)

Set CMAKE_DISABLE_FIND_PACKAGE_ZLIB to workaround.

Previously, this workaround was hashicorp specific, now we need this also
for videx. Thus setting CMAKE_DISABLE_FIND_PACKAGE_ZLIB was moved to
correct place,  inside MYSQL_USE_BUNDLED_ZLIB macro.
2026-01-19 16:36:55 +01:00
gkodinov
d553df5c15 MDEV-38499: cmake and compile warnings on MacOSX when
compiling mariadb from a git tree

Fixed sprintf deprecation warnings compiling on MacOSX.

Replaced some sprintf calls with equivalent snprintf calls,
enough so that "normal" compile on MacOSX (as documented
in the docs) completes without warnings.
2026-01-16 10:40:49 +02:00
Sergei Golubchik
b998e3a7b9 MDEV-38203 Hashicorp plugin lets keys timeout and doesn't use cached keys on vault errors
* let use_cache_on_timeout apply to other errors
* enable use_cache_on_timeout by default and deprecate it
* increase cache_timeout to max and deprecate it
* change it from long to portable longlong
* delete both in 13.3
2026-01-14 19:44:30 +01:00
Tony Chen
4e674a20c4 Simplify event filtering logic in server_audit plugin
Replace if-else chain with a single bitwise AND check when filtering query
events by type (DDL, DML, DCL, etc.).

The removes the need for the goto statements.

Additionally, we remove the orig_query variable as it served no purpose.

All new code of the whole pull request, including one or several files
that are either new files or modified ones, are contributed under the
BSD-new license
2026-01-14 16:39:23 +01:00
Sergei Golubchik
366de0ae3b Merge branch '12.2' into 12.3 2026-01-08 21:41:40 +01:00
Sergei Golubchik
27c98794bb Merge branch '11.8' into 12.2 2026-01-08 12:02:45 +01:00