Console View
|
Categories: connectors experimental galera main |
|
| connectors | experimental | galera | main | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40395 MyISAM/Aria silently truncate extensions from filenames, if too long * move all common fn_format flags that mi_create/maria_create use into one single #define. * simplify (MY_APPEND_EXT is redundant and MY_REPLACE_EXT does nothing when no . is present in the filename) * use MY_SAFE_PATH everywhere (return NULL if too long) * set my_errno= ENAMETOOLONG on too long * abort mi_create/maria_create if returned NULL |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40328 ASAN error on malformed WKB multipolygon before `data+= WKB_HEADER_SIZE` verify that there's enough data. rewrite this line in Gis_multi_line_string::get_mbr to make clear that it does not need this check. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
drrtuy
drrtuy@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chore: RYOW MTR test for DuckDB. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Dave Gosselin
dave.gosselin@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| test updates based on comments from Oleg | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40308 single quotes make SHOW CREATE USER invalid use append_unescaped() for '-quoted strings in SHOW CREATE USER and SHOW GRANTS. Use append_identifier() for user- and hostnames. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40358 symlinked table name is not encoded encode table name in file name in DATA/INDEX DIRECTORY |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Dave Gosselin
dave.gosselin@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-39397: Document and clean up dump_leaf_key Add a docblock for dump_leaf_key that describes each parameter and the leaf payload layout, and documents the return values and side effects. Sprinkle inline comments through the body to explain the LIMIT and OFFSET bookkeeping, the dual purpose of result_finalized, why borrowing table->record[1] as scratch space is safe, the offset translation for skipped null bytes, and why the blob_storage truncation flag is cleared after raising ER_CUT_VALUE_GROUP_CONCAT. Implement other code cleanups, too, like dropping the unused tmp2 String object and rename old_length to starting_len so the cut_max_length call reads more directly. Other changes include narrowing loop variables to the loop scope, move declarations next to their first use, and replacing the C casts with static_cast. There should be no behavior changes at this commit. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40426 CONNECT writes unvalidated data from remote server into fixed-len buffer use size-bounded scanf formats |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cleanup: main.drop test | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MDEV-40409 ST_GeomFromText stack overrun on deeply nested GeometryCollection | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40065 bundled command-line clients don't always enforce length limits on server results replace strmov/strxmov with strnmov, strmake, or my_snprintf |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40362 #mysql50# mixes up with table names in the table cache and on disk 1. Only allow #mysql50# prefix on table names that can not be decoded from a file name to a table name. It is an error to put this prefix on a name that can be accessed as a valid table name without a prefix. Use `t1` not `#mysql50#t1`, use `a-b` not `#mysql50#a@002db`. 2. Don't allow creation of new tables with the #mysql50# prefix. Except when in SQLCOM_ALTER_DB_UPGRADE - main.upgrade test runs ALTER DATABASE `#mysql50#mysqltest-1` UPGRADE DATA DIRECTORY NAME; This command moves tables from the old db name to the new db name, and some of these tables also have old #mysql50# names. 3. Also don't allow to create such databases, views, partitions, subpartitions, sequences, triggers. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sun Haiyong
sunhaiyong@zdbr.net |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Use CMAKE_SIZEOF_VOID_P EQUAL 8 for 64-bit detection Use CMAKE_SIZEOF_VOID_P EQUAL 8 for 64‑bit detection instead of maintaining an architecture list. This is cleaner and more maintainable. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Georg Richter
georg@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Infer fixes - Resolved a critical loop-ordering bug in ma_get_rset_field_lengths where a null pointer dereference occurred on early iterations. - Applied @infer-ignore annotations to ma_save_session_track_info to silence false-positive leak and dereference warnings stemming from Infer's inability to statically trace custom ma_multi_malloc offsets. Further @infer-ignore annotations were applied to boundary checks in client/server and replication protocol parsing. - Converted error-prone preprocessor assignment macros into type-safe, architecture-independent C helper functions. - Migrated mysql->options.extension from a lazy to an eager allocation pattern inside mysql_init() to eliminate redundant null checks and cleanly unify structural lifecycles. - Updated mysql_close() teardown paths to cleanly free the eager extension container and prevent ASan/LSan leaks. Two separate alerts reside within the replication/binlog API code; these are intentionally deferred as that entire subsystem is slated for a structural rework in an upcoming commit. Excluded existing 'unittest/' and 'external/' directories from the Infer analysis scope via `.inferconfig`. The testing framework intentionally utilizes mock boundaries, structural shortcuts, and sandbox scaffolding to isolate edge cases. Analyzing these files generates significant static analysis noise and false positives without providing actual value to the core runtime stability of the production library client. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40362 #mysql50# mixes up with table names in the table cache and on disk 1. Only allow #mysql50# prefix on table names that can not be decoded from a file name to a table name. It is an error to put this prefix on a name that can be accessed as a valid table name without a prefix. Use `t1` not `#mysql50#t1`, use `a-b` not `#mysql50#a@002db`. 2. Don't allow creation of new tables with the #mysql50# prefix. Except when in SQLCOM_ALTER_DB_UPGRADE - main.upgrade test runs ALTER DATABASE `#mysql50#mysqltest-1` UPGRADE DATA DIRECTORY NAME; This command moves tables from the old db name to the new db name, and some of these tables also have old #mysql50# names. 3. Also don't allow to create such databases, views, partitions, subpartitions, sequences, triggers. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Dave Gosselin
dave.gosselin@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-39397: GROUP_CONCAT of BIT returns decimal, not packed bytes When DISTINCT or ORDER BY is in play, GROUP_CONCAT builds an internal temp table and converts BIT arguments to integers so records can be compared by memcmp. Calling val_str() on that field then returned the decimal form ("0", "1", "3") instead of the packed bit bytes that Field_bit::val_str() emits everywhere else, including the "plain" GROUP_CONCAT path. Override get_str_from_field() for Item_func_group_concat to detect when the argument is BIT, read the value as an integer from the temp table field, and pack it into (max_length + 7) / 8 bytes, mirroring Field_bit::val_str(). This makes DISTINCT and ORDER BY agree with the plain path. Before this change, BIT fields in group_concat were rendered as ASCII which was incorrect and produced the wrong result as described in the ticket. With this fix, we also update the existing test cases to wrap BIT columns with '+0' so the recorded output stays in ASCII format. Now, with this patch and the test case from the ticket, MariaDB and MySQL produce identical resultset of a single row, single column having value 08. By default, a group_concat including BIT fields on MySQL returns a hexified value for its resultset whereas MariaDB requires the hex() function to wrap group_concat for the same result: Setup: create table t1(a bit(2), b varchar(10), c bit); insert into t1 values (1, 'a', 0), (0, 'b', 1); MySQL: mysql> select group_concat(a, c) from t1; +----------------------------------------+ | group_concat(a, c) | +----------------------------------------+ | 0x01002C0001 | +----------------------------------------+ 1 row in set (0.001 sec) MariaDB: MariaDB [test]> select hex(group_concat(a, c)) from t1; +-------------------------+ | hex(group_concat(a, c)) | +-------------------------+ | 01002C0001 | +-------------------------+ 1 row in set (0.001 sec) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Georg Richter
georg@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '3.3' into 3.4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40395 MyISAM/Aria silently truncate extensions from filenames, if too long * move all common fn_format flags that mi_create/maria_create use into one single #define. * simplify (MY_APPEND_EXT is redundant and MY_REPLACE_EXT does nothing when no . is present in the filename) * use MY_SAFE_PATH everywhere (return NULL if too long) * set my_errno= ENAMETOOLONG on too long * abort mi_create/maria_create if returned NULL |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40362 #mysql50# mixes up with table names in the table cache and on disk 1. Only allow #mysql50# prefix on table names that can not be decoded from a file name to a table name. It is an error to put this prefix on a name that can be accessed as a valid table name without a prefix. Use `t1` not `#mysql50#t1`, use `a-b` not `#mysql50#a@002db`. 2. Don't allow creation of new tables with the #mysql50# prefix. Except when in SQLCOM_ALTER_DB_UPGRADE - main.upgrade test runs ALTER DATABASE `#mysql50#mysqltest-1` UPGRADE DATA DIRECTORY NAME; This command moves tables from the old db name to the new db name, and some of these tables also have old #mysql50# names. 3. ALso don't allow to create such databases, views, partitions, subpartitions, sequences, triggers. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MDEV-40311 also fix mariadb-show and mariadb-convert-table-format | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40360 CONNECT REST can pass arguments to curl via HTTP parameter tell curl to not try to interpret url as a parameter |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40426 CONNECT writes unvalidated data from remote server into fixed-len buffer use size-bounded scanf formats |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-39818 backtick in FK names breaks SHOW CREATE TABLE InnoDB used to have two versions of innobase_quote_identifier(). One that handled embedded backticks and one that didn't. Let's use just one implementation that handles backticks. Keep the other one as a helper that writes to FILE but does not implement the quoting logic. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
drrtuy
drrtuy@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fix: MDEV-40379 temporary disable CREATE TEMPORARY TABLE engine=DuckDB b/c of naming temp table naming inconsitencies b/w MariaDB and DuckDB. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40329 Binary_string::qs_append(char): Assertion `str_length + (uint32) (1) <= Alloced_length' failed in AsText Geometry::as_wkt() didn't take into account bytes written into the result string in the recusrive call of get_data_as_wkt(). Gis_geometry_collection::get_data_as_wkt() didn't reserve space at all. Thus nested geometry collections could overflow the buffer. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Dave Gosselin
dave.gosselin@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-39397: Document and clean up dump_leaf_key Add a docblock for dump_leaf_key that describes each parameter and the leaf payload layout, and documents the return values and side effects. Sprinkle inline comments through the body to explain the LIMIT and OFFSET bookkeeping, the dual purpose of result_finalized, why borrowing table->record[1] as scratch space is safe, the offset translation for skipped null bytes, and why the blob_storage truncation flag is cleared after raising ER_CUT_VALUE_GROUP_CONCAT. Implement other code cleanups, too, like dropping the unused tmp2 String object and rename old_length to starting_len so the cut_max_length call reads more directly. Other changes include narrowing loop variables to the loop scope, move declarations next to their first use, and replacing the C casts with static_cast. There should be no behavior changes at this commit. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Georg Richter
georg@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CONC-835: Fix pre-auth memory exhaustion in packet reassembly Enforce a strict 1MB max_allowed_auth_packet limit during the initial connection and authentication handshake. Additionally, add comprehensive checks inside ma_net_read() to block malicious multi-packet streaming vectors that could bypass the threshold by fragmenting oversized payloads into legitimate sub-16MB frames. Returns CR_NET_PACKET_TOO_LARGE if the threshold is breached. Normal operational packet size limits are safely restored post-authentication. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
drrtuy
drrtuy@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fix: DuckDB now optionally read same transactions writes applied to other engines tables. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MDEV-40409 ST_GeomFromText stack overrun on deeply nested GeometryCollection | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Alessandro Vetere
iminelink@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40427 lock_move_reorganize_page() early exit check is useful only with lock elision After MDEV-40128, the early exit check in lock_move_reorganize_page() is useful only with lock elision support. This is because, when lock elision is not supported, TMLockGuard falls back to behave like LockGuard. The same check would be done using LockGuard later, in any case. Hence, the early exit check can be skipped when lock elision is not supported. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Alexander Barkov
bar@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40396 open SYS_REFCURSOR crash, if too many cursors When THD::m_statement_cursor was resized by a call of alloc_dynamic, the memory location of all sp_cursor::result changed. Therefore all members "select_result *Server_side_cursor::select" previously initialized in the constructor to addresses of sp_cursor::result became invalid. Fix: - Removing the member "select_result *result;" from Server_side_cursor. - Passing instead a new "select_result *" parameter to methods open() and fetch() of Server_side_cursor and its descendant Materialized cursor. So now, for example, when sp_cursor::fetch() is called, it executes: server_side_cursor->fetch(&result/*new parameter*/, 1); The address value `&result` is now always correct. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40311 mariadb-dump doesn't always quote identifiers covers: * DROP TRIGGER * CHANGE MASTER * CREATE FUNCTION |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40395 MyISAM/Aria silently truncate extensions from filenames, if too long * move all common fn_format flags that mi_create/maria_create use into one single #define. * simplify (MY_APPEND_EXT is redundant and MY_REPLACE_EXT does nothing when no . is present in the filename) * use MY_SAFE_PATH everywhere (return NULL if too long) * set my_errno= ENAMETOOLONG on too long * abort mi_create/maria_create if returned NULL |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-39776 SHOW CREATE TABLE corrupts `-quoted table options Three problems: 1. Option value specified as `foo bar` was not quoted, printed as foo bar, breaking CREATE TABLE. 2. Option value that included */ was printed as is, in unknown options when the whole option was commented out, this broke the comment: /* opt='val*/ue' */ 3. Option names can include */ too, `opt*/ion`=1 Fix: simplify value printing, ignore the original quoting, always print the value quoted as a string. Break comment markers with an escape (as *\/) if inside a comment. As \-escapes don't work inside, backticks, we cannot use `-quoting for option values at all. For the same reason we cannot allow */ inside option names, thus let's only allow keywords for option names and reject fancy names even if IGNORE_BAD_TABLE_OPTIONS is in force. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Georg Richter
georg@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CONC-821: Preserve bound lengths for all types when fetching NULL values Previously, during a statement fetch, encountering a NULL value would reset the bound length of the column to 0. This behavior is incorrect for two reasons: 1. Numerical and temporal types have fixed buffer sizes that should remain constant. 2. For variable-length types (like strings and BLOBs), a length of 0 specifically denotes an empty string/buffer, not a NULL value. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MDEV-40409 ST_GeomFromText stack overrun on deeply nested GeometryCollection | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Georg Richter
georg@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fixed 2 bugs introduced by infer fixes: - Fixed resut set length calculation - Initialize mysql->options in mysql_close_options to avoid potential double free. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Georg Richter
georg@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fix test conc_821: Don't check NULL indicator for timestamp column, since the result (NULL or NOW()) depends on server setting. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40426 CONNECT writes unvalidated data from remote server into fixed-len buffer use size-bounded scanf formats |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||