- 03 May, 2022 3 commits
-
-
Jan Lindström authored
MDEV-21557 : galera_bf_abort_at_after_statement MTR failed: query 'reap' succeeded - should have failed with errno 1213 Add wait_condition so that conflicting update is done.
-
Jan Lindström authored
MDEV-22666 : galera.MW-328A MTR failed: "Semaphore wait has lasted > 600 seconds" and do not release port 16002 Removed bad tests.
-
Jan Lindström authored
Grep is not safe as it will confuse if there is more than one matching line or if progress report is slightly different as progress reporting is afected by how fast IST is send/received. Fix is to use sed and we are interested only that there is at least one progress report from IST.
-
- 30 Apr, 2022 1 commit
-
-
Igor Babaev authored
This patch corrects the fix for MDEV-26412. Note that when parsing an ON expression the pointer to the current select is always in select_stack[select_stack_top - 1]. So the pointer to the outer select (if any) is in select_stack[select_stack_top - 2]. The query manifesting this bug is added to the test case of MDEV-26412.
-
- 29 Apr, 2022 4 commits
-
-
Igor Babaev authored
MDEV-28082 Crash when using HAVING with IS NULL predicate in an equality These bugs have been fixed by the patch for MDEV-26402. Only test cases are added.
-
Sergei Golubchik authored
when resolving WHERE and ON clauses, do not look in SELECT list/aliases.
-
Sergei Golubchik authored
call item->split_sum_func() in setup_order() just as it's done in setup_fields()
-
Sergei Golubchik authored
and minor style fixes
-
- 28 Apr, 2022 3 commits
-
-
Alexey Botchkov authored
The faulure in username packet reading can lead to the auth_plugin_tool zombie. So check and close the application.
-
Sergei Golubchik authored
reset errkey after using it, so that it wouldn't affect the next error message in the next statement
-
Alexander Barkov authored
Renaming ctype-uca.ic to ctype-uca.inl This file was introduced in 10.4, so it did not get to the main 10.2 patch for MDEV-27494
-
- 27 Apr, 2022 1 commit
-
-
Igor Babaev authored
IF an INSERT/REPLACE SELECT statement contained an ON expression in the top level select and this expression used a subquery with a column reference that could not be resolved then an attempt to resolve this reference as an outer reference caused a crash of the server. This happened because the outer context field in the Name_resolution_context structure was not set to NULL for such references. Rather it pointed to the first element in the select_stack. Note that starting from 10.4 we cannot use the SELECT_LEX::outer_select() method when parsing a SELECT construct. Approved by Oleksandr Byelkin <sanja@mariadb.com>
-
- 26 Apr, 2022 4 commits
-
-
Julius Goryavsky authored
This commit fixes a crash reported as MDEV-28377 and a number of other crashes in automated tests with mtr that are related to broken .cnf files in galera and galera_3nodes suites, which happened when automatically migrating MDEV-26171 from 10.3 to subsequent higher versions.
-
Sergei Golubchik authored
use posix_spawn(), not fork() - it's better for systems that don't overcommit memory
-
Rucha Deodhar authored
constructor Analysis: counter does not increment while sending rows for table value constructor and so row_number assumes the default value (0 in this case). Fix: Increment the counter to avoid counter using default value.
-
Daniel Black authored
Add chinese language to missing sql/share/CMakeLists.txt that results in installed files. Also add bulgarian=bgn which has existing for a long time. Sort both lists properly. Append both to debian/mariadb-server-core-10.4 too.
-
- 25 Apr, 2022 1 commit
-
-
Brandon Nesterenko authored
Problem: ======== During mysqld initialization, if the number of GTIDs added since that last purge of the mysql.gtid_slave_pos tables is greater than or equal to the –-gtid-cleanup-batch-size value, a race condition can occur. Specifically, the binlog background thread will submit the bg_gtid_delete_pending job to the mysql handle manager; however, the mysql handle manager may not be initialized, leading to crashes. Solution: ======== Force the mysql handle manager to initialize/start before the binlog background thread is created. Reviewed By: ============ Andrei Elkin <andrei.elkin@mariadb.com>
-
- 22 Apr, 2022 3 commits
-
-
Brandon Nesterenko authored
Problem: ======== If a primary is shutdown during an active semi-sync connection during the period when the primary is awaiting an ACK, the primary hard kills the active communication thread and does not ensure the transaction was received by a replica. This can lead to an inconsistent replication state. Solution: ======== During shutdown, the primary should wait for an ACK or timeout before hard killing a thread which is awaiting a communication. We extend the `SHUTDOWN WAIT FOR SLAVES` logic to identify and ignore any threads waiting for a semi-sync ACK in phase 1. Then, before stopping the ack receiver thread, the shutdown is delayed until all waiting semi-sync connections receive an ACK or time out. The connections are then killed in phase 2. Notes: 1) There remains an unresolved corner case that affects this patch. MDEV-28141: Slave crashes with Packets out of order when connecting to a shutting down master. Specifically, If a slave is connecting to a master which is actively shutting down, the slave can crash with a "Packets out of order" assertion error. To get around this issue in the MTR tests, the primary will wait a small amount of time before phase 1 killing threads to let the replicas safely stop (if applicable). 2) This patch also fixes MDEV-28114: Semi-sync Master ACK Receiver Thread Can Error on COM_QUIT Reviewed By ============ Andrei Elkin <andrei.elkin@mariadb.com>
-
Sergei Petrunia authored
When doing condition pushdown from HAVING into WHERE, Item_equal::create_pushable_equalities() calls item->set_extraction_flag(IMMUTABLE_FL) for constant items. Then, Item::cleanup_excluding_immutables_processor() checks for this flag to see if it should call item->cleanup() or leave the item as-is. The failure happens when a constant item has a non-constant one inside it, like: (tbl.col=0 AND impossible_cond) item->walk(cleanup_excluding_immutables_processor) works in a bottom-up way so it 1. will call Item_func_eq(tbl.col=0)->cleanup() 2. will not call Item_cond_and->cleanup (as the AND is constant) This creates an item tree where a fixed Item has an un-fixed Item inside it which eventually causes an assertion failure. Fixed by introducing this rule: instead of just calling item->set_extraction_flag(IMMUTABLE_FL); we call Item::walk() to set the flag for all sub-items of the item.
-
Daniel Black authored
Thanks Marko for noticing.
-
- 21 Apr, 2022 6 commits
-
-
Vlad Lesin authored
Reset dict_table_t::persistent_autoinc when inplace alter table is committed successfully.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The only purpose of ibuf_bitmap_mutex is to prevent a deadlock between two concurrent invocations of ibuf_update_free_bits_for_two_pages_low() on the same pair of bitmap pages, but in opposite order. The mutex is unnecessarily serializing the execution of the function even when it is being invoked on totally different tablespaces. To avoid deadlocks, it suffices to ensure that the two page latches are being acquired in a deterministic (sorted) order.
-
Haidong Ji authored
- Simplified Chinese translation added - Character encoding is gdk -- gdk covers more characters -- gdk includes both Simplified and Traditional -- best option I think, may need to work along with other locale settings - Other cleanup -- Within each error, messages are sorted according to language code -- More consistent formatting (8 spaces proceeding each translation) -- jps removed as duplicate of jpn translation This should be a good starting point. More refinement is appreciated, and needed down the road. English "containt" (sic) spelling fixes on ER_FK_NO_INDEX_{CHILD,PARENT} resulting in mtr test case adjustments. Edited/reviewed by Daniel Black
-
- 20 Apr, 2022 3 commits
-
-
Thirunarayanan Balathandayuthapani authored
The following condition has to added: 1) InnoDB fails to include the offset of the node pointer field in non-leaf record for redundant row format. 2) If the Fixed length field does have only prefix length then calculate the field maximum size as prefix length. - Added the test case to test (2) and to check maximum number of fields can exist in the index.
-
Daniele Sciascia authored
Disallow XA when Galera library is loaded. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Jan Lindström authored
MDEV-28314 : The Galera cluster primary node goes into hang mode when innodb_encryption_threads is enabled When we enable writes after Galera SST srv_n_fil_crypt_threads needs to be set temporally to 0 (as was done when writes were disabled) to make sure that encryption threads will be really started based on old value of encryption threads. Fix provided by Marko Mäkelä.
-
- 19 Apr, 2022 2 commits
-
-
Marko Mäkelä authored
-
Jan Lindström authored
Add missing connection lines to result set
-
- 18 Apr, 2022 4 commits
-
-
Aleksey Midenkov authored
column generated using date_format() and if() vcol_info->expr is allocated on expr_arena at parsing stage. Since expr item is allocated on expr_arena all its containee items must be allocated on expr_arena too. Otherwise fix_session_expr() will encounter prematurely freed item. When table is reopened from cache vcol_info contains stale expression. We refresh expression via TABLE::vcol_fix_exprs() but first we must prepare a proper context (Vcol_expr_context) which meets some requirements: 1. As noted above expr update must be done on expr_arena as there may be new items created. It was a bug in fix_session_expr_for_read() and was just not reproduced because of no second refix. Now refix is done for more cases so it does reproduce. Tests affected: vcol.binlog 2. Also name resolution context must be narrowed to the single table. Tested by: vcol.update main.default vcol.vcol_syntax gcol.gcol_bugfixes 3. sql_mode must be clean and not fail expr update. sql_mode such as MODE_NO_BACKSLASH_ESCAPES, MODE_NO_ZERO_IN_DATE, etc must not affect vcol expression update. If the table was created successfully any further evaluation must not fail. Tests affected: main.func_like Reviewed by: Sergei Golubchik <serg@mariadb.org>
-
Aleksey Midenkov authored
1. moved fix_vcol_exprs() call to open_table() mysql_alter_table() doesn't do lock_tables() so it cannot win from fix_vcol_exprs() from there. Tests affected: main.default_session 2. Vanilla cleanups and comments.
-
Oleg Smirnov authored
This commit adds processing of SYSTEM_TIME_BEFORE and SYSTEM_TIME_HISTORY to vers_select_conds_t::print().
-
Oleg Smirnov authored
UNION ALL queries are a subject of optimization introduced in MDEV-334 when creation of a temporary table is skipped. While there is a check for this optimization in Explain_union::print_explain() there was no such in Explain_union::print_explain_json(). This resulted in printing irrelevant data like: "union_result": { "table_name": "<union2,3>", "access_type": "ALL", "r_loops": 0, "r_rows": null in case when creation of the temporary table was actually optimized out. This commits adds a check whether the temporary table was actually created during the UNION ALL processing and eliminates printing of the irrelevant data.
-
- 16 Apr, 2022 1 commit
-
-
Daniele Sciascia authored
-
- 14 Apr, 2022 2 commits
-
-
Alexander Barkov authored
An additional patch for MDEV-27690 Crash on `CHARACTER SET csname COLLATE DEFAULT` in column definition Applying the fix to sql_yacc_ora.yy. Adding a test for sql_mode=ORACLE.
-
Alexander Barkov authored
-
- 13 Apr, 2022 2 commits
-
-
Oleksandr Byelkin authored
on_table_fill_finished() should always be done at the end of open() even if result is not Select_materialize but (for example) Select_fetch_into_spvars.
-
Marko Mäkelä authored
This is conceptually a backport of commit 6f4740fd (re-recording the .rdiff files).
-