- 02 Aug, 2021 5 commits
-
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
The call to the function fts_check_corrupt() was removed in commit 09af00cb already.
-
Oleksandr Byelkin authored
-
Nikita Malyavin authored
Server crashes in Field::register_field_in_read_map upon select from partitioned table with indexed by prefix virtual column. After several read-mark fixes a problem has surfaced: Since KEY (c(10),a) uses only a prefix of c, a new field is created, duplicated from table->field[3], with a new length. However, vcol_inco->expr is not copied. Therefore, (*key_info)->key_part[i].field->vcol_info->expr was left NULL in ha_partition::index_init(). Solution: copy vcol_info from table field when it's set up.
-
Oleksandr Byelkin authored
This reverts commit 9b8e207c.
-
- 31 Jul, 2021 2 commits
-
-
Oleksandr Byelkin authored
-
Sergei Golubchik authored
fix main.processlist_notembedded test * before EXPLAINing `select sleep` wait for select to start (fixes "Target is not running an EXPLAINable command") * after killing sleep, wait for it to die (fixes test failures on --repeat when old sleep shows on a test rerun) * unify with 10.3, copy minor changes from there (`--echo End of 5.5` vs `--echo # End of 5.5`, etc)
-
- 29 Jul, 2021 4 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Nikita Malyavin authored
len was containing garbage, since vctempl->mysql_col_offset was containing old value while calling row_mysql_store_col_in_innobase_format from innobase_get_computed_value(). It was not updated after the first ALTER TABLE call, because it's INPLACE logic considered there's nothing to update, and exited immediately from ha_innobase::inplace_alter_table(). However, vcol metadata needs an update, since vcols structure is changed in mysql record. The regression was introduced by 12614af1. There, refcount==1 condition was removed, which turned out to be crucial, though racy. The idea was to update vc_templ after each (sequencing) ALTER TABLE. We should do the same another way, and there may be a plenty of solutions, but the simplest one is to add a following condition: if vcol structure is changed, drop vc_templ; it will be recreated on next ha_innobase::open() call. in prepare_inplace_alter_table. It is safe, since innodb inplace changes require at least HA_ALTER_INPLACE_SHARED_LOCK_AFTER_PREPARE, which guarantee MDL_EXCLUSIVE on this stage. alter_templ_needs_rebuild() also has to track the columns not indexed, to keep vc_templ correct. Note that vc_templ is always kept constructed and available after ha_innobase::open() call, even on INSERT, though no virtual columns are evaluated during that statement inside innodb. In the test case suplied, it will be recreated on the second ALTER TABLE.
-
Marko Mäkelä authored
ha_innobase::prepare_inplace_alter_table(): Remove always-true conditions. Near the start of the function, we would already have returned if no ALTER TABLE operation flags were set that would require special action from InnoDB. It turns out that the conditions were redundant already when they were introduced in mysql/mysql-server@241387a2b6b61fb8a4f78dc4ad0aaa289400c694 and in commit 068c6197. Thanks to Nikita Malyavin for noticing this.
-
- 28 Jul, 2021 10 commits
-
-
Sergei Golubchik authored
When creating fields for UNION results, Field_null is not allowed. Should create binary(0) instead.
-
Alexander Barkov authored
-
Nikita Malyavin authored
Pass char* to WSREP_LOG and others, instead of non-POD objects
-
Vladislav Vaintroub authored
Add a couple of NO_XXX prprocessor constants to wolfssl build. Looked into cmake defaults, those are set there too. Some of these are (supposedly) weak ciphers, and some just fallen out from wide use.
-
Yongxin Xu authored
This patch fixes the bug that TRIM(BOTH ... FROM $str), TRIM(LEADING ... FROM $str), and TRIM(TRAILING ... FROM $str) failed with errors when executing on Spider.
-
mkaruza authored
Victim threads which are in currently in process of aborting or already aborted should be skipped for another kill process. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
mkaruza authored
MDEV-25740 Assertion `!wsrep_has_changes(thd) || (thd->lex->sql_command == SQLCOM_CREATE_TABLE && !thd->is_current_stmt_binlog_format_row())' failed in void wsrep_commit_empty(THD*, bool) Using ROLLBACK with `completion_type = CHAIN` result in start of transaction and implicit commit before previous WSREP internal data is cleared. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
mkaruza authored
MDEV-22421 Galera assertion !wsrep_has_changes(thd) || (thd->lex->sql_command == SQLCOM_CREATE_TABLE && !thd->is_current_stmt_binlog_format_row()) Updates to transaction registry table shouldn't be replicated in cluster so there is no need to append wsrep keys. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Nikita Malyavin authored
Server crashes in Field::register_field_in_read_map upon select from partitioned table with indexed by prefix virtual column. After several read-mark fixes a problem has surfaced: Since KEY (c(10),a) uses only a prefix of c, a new field is created, duplicated from table->field[3], with a new length. However, vcol_inco->expr is not copied. Therefore, (*key_info)->key_part[i].field->vcol_info->expr was left NULL in ha_partition::index_init(). Solution: initialize vcols before key initialization Also key initialization is moved to a function.
-
Marko Mäkelä authored
Thanks to Nikita Malyavin for noticing this. The dead code that was originally introduced in mysql/mysql-server@b8bd31740cd7088f3a3c164981c7ccda487d301d was added in commit 2e814d47 to this code base.
-
- 27 Jul, 2021 16 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
rename files `version` -> `version_full`
-
Eugene Kosov authored
FetchIndexRootPages::operator(): handle REDUNDANT vs DYNAMIC case specifically. Other combinations seems fine as is.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Nikita Malyavin authored
This is important since Sys_var_typelib and its descendants return pointers to constant symbols from *_value_ptr, which are situated in write-protected-memory. * functions const-qualified: - value_ptr - session_value_ptr - global_value_ptr - default_value_ptr - Sys_var_vers_asof::value_ptr - other minor private ones * remove C-style typecasts when it discards qualifiers
-
Nikita Malyavin authored
MDEV-16026: Forbid global system_versioning_asof in non-default time zone * store `system_versioning_asof` in unix time; * both session and global vars are processed in session timezone; * setting `default` does not copy global variable anymore. Instead, it sets system_time to SYSTEM_TIME_UNSPECIFIED, which means that no 'AS OF' time is applied and `now()` can be assumed As a regression, we cannot assign values below 1970 (UTC) anymore MDEV-16481: set global system_versioning_asof=sf() crashes in specific case * sys_vars.h: add `MYSQL_TIME` field to `set_var::save_result` * sys_vars.ic: get rid of calling `var->value->get_date()` from `Sys_var_vers_asof::update()` * versioning.sysvars: add test; remove double warning refactor Sys_var_vers_asof * inherit from sys_var rather than Sys_var_enum * remove junk "DEFAULT" keyword. There is DEFAULT in SQL grammar for it. * make all conversions in check() to avoid possible errors * avoid double var->value evaluation, which could consequence in undefined behavior
-
Vladislav Vaintroub authored
Workaround WolfSSL bug https://github.com/wolfSSL/wolfssl/issues/4242 (heap overflow) by using fastmath library everywhere, except Windows clang Before the patch, default math library was used on all 32bit platforms.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_scrub_start_space(): Avoid an unnecessary tablespace lookup and related acquisition of fil_system->mutex. In MariaDB Server 10.3 we would get deadlocks between that mutex and a crypt_data mutex. The fix was developed by Thirunarayanan Balathandayuthapani.
-
Jan Lindström authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
On POSIX systems, InnoDB would unconditionally acquire advisory locks on the files that it opens. On Linux, this would be observable by a large number of entries in /proc/locks. Other storage engines would only acquire advisory locks on files based on the Boolean configuration parameter external_locking. Let InnoDB do the same. NOTE: The --skip-external-locking is activated by default. To have InnoDB acquire advisory locks, --external-locking must be specified. Reviewed by: Sergei Golubchik
-
Marko Mäkelä authored
trx_t::will_lock: Changed the type to bool. trx_t::is_autocommit_non_locking(): Replaces trx_is_autocommit_non_locking(). trx_is_ac_nl_ro(): Remove (replaced with equivalent assertion expressions). assert_trx_nonlocking_or_in_list(): Remove. Replaced with at least as strict checks in each place. check_trx_state(): Moved to a static function; partially replaced with individual debug assertions implementing equivalent or stricter checks. This is a backport of commit 7b51d11c from 10.5.
-
Leandro Pacheco authored
make BACKUP STAGE behave as FTWRL, desyncing and pausing the node to prevent BF threads (appliers) from interfering with blocking stages. This is needed because BF threads don't respect BACKUP MDL locks. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
- 26 Jul, 2021 3 commits
-
-
Jan Lindström authored
MDEV-26062 : InnoDB: WSREP: referenced FK check fail: Lock wait index `PRIMARY` table `schema`.`child_table` Problem was that not all normal error codes where not handled after wsrep_row_upd_check_foreign_constraints() call. Furhermore, debug assertion did not contain all normal error cases. Changed ib:: calls to WSREP_ calls to use wsrep instrumentation.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-