- 26 Jul, 2021 1 commit
-
-
Sergei Golubchik authored
-
- 25 Jul, 2021 1 commit
-
-
Sergei Golubchik authored
as always, multi-commands don't work in --ps
-
- 24 Jul, 2021 2 commits
-
-
Sergei Golubchik authored
* count CONNECT objects too * wait for all CONNECT objects to disappear (to be converted to THDs) before killing THDs away
-
Sergei Golubchik authored
because the name was misleading, it counts not threads, but THDs, and as THD_count is the only way to increment/decrement it, it could as well be declared inside THD_count.
-
- 23 Jul, 2021 2 commits
-
-
Marko Mäkelä authored
ha_innobase::check_if_supported_inplace_alter(): Relax a too strict debug assertion when changing a column from NULL to NOT NULL. InnoDB actually allows instant removal of an AUTO_INCREMENT attribute since commit 8dffaaef (MDEV-12836).
-
Vladislav Vaintroub authored
Setting specific ciphers does not work for OpenSSL 1.1.1+ client when it negotiates TLSv1.3 with the server. Require TLS version less that 1.3 for the server to workaround.
-
- 22 Jul, 2021 2 commits
-
-
Michael Okoko authored
Signed-off-by: Michael Okoko <okokomichaels@outlook.com>
-
Nayuta Yanagisawa authored
The bug is caused by the following reasons: * spider_group_by_handler::init_scan() generates a query for a data node. * The function adds DISTINCT if and only if spider_group_by_handler::query::distinct is TRUE. * spider_group_by_handler::query::distinct is set to the value of JOIN::select_distinct in JOIN::make_aggr_tables_info(). * In the test case, DISTINCT is not added because JOIN::select_distinct is FALSE at the call of JOIN::make_aggr_tables_info(). Why JOIN::select_distinct is set to FALSE? That is because the function JOIN::optimize_stage2() convert DISTINCT into GROUP BY and then optimizes away GROUP BY.
-
- 21 Jul, 2021 2 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
- 20 Jul, 2021 1 commit
-
-
Marko Mäkelä authored
We only support the instantaneous removal of the NOT NULL attribute for ROW_FORMAT=REDUNDANT tables.
-
- 16 Jul, 2021 2 commits
-
-
Sergei Golubchik authored
commit the forgotten result file followup for b81803f0
-
Sergei Golubchik authored
still cannot be enabled permanently, but at least they could be run manually, if needed
-
- 14 Jul, 2021 1 commit
-
-
Nayuta Yanagisawa authored
MDEV-26139 Spider crashes with segmentation fault (signal 11) on CREATE TABLE when COMMENT does not contain embedded double quotes The root cause of the bug MDEV-26139 is the lack of NULL checking on the variable `dq`. Comments on if (dq && (!sq || sq > dq)) {...} else {...}: * The if block corresponds to the case where parameters are quoted by double quotes. In that case, a single quote doesn't appear at all or only appears in the middle of double quotes. * The else block corresponds to the case where parameters are quoted by single quotes. In that case, a double quote doesn't appear at all or only appears in the middle of single quotes. * If the program reaches the if-else statement, `sq || dq` holds. Thus, the negation of `dq && (!sq || sq > dq)` is equivalent to `sq && (!dq || sq <= dq)`.
-
- 09 Jul, 2021 1 commit
-
-
Igor Babaev authored
This bug could affect queries that had at least two references to a CTE that used an embedded recursive CTE. Starting from version 10.4 some code in With_element::clone_parsed_spec() that assumed a certain order of selects after parsing the specification of a CTE became not valid anymore. It could lead to global select lists where some selects were missing. If a missing CTE happened to belong to the recursive part of a recursive CTE some recursive table references were not set as references to materialized derived tables and this caused a crash of the server. Approved by Oleksandr Byelkin <sanja@mariadb.com>
-
- 06 Jul, 2021 1 commit
-
-
Julius Goryavsky authored
-
- 02 Jul, 2021 19 commits
-
-
Marko Mäkelä authored
In other ROW_FORMAT than REDUNDANT, the InnoDB record header size calculation depends on dict_index_t::n_core_null_bytes. In ROW_FORMAT=REDUNDANT, the record header always is 6 bytes plus n_fields or 2*n_fields bytes, depending on the maximum record size. But, during online ALTER TABLE, the log records in the temporary file always use a format similar to ROW_FORMAT=DYNAMIC, even omitting the 5-byte fixed-length part of the header. While creating a temporary file record for a ROW_FORMAT=REDUNDANT table, InnoDB must refer to dict_index_t::n_nullable. The field dict_index_t::n_core_null_bytes is only valid for other than ROW_FORMAT=REDUNDANT tables. The bug does not affect MariaDB 10.3, because only commit 7a27db77 (MDEV-15563) allowed an ALGORITHM=INSTANT change of a NOT NULL column to NULL in a ROW_FORMAT=REDUNDANT table. The fix was developed by Thirunarayanan Balathandayuthapani and tested by Matthias Leich. The test case was simplified by me.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
One more result was affected by merging 768c5188.
-
Eugene Kosov authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This is a backport of 161e4bfa. trans_rollback_to_savepoint(): Only release metadata locks (MDL) if the storage engines agree, after the changes were already rolled back. Ever since commit 3792693f and mysql/mysql-server@55ceedbc3feb911505dcba6cee8080d55ce86dda we used to cheat here and always release MDL if the binlog is disabled. MDL are supposed to prevent race conditions between DML and DDL also when no replication is in use. MDL are supposed to be a superset of InnoDB table locks: InnoDB table lock may only exist if the thread also holds MDL on the table name. In the included test case, ROLLBACK TO SAVEPOINT would wrongly release the MDL on both tables and let ALTER TABLE proceed, even though the DML transaction is actually holding locks on the table. Until commit 1bd681c8 (MDEV-25506) in MariaDB 10.6, InnoDB would often work around the locking violation in a blatantly non-ACID way: If locks exist on a table that is being dropped (in this case, actually a partition of a table that is being rebuilt by ALTER TABLE), InnoDB could move the table (or partition) into a queue, to be dropped after the locks and references had been released. If the lock is not released and the original copy of the table not dropped quickly enough, a name conflict could occur on a subsequent ALTER TABLE. The scenario of commit 3792693f is unaffected by this fix, because mysqldump would use non-locking reads, and the transaction would not be holding any InnoDB locks during the execution of ROLLBACK TO SAVEPOINT. MVCC reads inside InnoDB are only covered by MDL and page latches, not by any table or record locks. FIXME: It would be nice if storage engines were specifically asked which MDL can be released, instead of only offering a choice between all or nothing. InnoDB should be able to release any locks for tables that are no longer in trx_t::mod_tables, except if another transaction had converted some implicit record locks to explicit ones, before the ROLLBACK TO SAVEPOINT had been completed. Reviewed by: Sergei Golubchik
-
Marko Mäkelä authored
Fixup for commit 768c5188
-
Thirunarayanan Balathandayuthapani authored
A table rebuild that would truncate the default value of a DATE column is expected to issue data truncation warnings. But, these warnings are not being issued if the ADD COLUMN is being executed with ALGORITHM=INSTANT. InnoDB sets the warning of the field while assigning the default value of the field during check_if_supported_inplace_alter().
-
Daniel Black authored
The error loading the client module is different
-
Daniel Black authored
-
Daniel Black authored
-
Daniel Black authored
Parital backport of 48938c57 so platform dependent AIX tests can be done.
-
Daniel Black authored
-
Daniel Black authored
-
Daniel Black authored
C:\projects\server\sql\sql_show.cc(7913): error C2220: warning treated as error - no 'object' file generated [C:\projects\server\win_build\sql\sql.vcxproj] C:\projects\server\sql\sql_show.cc(7913): warning C4267: 'initializing': conversion from 'size_t' to 'uint', possible loss of data [C:\projects\server\win_build\sql\sql.vcxproj] caused by 768c5188
-
Daniel Black authored
-
Daniel Black authored
Parital backport of 48938c57 so platform dependent AIX tests can be done.
-
- 30 Jun, 2021 5 commits
-
-
Sergei Petrunia authored
Post-merge fix in 10.4: add a testcase for pushdown into IN subquery
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
Consider a query of the form: select ... from (select item2 as COL1) as T where COL1=123 Condition pushdown into derived table will try to push "COL1=123" condition down into table T. The process of pushdown involves "substituting" the item, that is, replacing Item_field("T.COL1") with its "producing item" item2. In order to use item2, one needs to clone it (call Item::build_clone). If the item is not cloneable (e.g. Item_func_sp is not), the pushdown process will fail and nothing at all will be pushed. Fixed by introducing transform_condition_or_part() which will try to apply the transformation for as many parts of condition as possible. The parts of condition that couldn't be transformed are dropped.
-