summaryrefslogtreecommitdiff
path: root/client
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-30205 Move /usr/share/mysql to /usr/share/mariadbDaniel Black2023-04-111-2/+2
| | | | | | | | | These are mainly internal files so is a low impact change. The few scripts/mysql*sql where renames to mariadb_* prefix on the name. mysql-test renamed to mariadb-test in the final packages
* Merge 10.11 into 11.0Marko Mäkelä2023-02-165-54/+56
|\
| * Merge 10.10 into 10.11Marko Mäkelä2023-02-161-2/+2
| |\
| | * Merge 10.9 into 10.10Marko Mäkelä2023-02-161-2/+2
| | |\
| | | * Merge 10.8 into 10.9Marko Mäkelä2023-02-161-2/+2
| | | |\
| | | | * Merge 10.6 into 10.8Marko Mäkelä2023-02-101-2/+2
| | | | |\
| | | | | * Merge 10.5 into 10.6Marko Mäkelä2023-02-101-2/+2
| | | | | |\
| | | | | | * Merge 10.4 into 10.5Marko Mäkelä2023-02-101-2/+2
| | | | | | |\
| | | | | | | * Apply clang-tidy to remove empty constructors / destructorsVicențiu Ciorbaru2023-02-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is the result of running run-clang-tidy -fix -header-filter=.* -checks='-*,modernize-use-equals-default' . Code style changes have been done on top. The result of this change leads to the following improvements: 1. Binary size reduction. * For a -DBUILD_CONFIG=mysql_release build, the binary size is reduced by ~400kb. * A raw -DCMAKE_BUILD_TYPE=Release reduces the binary size by ~1.4kb. 2. Compiler can better understand the intent of the code, thus it leads to more optimization possibilities. Additionally it enabled detecting unused variables that had an empty default constructor but not marked so explicitly. Particular change required following this patch in sql/opt_range.cc result_keys, an unused template class Bitmap now correctly issues unused variable warnings. Setting Bitmap template class constructor to default allows the compiler to identify that there are no side-effects when instantiating the class. Previously the compiler could not issue the warning as it assumed Bitmap class (being a template) would not be performing a NO-OP for its default constructor. This prevented the "unused variable warning".
| | | | | | | * Merge branch '10.3' into 10.4Oleksandr Byelkin2023-01-284-51/+53
| | | | | | | |\
| * | | | | | | \ Merge branch '10.10' into 10.11Oleksandr Byelkin2023-01-314-52/+54
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | Merge branch '10.9' into 10.10Oleksandr Byelkin2023-01-314-52/+54
| | |\ \ \ \ \ \ \ | | | |/ / / / / /
| | | * | | | | | Merge branch '10.8' into 10.9Oleksandr Byelkin2023-01-314-52/+54
| | | |\ \ \ \ \ \ | | | | |/ / / / /
| | | | * | | | | Merge branch '10.7' into 10.8Oleksandr Byelkin2023-01-314-52/+54
| | | | |\ \ \ \ \
| | | | | * \ \ \ \ Merge branch '10.6' into 10.7Oleksandr Byelkin2023-01-314-52/+54
| | | | | |\ \ \ \ \ | | | | | | |/ / / /
| | | | | | * | | | Merge branch '10.5' into 10.6Oleksandr Byelkin2023-01-314-52/+54
| | | | | | |\ \ \ \ | | | | | | | |/ / /
| | | | | | | * | | Merge branch '10.4' into 10.5Oleksandr Byelkin2023-01-274-51/+53
| | | | | | | |\ \ \
| | | | | | | | * \ \ Merge branch '10.3' into 10.4Oleksandr Byelkin2023-01-264-51/+53
| | | | | | | | |\ \ \ | | | | | | | | | |/ / | | | | | | | | |/| / | | | | | | | | | |/
| | | | | | | | | * Minimize unsafe C functions usage - replace strcat() and strcpy() (and ↵Mikhail Chalov2023-01-203-51/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | strncat() and strncpy()) with custom safe_strcat() and safe_strcpy() functions The MariaDB code base uses strcat() and strcpy() in several places. These are known to have memory safety issues and their usage is discouraged. Common security scanners like Flawfinder flags them. In MariaDB we should start using modern and safer variants on these functions. This is similar to memory issues fixes in 19af1890b56c6c147c296479bb6a4ad00fa59dbb and 9de9f105b5cb88249acc39af73d32af337d6fd5f but now replace use of strcat() and strcpy() with safer options strncat() and strncpy(). However, add '\0' forcefully to make sure the result string is correct since for these two functions it is not guaranteed what new string will be null-terminated. Example: size_t dest_len = sizeof(g->Message); strncpy(g->Message, "Null json tree", dest_len); strncat(g->Message, ":", sizeof(g->Message) - strlen(g->Message)); size_t wrote_sz = strlen(g->Message); size_t cur_len = wrote_sz >= dest_len ? dest_len - 1 : wrote_sz; g->Message[cur_len] = '\0'; 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. I am contributing on behalf of my employer Amazon Web Services -- Reviewer and co-author Vicențiu Ciorbaru <vicentiu@mariadb.org> -- Reviewer additions: * The initial function implementation was flawed. Replaced with a simpler and also correct version. * Simplified code by making use of snprintf instead of chaining strcat. * Simplified code by removing dynamic string construction in the first place and using static strings if possible. See connect storage engine changes.
| | | | | | | | | * Add my_afree after my_alloca in early return caseEric Herman2023-01-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code already had a call to `my_afree` in the normal return case, but failed to do so in the early return case.
| | | | | | | | | * MDEV-29817: Issues with handling options for SSL CRLs (and some others)Julius Goryavsky2022-11-222-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the correct setting of the "--ssl-verify-server-cert" option in the client-side utilities such as mysqlcheck and mysqlslap, as well as the correct setting of the "--ssl-crl" option when executing queries on the slave side, and also add the correct option codes in the "sslopts-logopts.h" file (in the latter case, incorrect values are not a problem right now, but may cause subtle test failures in the future, if the option handling code changes).
| | | | | | | | * | MDEV-29817: Issues with handling options for SSL CRLs (and some others)Julius Goryavsky2022-11-223-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the correct setting of the "--tls-version" and "--ssl-verify-server-cert" options in the client-side utilities such as mysqltest, mysqlcheck and mysqlslap, as well as the correct setting of the "--ssl-crl" option when executing queries on the slave side, and also the correct option codes in the "sslopts-logopts.h" file (in the latter case, incorrect values are not a problem right now, but may cause subtle test failures in the future, if the option handling code changes).
* | | | | | | | | | Merge 11.0-selectivity into 11.0Sergei Petrunia2023-02-152-6/+56
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | MDEV-30327 Client crashes in print_last_query_costMonty2023-02-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed by calling init_pager() before tee_fprintf()
| * | | | | | | | | | Changing all cost calculation to be given in millisecondsMonty2023-02-021-6/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it easier to compare different costs and also allows the optimizer to optimizer different storage engines more reliably. - Added tests/check_costs.pl, a tool to verify optimizer cost calculations. - Most engine costs has been found with this program. All steps to calculate the new costs are documented in Docs/optimizer_costs.txt - User optimizer_cost variables are given in microseconds (as individual costs can be very small). Internally they are stored in ms. - Changed DISK_READ_COST (was DISK_SEEK_BASE_COST) from a hard disk cost (9 ms) to common SSD cost (400MB/sec). - Removed cost calculations for hard disks (rotation etc). - Changed the following handler functions to return IO_AND_CPU_COST. This makes it easy to apply different cost modifiers in ha_..time() functions for io and cpu costs. - scan_time() - rnd_pos_time() & rnd_pos_call_time() - keyread_time() - Enhanched keyread_time() to calculate the full cost of reading of a set of keys with a given number of ranges and optional number of blocks that need to be accessed. - Removed read_time() as keyread_time() + rnd_pos_time() can do the same thing and more. - Tuned cost for: heap, myisam, Aria, InnoDB, archive and MyRocks. Used heap table costs for json_table. The rest are using default engine costs. - Added the following new optimizer variables: - optimizer_disk_read_ratio - optimizer_disk_read_cost - optimizer_key_lookup_cost - optimizer_row_lookup_cost - optimizer_row_next_find_cost - optimizer_scan_cost - Moved all engine specific cost to OPTIMIZER_COSTS structure. - Changed costs to use 'records_out' instead of 'records_read' when recalculating costs. - Split optimizer_costs.h to optimizer_costs.h and optimizer_defaults.h. This allows one to change costs without having to compile a lot of files. - Updated costs for filter lookup. - Use a better cost estimate in best_extension_by_limited_search() for the sorting cost. - Fixed previous issues with 'filtered' explain column as we are now using 'records_out' (min rows seen for table) to calculate filtering. This greatly simplifies the filtering code in JOIN_TAB::save_explain_data(). This change caused a lot of queries to be optimized differently than before, which exposed different issues in the optimizer that needs to be fixed. These fixes are in the following commits. To not have to change the same test case over and over again, the changes in the test cases are done in a single commit after all the critical change sets are done. InnoDB changes: - Updated InnoDB to not divide big range cost with 2. - Added cost for InnoDB (innobase_update_optimizer_costs()). - Don't mark clustered primary key with HA_KEYREAD_ONLY. This will prevent that the optimizer is trying to use index-only scans on the clustered key. - Disabled ha_innobase::scan_time() and ha_innobase::read_time() and ha_innobase::rnd_pos_time() as the default engine cost functions now works good for InnoDB. Other things: - Added --show-query-costs (\Q) option to mysql.cc to show the query cost after each query (good when working with query costs). - Extended my_getopt with GET_ADJUSTED_VALUE which allows one to adjust the value that user is given. This is used to change cost from microseconds (user input) to milliseconds (what the server is internally using). - Added include/my_tracker.h ; Useful include file to quickly test costs of a function. - Use handler::set_table() in all places instead of 'table= arg'. - Added SHOW_OPTIMIZER_COSTS to sys variables. These are input and shown in microseconds for the user but stored as milliseconds. This is to make the numbers easier to read for the user (less pre-zeros). Implemented in 'Sys_var_optimizer_cost' class. - In test_quick_select() do not use index scans if 'no_keyread' is set for the table. This is what we do in other places of the server. - Added THD parameter to Unique::get_use_cost() and check_index_intersect_extension() and similar functions to be able to provide costs to called functions. - Changed 'records' to 'rows' in optimizer_trace. - Write more information to optimizer_trace. - Added INDEX_BLOCK_FILL_FACTOR_MUL (4) and INDEX_BLOCK_FILL_FACTOR_DIV (3) to calculate usage space of keys in b-trees. (Before we used numeric constants). - Removed code that assumed that b-trees has similar costs as binary trees. Replaced with engine calls that returns the cost. - Added Bitmap::find_first_bit() - Added timings to join_cache for ANALYZE table (patch by Sergei Petrunia). - Added records_init and records_after_filter to POSITION to remember more of what best_access_patch() calculates. - table_after_join_selectivity() changed to recalculate 'records_out' based on the new fields from best_access_patch() Bug fixes: - Some queries did not update last_query_cost (was 0). Fixed by moving setting thd->...last_query_cost in JOIN::optimize(). - Write '0' as number of rows for const tables with a matching row. Some internals: - Engine cost are stored in OPTIMIZER_COSTS structure. When a handlerton is created, we also created a new cost variable for the handlerton. We also create a new variable if the user changes a optimizer cost for a not yet loaded handlerton either with command line arguments or with SET @@global.engine.optimizer_cost_variable=xx. - There are 3 global OPTIMIZER_COSTS variables: default_optimizer_costs The default costs + changes from the command line without an engine specifier. heap_optimizer_costs Heap table costs, used for temporary tables tmp_table_optimizer_costs The cost for the default on disk internal temporary table (MyISAM or Aria) - The engine cost for a table is stored in table_share. To speed up accesses the handler has a pointer to this. The cost is copied to the table on first access. If one wants to change the cost one must first update the global engine cost and then do a FLUSH TABLES. This was done to be able to access the costs for an open table without any locks. - When a handlerton is created, the cost are updated the following way: See sql/keycaches.cc for details: - Use 'default_optimizer_costs' as a base - Call hton->update_optimizer_costs() to override with the engines default costs. - Override the costs that the user has specified for the engine. - One handler open, copy the engine cost from handlerton to TABLE_SHARE. - Call handler::update_optimizer_costs() to allow the engine to update cost for this particular table. - There are two costs stored in THD. These are copied to the handler when the table is used in a query: - optimizer_where_cost - optimizer_scan_setup_cost - Simply code in best_access_path() by storing all cost result in a structure. (Idea/Suggestion by Igor)
| * | | | | | | | | | Make --ps-protocol command work in --ps-protocol modeSergei Petrunia2023-02-021-0/+1
| | | | | | | | | | |
* | | | | | | | | | | MDEV-30498 Rename mysql_upgrade state file to mariadb_upgradeChristian Gonzalez2023-02-071-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renames the upgrade state file, and ensures the old file is properly removed when `mariadb-upgrade` tool is executed. 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. I am contributing on behalf of my employer Amazon Web Services, Inc.
* | | | | | | | | | | MDEV-30128 remove support for 5.1- replication eventsSergei Golubchik2023-02-051-317/+16
|/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | including patches from Andrei Elkin
* | | | | | | | | | MDEV-26548: replace .mysql_history with .mariadb_historyDaniel Black2023-01-241-13/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fall back to using .mysql_history if .mariadb_history isn't present and .mysql_history is present. Also replace the use of MYSQL_HISTFILE as an environment variable with MARIADB_HISTFILE and fall back to using MYSQL_HISTFILE if MARIADB_HISTFILE isn't present.
* | | | | | | | | | MDEV-30153 ad hoc client versions are confusingSergei Golubchik2023-01-191-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | try to make them less confusing for users. Hopefully, if the version string will be changed like - mariadb Ver 15.1 Distrib 10.11.2-MariaDB for Linux (x86_64) + mariadb from 10.11.2-MariaDB, client 15.1 for Linux (x86_64) users will be less inclined to reply "15.1" to the question "what mariadb version are you using?"
* | | | | | | | | | unify client/tool version stringSergei Golubchik2023-01-1912-82/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it should now always be /path/to/exe Ver <tool version> Distrib <server version> for <OS> (<ARCH>) in all tools and clients
* | | | | | | | | | Merge 10.11 into 11.0Marko Mäkelä2023-01-111-4/+8
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / /
| * | | | | | | | | MDEV-29889 mariadb-dump --tab --header is slowDaniel Black2023-01-031-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --header applied an ORDER BY to ensure that the header row was the first row in the output given UNION ALL doesn't in the standard enforce the order. We change that now only add the ORDER BY if --order-by-primary is used. An assumption that if UNION ALL change to a different behaviour the resulting mysqldump-header test may also change.
* | | | | | | | | | 11.0 branchSergei Golubchik2022-12-201-0/+1
|/ / / / / / / / /
* | | | | | | | | Merge 10.10 into 10.11Marko Mäkelä2022-12-073-0/+7
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / /
| * | | | | | | | Merge 10.9 into 10.10Marko Mäkelä2022-12-073-0/+7
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | Merge 10.8 into 10.9Marko Mäkelä2022-12-073-0/+7
| | |\ \ \ \ \ \ \ | | | |/ / / / / /
| | | * | | | | | Merge 10.7 into 10.8Marko Mäkelä2022-12-073-0/+7
| | | |\ \ \ \ \ \ | | | | |/ / / / /
| | | | * | | | | Merge 10.6 into 10.7Marko Mäkelä2022-12-073-0/+7
| | | | |\ \ \ \ \ | | | | | |/ / / /
| | | | | * | | | Merge 10.5 into 10.6Marko Mäkelä2022-12-053-0/+7
| | | | | |\ \ \ \ | | | | | | |/ / /
| | | | | | * | | Merge 10.4 into 10.5Jan Lindström2022-11-303-0/+7
| | | | | | | | |
* | | | | | | | | Merge 10.10 into 10.11Marko Mäkelä2022-11-211-28/+41
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / /
| * | | | | | | | Merge 10.9 into 10.10Marko Mäkelä2022-11-211-28/+41
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | Merge 10.8 into 10.9Marko Mäkelä2022-11-101-28/+41
| | |\ \ \ \ \ \ \ | | | |/ / / / / /
| | | * | | | | | Merge 10.7 into 10.8Marko Mäkelä2022-11-091-28/+41
| | | |\ \ \ \ \ \ | | | | |/ / / / /
| | | | * | | | | Merge 10.6 into 10.7Marko Mäkelä2022-11-091-28/+41
| | | | |\ \ \ \ \ | | | | | |/ / / /
| | | | | * | | | MDEV-29822 - make mysqltest fail loudly when out of memoryVladislav Vaintroub2022-11-081-28/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When allocation failed, fail consistently with error message and abort() by using flags MY_WME|MY_FAE with my_malloc() and friends. This ensures that better diagnostic information is available when mysqltest fails.
* | | | | | | | | Merge branch '10.10' into 10.11Oleksandr Byelkin2022-11-022-7/+15
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / /
| * | | | | | | | Merge branch '10.9' into 10.10Oleksandr Byelkin2022-11-011-0/+5
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | Merge branch '10.8' into 10.9Oleksandr Byelkin2022-11-011-0/+5
| | |\ \ \ \ \ \ \ | | | |/ / / / / /