- 01 Aug, 2020 3 commits
-
-
Marko Mäkelä authored
-
Otto Kekäläinen authored
- Include a link to the relevant KB article for more info - Use spaced around the equal sign for better readability and so that the examples are more aligned with the general style in the KB - Load plugins with just the base name, the .so is optional and excess
-
Otto Kekäläinen authored
Verified by running before and after: mariadb --skip-column-names -e "select plugin_name, plugin_status, plugin_type, plugin_library, plugin_license from information_schema.all_plugins order by plugin_name, plugin_library" Nothing else but exactly this line changed so there are no side effects: -S3 NOT INSTALLED STORAGE ENGINE ha_s3.so GPL +S3 ACTIVE STORAGE ENGINE ha_s3.so GPL Also enrich config file with link to KB and unify option syntax and standard comments.
-
- 31 Jul, 2020 11 commits
-
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Alexander Barkov authored
Fixing ROUND(date,0), TRUNCATE(date,x), FLOOR(date), CEILING(date) to return the `int(8) unsigned` data type. Details: 1. Cleanup: moving virtual implementations - Type_handler_temporal_result::Item_func_int_val_fix_length_and_dec() - Type_handler_temporal_result::Item_func_round_fix_length_and_dec() to Type_handler_date_common. Other temporal data type handlers override these methods anyway. So they were only DATE specific. This change makes the code clearer. 2. Backporting DTCollation_numeric from 10.5, to reuse the code easier. 3. Adding the `preferred_attrs` argument to Item_func_round::fix_arg_int(). Now Type_handler_xxx::Item_func_round_val_fix_length_and_dec() work as follows: - The INT-alike and YEAR handlers copy preferred_attrs from args[0]. - The DATE handler passes explicit attributes, to get `int(8) unsigned`. - The hex hybrid handler passes NULL, so fix_arg_int() calculates attributes. 4. Type_handler_date_common::Item_func_int_val_fix_length_and_dec() now sets the type handler and attributes to get `int(8) unsigned`.
-
Marko Mäkelä authored
-
Sergei Golubchik authored
-
Marko Mäkelä authored
row_vers_impl_x_locked_low(): clust_offsets may point to memory that is allocated by mem_heap_alloc() and may have been freed. For initializing clust_offsets, try to use the stack-allocated buffer instead of a pointer that may point to freed memory. This fixes a regression that was introduced in commit f0aa073f (MDEV-20950).
-
Nikita Malyavin authored
MDEV-18042 Server crashes upon adding a non-null date column under NO_ZERO_DATE with ALGORITHM=INPLACE accept table_name and db_name instead of table_share in make_truncated_value_warning
-
Nikita Malyavin authored
Call mark_columns_per_binlog_row_image before find_row() to set up table->vcol_set early, so the virtual column value will be updated after record read (ha_rnd_pos/ha_index_next/etc) by table->update_virtual_fields() call
-
Sergei Golubchik authored
don't GRANT UPDATE ON mysql.global_priv TO mariadb.sys@localhost;
-
Sergei Golubchik authored
Classes that handle privilege tables (like Tables_priv_table) could read some columns conditionally but they expect a certain minimal number of colunms always to exist. Add a check for a minimal required number of columns in privilege tables, don't use a table that has fewer columns than required.
-
Alexander Barkov authored
1. Fixing ROUND(x) and TRUNCATE(x,0) with TINYINT, SMALLINT, MEDIUMINT, BIGINT input to preserve the exact data type of the argument when it's possible. 2. Fixing FLOOR(x) and CEILING(x) with TINYINT, SMALLINT, MEDIUMINT, BIGINT to preserve the exact data type of the argument. 3. Adding dedicated Type_handler_year::Item_func_round_fix_length_and_dec() to easier handle ROUND(x) and TRUNCATE(x,y) for the YEAR(2) and YEAR(4) input. They still return INT(2) UNSIGNED and INT(4) UNSIGNED correspondingly, as before.
-
- 30 Jul, 2020 16 commits
-
-
Marko Mäkelä authored
rec_get_nth_cfield(): Remove a bogus debug assertion. The function may be invoked by innobase_rec_to_mysql() for reporting a duplicate key error during CREATE UNIQUE INDEX or ALTER TABLE...ADD UNIQUE KEY, and in that case the record will be missing the 5-byte or 6-byte fixed header. It turns out that in every other code path leading to rec_get_nth_cfield() we either invoked rec_get_offsets() ourselves or asserted rec_offs_validate(). So, we can safely remove the assertion and make debug builds smaller and faster.
-
Krunal Bauskar authored
MariaDB adopted a hardware optimized crc32c approach on ARM64 starting 10.5. Said implementation of crc32c needs support from target hardware for crc32 and pmull instructions. Existing logic is checking only for crc32 support from target hardware through a runtime check and so if target hardware doesn't support pmull it would cause things to fail/crash. Expanded runtime check to ensure pmull support is also checked on the target hardware along with existing crc32. Thanks to Marko and Daniel for review.
-
Jan Lindström authored
-
Vladislav Vaintroub authored
-
Thirunarayanan Balathandayuthapani authored
Problem: ======== In row_merge_drop_indexes(), InnoDB drops only the index from dictionary and frees the index pages but it maintains the index object if the table is being used by other DML threads. It sets the online status of the index to ONLINE_INDEX_ABORTED_DROPPED. Removing the index from dictionary doesn't remove the corressponding ahi entries of the index. When block is being reused, InnoDB tries to remove ahi entries for the block and it fails if index online status is ONLINE_INDEX_ABORTED_DROPPED. Fix: ==== MDEV-22456 allows the index ahi entries to be dropped lazily. so checking online status in btr_search_drop_page_hash_index() is meaningless and should be removed.
-
Vladislav Vaintroub authored
Due to restricted size of the threadpool, execution of client queries can be delayed (queued) for a while. This delay was interpreted as client inactivity, and connection is closed, if client idle time + queue time exceeds wait_timeout. But users did not expect queue time to be included into wait_timeout. This patch changes the behavior. We don't close connection anymore, if there is some unread data present on connection, even if wait_timeout is exceeded. Unread data means that client was not idle, it sent a query, which we did not have time to process yet.
-
Marko Mäkelä authored
trx_rollback_active(), trx_rollback_resurrected(): Replace an incorrect condition that we failed to replace in commit b68f1d84 (MDEV-21217).
-
Alexander Barkov authored
Implementing dedicated fixing methods: - Type_handler_bit::Item_func_round_fix_length_and_dec() - Type_handler_bit::Item_func_int_val_fix_length_and_dec() - Type_handler_typelib::Item_func_round_fix_length_and_dec() because the inherited methods did not work well. Fixing: - Type_handler_typelib::Item_func_int_val_fix_length_and_dec It did not work well, because it used args[0]->max_length to calculate the result data type. In case of ENUM and SET it was not correct, because in FLOOR() and CEILING() context ENUM and SET return not more than 5 digits (65535 is the biggest possible value). Misc: - Changing the API of Type_handler_bit::Bit_decimal_notation_int_digits(const Item *item) to a more generic form: Type_handler_bit::Bit_decimal_notation_int_digits_by_nbits(uint nbits) - Fixing Type_handler_bit::Bit_decimal_notation_int_digits_by_nbits() to return the exact number of decimal digits for all nbits 1..64. The old implementation was approximate. This change gives better (more precise) data types.
-
Otto Kekäläinen authored
This fixes the Lintian error and thus the Lintian override can also be removed.
-
Otto Kekäläinen authored
- DEB_BUILD_HARDENING is only used with hardening-wrapper which is deprecated in Debian, so remove it - The word 'terse' should be checked in DEB_BUILD_OPTIONS and verbosity controlled by it
-
Otto Kekäläinen authored
TinyCA has not been updated since 2016 and was removed from Debian in 2019 and the dev site https://tinyca.alioth.debian.org/ is offline. See https://tracker.debian.org/pkg/tinyca
-
Otto Kekäläinen authored
- Remove excess build flag from debian/rules that does nothing, introduced wrongly in commit 7cbde2d0. Instead implement the embedded server build skipping on Travis-CI correctly. - Simplify structure by doing all Travis-CI slimdown in one step. - Remove unnecessary -e from sed, as it does nothing. When regex is needed, use -r. Move -i to last so it is close to the file name it has an argument. - Remove backwards compat checks that are no longer relevant as neither Debian Jessie (was before Stretch) nor Ubuntu Trusty (before Xenial) are supported nor built for anymore. For example the GCC 4.8 check if not relevant anymore, since Debian Jessie already has 4.9 and Ubuntu Xenial has 5.3 and there is no GCC < 4.8 around anymore. - Skip building ColumnStore on both Travis-CI and Gitlab-CI as it is way too slow (time) and big (disk space) to pass.
-
Otto Kekäläinen authored
- Remove unnecessary unused files - Remove duplicate encryption configuration sample from sources and re-use the identical file in RPM directory instead - Clean away harmful "default-character-set = utf8mb4" from client config as it is unnecassary (server enforces utf8mb4 anyway by default) and could cause issues with mysqlbinlog and other tools (MDEV-22981). - Update S3 plugin description to be long enough - Remove trailing whitespace from support-files and Debian packaging. - Clean away fixed Lintian issues - Clean away temporary Salsa-CI fixes now that 10.5.4 is out and is fixed - Apply wrap-and-sort -a -v
-
Otto Kekäläinen authored
-
Otto Kekäläinen authored
This fixes the warning emitted during `/etc/init.d/mariadb restart`: WARNING: tempfile is deprecated; consider using mktemp instead.
-
Otto Kekäläinen authored
-
- 29 Jul, 2020 5 commits
-
-
Alexander Barkov authored
- Type_handler_hex_hybrid did not override Type_handler_string_result::Item_func_round_fix_length_and_dec(), so the result type of ROUND(0xFFFFFFFFFFFFFFFF) was erroneously calculated ad DOUBLE with a wrong length. Overriding Item_func_round_fix_length_and_dec(), to calculated the result type as INT/BIGINT. Also, fixing Item_func_round::fix_arg_int() to use args[0]->decimal_precision() instead of args[0]->max_length when calculating this->max_length, to get a correct result for hex hybrids. - Type_handler_hex_hybrid::Item_func_int_val_fix_length_and_dec() called item->fix_length_and_dec_int_or_decimal(), which did not produce a correct result data type for hex hybrid. Implementing a dedicated code instead, to return INT UNSIGNED or BIGINT UNSIGNED depending in the number of digits in the arguments.
-
Oleksandr Byelkin authored
Removing plugin from the mysql.plugin even if the plugin is not loaded
-
Eugene Kosov authored
I run perf top during ./mtr testing and constantly see times() function there. It's so slow, that it has no sense to run it in a loop too many times. This patch speeds up -suite=innodb for me from 218s to 208s. 9s of times() function!
-
Nikita Malyavin authored
MDEV-16023 Unfortunate error message WARN_VERS_PART_FULL (partition <name> is full) when rotation time for the last interval passed * remove one case of WARN_VERS_PART_FULL
-
Eugene Kosov authored
Doesn't allow instant alter of a field which is a prefix part of some key is_part_of_a_key_prefix(): I hope the name of the function is clear ha_innobase::can_convert_string() ha_innobase::can_convert_varstring() ha_innobase::can_convert_blob(): it can't when field is_part_of_a_key_prefix()
-
- 28 Jul, 2020 5 commits
-
-
Alexander Barkov authored
Fixing functions CEILING and FLOOR to return - TIME for TIME input - DATETIME for DATETIME and TIMESTAMP input
-
Jan Lindström authored
-
Marko Mäkelä authored
At least since commit 6a7be48b InnoDB appears to be invoking buf_flush_note_modification() on pages that were exclusively latched but not modified in a mini-transaction. MTR_MEMO_MODIFY, mtr_t::modify(): Define not only in debug code, but also in release code. We will set the MTR_MEMO_MODIFY flag on the earliest mtr_t::m_memo entry that we find. MTR_LOG_NONE: Only use this mode in cases where the previous mode will be restored before anything is modified in the mini-transaction. MTR_MEMO_PAGE_X_MODIFY, MTR_MEMO_PAGE_SX_MODIFY: The allowed flag combinations that include MTR_MEMO_MODIFY. ReleaseBlocks: Only invoke buf_flush_note_modification() on those buffer pool blocks on which mtr_t::set_modified() and mtr_t::modify() were invoked.
-
Marko Mäkelä authored
In MDEV-21724 or possibly already in MDEV-12353 a bug was introduced to the handling of temporary tables. Whether or not redo log will be written, mtr_t::set_modified() must be invoked to register any changes to a page. page_cur_insert_rec_low(): Invoke mtr_t::set_modified() also when skipping the redo log write.
-
Marko Mäkelä authored
mysql/mysql-server@e00ad49edc8b07317b52c9efd0810f2cbc57877a which introduced WL#6326 to MySQL 5.7.2 added a buffer page acquisition to CHECK TABLE code (solely for the purpose of obeying the changed latching order), but failed to check that a parent page actually exists. It would not necessarily exist in a corrupted index where a parent page is missing pointer records to child pages.
-