summaryrefslogtreecommitdiff
path: root/libmariadb
Commit message (Collapse)AuthorAgeFilesLines
* Merge 10.5 into 10.6Marko Mäkelä2023-01-171-0/+0
|\
| * New CC 3.1Oleksandr Byelkin2023-01-161-0/+0
| |
| * MDEV-16128: Server crash in Item_func::print_op on 2nd execution of PSDmitry Shulga2022-10-171-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some queries that involve tables with different but convertible character sets for columns taking part in the query, repeatable execution of such queries in PS mode or as part of a stored routine would result in server abnormal termination. For example, CREATE TABLE t1 (a2 varchar(10)); CREATE TABLE t2 (u1 varchar(10) CHARACTER SET utf8); CREATE TABLE t3 (u2 varchar(10) CHARACTER SET utf8); PREPARE stmt FROM "SELECT t1.* FROM (t1 JOIN t2 ON (t2.u1 = t1.a2)) WHERE (EXISTS (SELECT 1 FROM t3 WHERE t3.u2 = t1.a2))"; EXECUTE stmt; EXECUTE stmt; <== Running this prepared statement the second time results in server crash. The reason of server crash is that an instance of the class Item_func_conv_charset, that created for conversion of a column from one character set to another, is allocated on execution memory root but pointer to this instance is stored in an item placed on prepared statement memory root. Below is calls trace to the place where an instance of the class Item_func_conv_charset is created. setup_conds Item_func::fix_fields Item_bool_rowready_func2::fix_length_and_dec Item_func::setup_args_and_comparator Item_func_or_sum::agg_arg_charsets_for_comparison Item_func_or_sum::agg_arg_charsets Item_func_or_sum::agg_item_set_converter Item::safe_charset_converter And the following trace shows the place where a pointer to the instance of the class Item_func_conv_charset is passed to the class Item_func_eq, that is created on a memory root of the prepared statement. Prepared_statement::execute mysql_execute_command execute_sqlcom_select handle_select mysql_select JOIN::optimize JOIN::optimize_inner convert_join_subqueries_to_semijoins convert_subq_to_sj To fix the issue, switch to the Prepared Statement memory root before calling the method Item_func::setup_args_and_comparator in order to place any created Items on permanent memory root. It may seem that such approach would result in a memory leakage in case the parameter marker '?' is used in the query as in the following example PREPARE stmt FROM "SELECT t1.* FROM (t1 JOIN t2 ON (t2.u1 = t1.a2)) WHERE (EXISTS (SELECT 1 FROM t3 WHERE t3.u2 = ?))"; EXECUTE stmt USING convert('A' using latin1); but it wouldn't since for such case any of the parameter markers is treated as a constant and no subquery to semijoin optimization is performed.
| * new 3.1Oleksandr Byelkin2022-10-161-0/+0
| |
* | new CC v3.3Oleksandr Byelkin2022-10-161-0/+0
| |
* | update C/C, fix srpm build failures on fedoraSergei Golubchik2022-09-261-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | krb5-config (used by FindGSSAPI) returns `-lkrb5 -lk5crypto -lcom_err` but only libkrb5 is actually used by the gssapi plugin. The other two result in unneeded dependencies unless they're tagged optional when linked with --as-needed. Some distributions use --as-needed automatically, which causes our builds to differ from srpm builds, introducing failures in buildbot. Let's always use --as-needed for gssapi plugin
* | New CCOleksandr Byelkin2022-08-031-0/+0
| |
* | Merge branch '10.5' into bb-10.6-releaseOleksandr Byelkin2022-08-031-0/+0
|\ \ | |/
| * CC 3.1 updateGeorg Richter2022-07-291-0/+0
| | | | | | | | | | | | | | | | | | Test fixes: Since fix for CONC-603 (wrong error handling in TLS read/write) in case of a read/write error client doesn't return always error 2013 (server has gone away), so in addition we need to check for error 2026 (TLS/SSL error) and 5014 (write error).
* | Merge 10.5 into 10.6Marko Mäkelä2022-07-011-0/+0
|\ \ | |/
| * Fix most clang-15 -Wunused-but-set-variableMarko Mäkelä2022-07-011-0/+0
| | | | | | | | | | | | Also, refactor trx_i_s_common_fill_table() to remove dead code. Warnings about yynerrs in Bison-generated yyparse() will remain for now.
| * New CC 3.1Oleksandr Byelkin2022-05-021-0/+0
| |
| * New C/C versionOleksandr Byelkin2022-04-261-0/+0
| | | | | | | | *again* after 388032e9905 has reverted 25ccf8f6dcf by mistake
| * MDEV-27697. Removed a false assert.Andrei2022-04-261-0/+0
| |
| * New CC versionOleksandr Byelkin2022-04-261-0/+0
| |
| * new CCOleksandr Byelkin2022-01-261-0/+0
| |
| * MDEV-27109 mysql_config mariadb_config lists non existant -lmariadbAlexey Bychko2022-01-141-0/+0
| | | | | | | | | | added dependency devel->shared and conflict with previous versions update C/C 3.1 with the corresponding C/C part of the fix
| * Update libmariadbMarko Mäkelä2021-10-201-0/+0
| |
* | C/C 3.3Sergei Golubchik2022-06-291-0/+0
| |
* | New CC (v3.2)Oleksandr Byelkin2022-05-081-0/+0
| |
* | new CC 3.2Oleksandr Byelkin2022-01-261-0/+0
| |
* | Merge 10.5 into 10.6Marko Mäkelä2021-10-211-0/+0
|\ \
| * | MDEV-19129: Xcode compatibility update: update libmariadb submodulebb-10.5-MDEV-19129Sergei Krivonos2021-10-191-0/+0
| | |
* | | Merge 10.5 into 10.6Marko Mäkelä2021-10-061-0/+0
|\ \ \ | |/ /
| * | Update libmariadbMarko Mäkelä2021-10-061-0/+0
| | |
* | | Merge 10.5 into 10.6Marko Mäkelä2021-10-051-0/+0
|\ \ \ | |/ /
| * | MDEV-26761: main.mysql_client_test fails with MemorySanitizerMarko Mäkelä2021-10-051-0/+0
| |/ | | | | | | Updated libmariadb and enable the test.
| * Update libmariadbMarko Mäkelä2021-09-241-0/+0
| |
* | Merge 10.5 into 10.6Marko Mäkelä2021-09-241-0/+0
|\ \ | |/
* | After-merge fix e94172c2a07f21118d26e4cde0c48a2fd536cf06: unit.conc_cursorMarko Mäkelä2021-09-011-0/+0
| |
* | Merge 10.5 into 10.6Marko Mäkelä2021-08-311-0/+0
|\ \ | |/
| * Update libmariadbMarko Mäkelä2021-08-301-0/+0
| |
* | Merge branch '10.5' into 10.6Oleksandr Byelkin2021-08-021-0/+0
|\ \ | |/
| * latest C/CSergei Golubchik2021-07-271-0/+0
| |
| * Update libmariadbMarko Mäkelä2021-07-221-0/+0
| |
| * fix libmariadb compilation, on GCC.Vladislav Vaintroub2021-07-201-0/+0
| |
| * Update libmariadbVladislav Vaintroub2021-07-201-0/+0
| |
| * update libmariadbVladislav Vaintroub2021-06-141-0/+0
| |
* | Update libmariadbMarko Mäkelä2021-07-221-0/+0
| |
* | Update libmariadbMarko Mäkelä2021-07-201-0/+0
| |
* | update C/C to 3.2.3mariadb-10.6.3Sergei Golubchik2021-07-051-0/+0
| |
* | update C/Cmariadb-10.6.2bb-10.6-MDEV-16708-4Sergei Golubchik2021-06-171-0/+0
| |
* | update C/C to 3.2.2-rcSergei Golubchik2021-06-151-0/+0
| |
* | Merge 10.5 into 10.6Marko Mäkelä2021-05-071-0/+0
|\ \ | |/
| * new CCOleksandr Byelkin2021-05-031-0/+0
| |
| * Revert "update CC"Nikita Malyavin2021-04-301-0/+0
| | | | | | | | This reverts commit 8880dff2d90ea8a8279cbcb466f90e0b2fdfcff5.
| * update CCNikita Malyavin2021-04-291-0/+0
| |
| * MDEV-25232 update libmariadbVladislav Vaintroub2021-04-281-0/+0
| |
* | Merge 10.5 into 10.6Marko Mäkelä2021-04-211-0/+0
|\ \ | |/
| * update C/CSergei Golubchik2021-04-151-0/+0
| |