summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* InnoDB: send "corrupted" error to the user, not only to the logpreview-10.7-MDEV-12933-provider-pluginsSergei Golubchik2021-10-2722-94/+99
|
* mariabackup: rename encryption_plugin -> xb_pluginSergei Golubchik2021-10-276-26/+24
| | | | | | because plugin code is not only about encryption anymore (also loads provider plugins), and xb_ prefix prevents name clashes with the server code (that mariabackup links with).
* MDEV-26794 MariaBackup does not recognize added providers upon prepare of ↵Sergei Golubchik2021-10-275-9/+66
| | | | | | incremental backup prefer backup-my.cnf from the incremental-dir over the one in target-dir
* MDEV-26794 MariaBackup does not recognize added providers upon prepare of ↵Sergei Golubchik2021-10-2713-23/+23
| | | | | | | | incremental backup * Change InnoDB message text to mention compression. * make "not loaded compression provider" warning to be issued also when current_thd == 0.
* MDEV-26791 MariaBackup logs compression provider plugins as encryption pluginSergei Golubchik2021-10-271-5/+4
|
* MDEV-26773 MariaBackup backup does not work with compression providersSergei Golubchik2021-10-274-50/+62
| | | | make mariabackup to load not only encryption but also provider plugins.
* MDEV-26774 Compression provider unloading at runtime has no effect but ↵Sergei Golubchik2021-10-273-1/+22
| | | | doesn't produce a warning
* Avoid ASAN odr errorSergei Golubchik2021-10-275-0/+20
| | | | | | | | like ==31311==ERROR: AddressSanitizer: odr-violation (0x7f3cda2e1480): [1] size=8 'provider_service_lz4' libservices/provider_service_lz4.c:14:17 [2] size=8 'provider_service_lz4' sql/sql_plugin_services.ic:301:33
* enable innodb compression tests that were disabled by mistakeSergei Golubchik2021-10-275-0/+9
|
* MDEV-12933 sort out the compression library chaosKartik Soneji2021-10-2794-451/+1954
| | | | | | | | | | | | | | | | | | | | | | | | bzip2/lz4/lzma/lzo/snappy compression is now provided via *services* they're almost like normal services, but in include/providers/ and they're supposed to provide exactly the same interface as original compression libraries (but not everything, only enough of if for the code to compile). the services are implemented via dummy functions that return corresponding error values (LZMA_PROG_ERROR, LZO_E_INTERNAL_ERROR, etc). the actual compression libraries are linked into corresponding provider plugins. Providers are daemon plugins that when loaded replace service pointers to point to actual compression functions. That is, run-time dependency on compression libraries is now on plugins, and the server doesn't need any compression libraries to run, but will automatically support the compression when a plugin is loaded. InnoDB and Mroonga use compression plugins now. RocksDB doesn't, because it comes with standalone utility binaries that cannot load plugins.
* Change Find*.cmake modules to match conventionsKartik Soneji2021-10-2711-46/+65
|
* plugin can signal that it cannot be unloaded by failing deinit()Sergei Golubchik2021-10-2710-150/+57
| | | | | | | | | | | | if plugin->deinit() returns a failure, it is no longer ignored, it means that the plugin isn't ready to be unloaded from memory yet. So it's marked "dying", deinitialized as much as possible, but stays in memory until shutdown. also: * increment MARIA_PLUGIN_INTERFACE_VERSION * rewrite ha_rocksdb to use the new approach, update the test
* show "dying" state in I_S.PLUGINSSergei Golubchik2021-10-273-5/+9
|
* cleanup: plugin unloadSergei Golubchik2021-10-271-18/+11
| | | | * reduce code duplication
* Merge 10.6 into 10.7Marko Mäkelä2021-10-272-4/+4
|\
| * Merge 10.5 into 10.6Marko Mäkelä2021-10-272-4/+4
| |\
| | * Merge 10.4 into 10.5Marko Mäkelä2021-10-272-4/+4
| | |\
| | | * MDEV-18543 fixup: Fix 32-bit buildsMarko Mäkelä2021-10-273-9/+9
| | | |
* | | | Merge 10.6 into 10.7Marko Mäkelä2021-10-2747-270/+1259
|\ \ \ \ | |/ / /
| * | | Merge 10.5 into 10.6Marko Mäkelä2021-10-2747-277/+1266
| |\ \ \ | | |/ /
| | * | Merge 10.4 into 10.5st-10.5-mergeMarko Mäkelä2021-10-2732-221/+1092
| | |\ \ | | | |/
| | | * MDEV-22380 Assertion `name.length == strlen(name.str)' failed .. ↵bb-10.4-bar-MDEV-22380Alexander Barkov2021-10-272-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | w/optimizer_trace enabled Adding 10.4 specific tests.
| | | * Merge remote-tracking branch 'origin/10.3' into 10.4Alexander Barkov2021-10-2715-56/+346
| | | |\
| | | | * MDEV-22380: Assertion `name.length == strlen(name.str)' failed ...bb-10.3-bar-MDEV-22380Alexander Barkov2021-10-2715-56/+346
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also fixes: MDEV-25399 Assertion `name.length == strlen(name.str)' failed in Item_func_sp::make_send_field Also fixes a problem that in this scenario: SET NAMES binary; SELECT 'some not well-formed utf8 string'; the auto-generated column name copied the binary string value directly to the Item name, without checking utf8 well-formedness. After this change auto-generated column names work as follows: - Zero bytes 0x00 are copied to the name using HEX notation - In case of "SET NAMES binary", all bytes sequences that do not make well-formed utf8 characters are copied to the name using HEX notation.
| | | * | MDEV-18543 IMPORT TABLESPACE fails after instant DROP COLUMNbb-10.4-MDEV-18543-instant-import-bugsEugene Kosov2021-10-2615-160/+693
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ALTER TABLE IMPORT doesn't properly handle instant alter metadata. This patch makes IMPORT read, parse and apply instant alter metadata at the very beginning of operation. So, cases when source table has some metadata and destination table doesn't have it now works fine. DISCARD already removes instant metadata so importing normal table into instant table worked fine before this patch. decrypt_decompress(): decrypts and decompresses page if needed handle_instant_metadata(): this should be the first thing to read source table. Basically, it applies instant metadata to a destination dict_table_t object. This is the first thing to read FSP flags so all possible checks of it were moved to this function. PageConverter::update_index_page(): it doesn't now read instant metadata. This logic were moved into handle_instant_metadata() row_import::match_flags(): this is a first part row_import::match_schema(). As a separate function it's used by handle_instant_metadata(). fil_space_t::is_full_crc32_compressed(): added convenient function ha_innobase::discard_or_import_tablespace(): do not reload table definition to read instant metadata because handle_instant_metadata() does it better. The reverted code was originally added in 4e7ee166a9c76eb3546356aabfd2dbc759671cd0 ANONYMOUS_VAR: this is a handy thing to use along with make_scope_exit() full_crc32_import.test shows different results, because no dict_table_close() and dict_table_open_on_id() happens. Thus, SHOW CREATE TABLE shows a little bit older table definition.
| | * | | MDEV-26732 Assertion `0' failed in Item::val_nativebb-10.5-bar-MDEV-26732Alexander Barkov2021-10-264-0/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also fixes MDEV-24619 Wrong result or Assertion `0' in Item::val_native / Type_handler_inet6::Item_val_native_with_conversion Type_handler_inet6::create_item_copy() created a generic Item_copy_string, which does not implement val_native() - it has a dummy implementation with DBUG_ASSERT(0), which made the server crash. Fix: - Adding a new class Type_handler_inet6 which implements val_native(). - Fixing Type_handler_inet6::create_item_copy() to make Item_copy_inet6 instead of Item_copy_string.
| | * | | MDEV-22552: mytop packagingbb-10.5-anel-MDEV-22552Anel Husakovic2021-10-254-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `mytop` and `my_print_defaults` for RPM - Add `mytop` to client package - Add man page of `my_print_defaults` to client package - Add dependencies for RPMs - Remove old comment - Remove dead link Reviewed by: serg@mariadb.com
| | * | | MDEV-22552: mytop packagingBernard Spil2021-10-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make `my_print_defaults` a client app (required by `mytop`). Closes #1566 Reviewed by: serg@mariadb.com, anel@mariadb.org
| | * | | Merge 10.4 into 10.5Marko Mäkelä2021-10-219-50/+50
| | |\ \ \ | | | |/ /
| | | * | Merge 10.3 into 10.4st-10.4-mergeMarko Mäkelä2021-10-219-50/+50
| | | |\ \ | | | | |/
| | | | * Merge 10.2 into 10.3Marko Mäkelä2021-10-219-47/+48
| | | | |\
| | | | | * MDEV-19129: Xcode compatibility update: mysql-test-run.pl: rename ↵Sergei Krivonos2021-10-218-45/+46
| | | | | | | | | | | | | | | | | | | | | | | | $opt_vs_config to $multiconfig to use with other cmake multiconfig generators
| | | | | * MDEV-19522 fixup: Use correct printf formatMarko Mäkelä2021-10-211-2/+2
| | | | | |
* | | | | | MDEV-22166 fixup: Undefined reference to WFRM_WRITE_EXTRACTEDMarko Mäkelä2021-10-271-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that WFRM_WRITE_EXTRACTED was added only in a debug assertion and in a comment, as part of commit b7bba721eee42af892178a747fa72a6fc2975c94.
* | | | | | MDEV-22166: Fix cmake -DPLUGIN_PARTITION=NOMarko Mäkelä2021-10-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql_write_frm(): Correctly enclose code inside #ifdef WITH_PARTITION_STORAGE_ENGINE so that cmake -DPLUGIN_PARTITION=NO builds can succeed. This was broken in commit b7bba721eee42af892178a747fa72a6fc2975c94.
* | | | | | MDEV-26844: DELETE returns ROW_NUMBER=1 for every row uponbb-10.7-row_numberRucha Deodhar2021-10-263-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ER_TRUNCATED_WRONG_VALUE Part 1: Fix for DELETE without ORDER BY Analysis: m_current_row_for_warning doesn't increment and assumes default value which is then used by ROW_NUMBER. Fix: Increment m_current_row_for_warning for each processed row.
* | | | | | MDEV-26830: Wrong ROW_NUMBER in diagnostics upon INSERT IGNORE withRucha Deodhar2021-10-263-2/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CHECK violation Analysis: When there is constraint fail we return non-zero value for view_check_option(). So we continue the loop which doesn't increment the counter because it increments at the end of the loop. Fix: Increment m_current_row_for_warning() at the beginning of loop. This will also fix similar bugs if any, about counter not incrementing correctly because of continue.
* | | | | | MDEV-26841: ROW_NUMBER is not set and differs from the message uponRucha Deodhar2021-10-263-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ER_WRONG_VALUE_COUNT_ON_ROW for the 1st row Analysis: Current row for warning does not increment for prepare phase Fix: Increment current row for warning if number of fields in the table and row values dont match and number of values in rows is greater than number of fields
* | | | | | MDEV-26842: ROW_NUMBER is not set and differs from the message upon ↵Rucha Deodhar2021-10-263-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WARN_DATA_TRUNCATED produced by inplace ALTER Analysis: When row number is passed as parameter to set_warning() it is only used for error/warning text but m_current_row_for_warning is not updated. Hence default value of m_current_row_for_warning is assumed. Fix: update m_current_row_for_warning when error/warning occurs.
* | | | | | MDEV-26654 ROW_NUMBER is wrong upon INSERT into Federated tableSergei Golubchik2021-10-262-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | just a test case
* | | | | | MDEV-26693 ROW_NUMBER is wrong upon INSERT or UPDATE on Spider tableSergei Golubchik2021-10-263-2/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in case of a bulk insert the server sends all rows to the engine, and then the engine replies that there was ER_DUP_ENTRY somewhere. the exact number of the row that caused the error is unknown.
* | | | | | fix RESIGNAL to save and pass the m_row_count tooSergei Golubchik2021-10-263-4/+7
| | | | | |
* | | | | | refactor THD::raise_condition() familySergei Golubchik2021-10-2610-120/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to remove Sql_condition* raise_condition(const Sql_condition *cond) { Sql_condition *raised= raise_condition(cond->get_sql_errno(), cond->get_sqlstate(), cond->get_level(), *cond, cond->get_message_text()); return raised; }
* | | | | | MDEV-26635 ROW_NUMBER is not 0 for errors not caused because of rowsSergei Golubchik2021-10-2663-373/+383
| | | | | |
* | | | | | the error should be on the second row, not the firstSergei Golubchik2021-10-264-55/+62
| | | | | | | | | | | | | | | | | | | | | | | | otherwise how can we know that the row counter is incremented?
* | | | | | MDEV-26832: ROW_NUMBER in SIGNAL/RESIGNAL causes a syntax errorRucha Deodhar2021-10-266-1/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Analysis: Parser was missing ROW_NUMBER as syntax for SIGNAL and RESIGNAL. Fix: Fix parser and fix how m_row_number is copied like other attributes to avoid ROW_NUMBER from assuming default value.
* | | | | | MDEV-26767 Server crashes when rename table and alter storage engineAleksey Midenkov2021-10-263-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wrong assertion leftover removed. m_sql_cmd can be allocated by any ALTER subcommand and before allocation it is checked for NULL first.
* | | | | | MDEV-22165 CONVERT TABLE: move in partition from existing tableAleksey Midenkov2021-10-2617-326/+2411
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Syntax for CONVERT TABLE ALTER TABLE tbl_name CONVERT TABLE tbl_name TO PARTITION partition_name partition_spec Examples: ALTER TABLE t1 CONVERT TABLE tp2 TO PARTITION p2 VALUES LESS THAN MAX_VALUE(); New ALTER_PARTITION_CONVERT_IN command for fast_alter_partition_table() is done in alter_partition_convert_in() function which basically does ha_rename_table(). Table structure and data check is basically the same as in EXCHANGE PARTITION command. And these are done by compare_table_with_partition() and check_table_data(). Atomic DDL is done by the scheme from MDEV-22166 (see the corresponding commit message). The only differnce is that it also has to drop source table frm and that is done by WFRM_DROP_CONVERTED_FROM. Initial patch was done by Dmitry Shulga <dmitry.shulga@mariadb.com>
* | | | | | Review and crash-safety fixAleksey Midenkov2021-10-269-96/+373
| | | | | |
* | | | | | cleanup: reduce error injection noise in partitioningSergei Golubchik2021-10-266-96/+250
| | | | | |