- 16 Apr, 2024 1 commit
-
-
Dave Gosselin authored
-
- 02 Apr, 2024 1 commit
-
-
Dave Gosselin authored
We rely on handler_stats pointing to a valid active_handler_stats instance, for ICP accounting, which is created during ha_handler_stats_reset(). Always invoke that method during table init to ensure that the handler, regardless of implementation, has the pointer set correctly
-
- 01 Apr, 2024 1 commit
-
-
Dave Gosselin authored
-
- 29 Mar, 2024 1 commit
-
-
Dave Gosselin authored
-
- 19 Mar, 2024 1 commit
-
-
Sergei Petrunia authored
We may get r_index_rows=0. Do not divide by 0 in this case, as the result is undefined. Produce "r_total_filtered": 100 instead.
-
- 18 Mar, 2024 1 commit
-
-
Sergei Golubchik authored
Error:Run-Time Check Failure #3 - The variable 'r_filtered' is being used without being initialized. At :0
-
- 14 Mar, 2024 3 commits
-
-
Sergei Petrunia authored
Add assertions about limitations one has when using Index Condition Pushdown: - add handler::assert_icp_limitations() - call this function from functions that may attempt violations. Verified that assert_icp_limitations() as well as calls to it are compiled away in release build.
-
Dave Gosselin authored
Support index condition pushdown within partitioned tables. - ha_partition will pass the pushed index condition into all of the used partitions. - We require that all of the partitions to handle the pushed index condition in the same way. - When using ICP, one may read rows (e.g. call h->index_read_map(buf, ...) only to buf= table->record[0], for two reasons: * Pushed index condition's Item_field objects point into record[0] * InnoDB requires this: it calls offset() which assumes record[0]. So, when using ICP, ha_partition will read partition records to table->record[0] and then will copy record away if it needs it to be elsewhere.
-
Sergei Petrunia authored
-
- 13 Mar, 2024 1 commit
-
-
Sergei Petrunia authored
Part#2, variant 2: Make the printed r_ values in JSON output consistent. After this patch, ANALYZE output has: - r_index_rows (NEW) - Observed number of rows before ICP or Rowid Filtering checks. This is a per-scan average. like r_rows and "rows" are. - r_rows (AS BEFORE) - Observed number of rows after ICP and Rowid Filtering. - r_icp_filtered (NEW) - Observed selectivity of ICP condition. - (AS BEFORE) observed selectivity of Rowid Filter is in $.rowid_filter.r_selectivity_pct - r_total_filtered - Observed combined selectivity: fraction of rows left after applying ICP condition, Rowid Filter, and attached_condition. This is now comparable with "filtered" and is printed right after it. - r_filtered (AS BEFORE) - Observed selectivity of "attached_condition". Tabular ANALYZE output is not changed. Note that JSON's r_filtered and r_rows have the same meanings as before and have the same meaning as in tabular output.
-
- 30 Dec, 2023 1 commit
-
-
Sergei Petrunia authored
(Based on the original patch by Jason Cu) Part #1: - Add ha_handler_stats::{icp_attempts,icp_match}, make handler_index_cond_check() increment them. - ANALYZE FORMAT=JSON now prints r_icp_filtered based on these counters.
-
- 22 Dec, 2023 1 commit
-
-
Vladislav Vaintroub authored
AIX compilation failed, because glibc's non-standard extension to `struct tm` were used - additional members tm_gmtoff and tm_zone. The patch fixes it by adding corresponding compile-time check. Additionally, for the calculation of GMT offset on AIX, a portable variant of timegm() was required.Implementation here is inspired by SergeyD's answer on Stackoverflow : https://stackoverflow.com/questions/16647819/timegm-cross-platform
-
- 21 Dec, 2023 4 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
make_item_func_call_generic() should take `db_int`, not `db`
-
Sergei Golubchik authored
-
- 20 Dec, 2023 7 commits
-
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_pcur_move_to_next_page(): Add code that was wrongly deleted in the merge commit 8c8bce05
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Daniel Black authored
Errors outputted as notes are weird, and when a user cannot do anything about them, why output them at all. Point taken, removed these, and left positive message on initialization (from Marko). Thanks Elena Stepanova.
-
- 19 Dec, 2023 11 commits
-
-
Marko Mäkelä authored
mariadb-backup wasn't meant to have memory pressure sensors so restrict the operation to SRV_OPERATIONAL_NORMAL mode. Reviewed by Daniel Black.
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Sergei Golubchik authored
-
Marko Mäkelä authored
trx_purge_truncate_history(): If a fast shutdown has been initiated, disregard innodb_undo_log_truncate=ON and return.
-
Kristian Nielsen authored
The previous patch for MDEV-10653 changes the rpl_parallel::workers_idle() function to use Relay_log_info::last_inuse_relaylog to check for idle workers. But the code was missing a NULL check. Also, there was one place during SQL slave thread start which was missing mutex synchronisation when updating inuse_relaylog. Signed-off-by:
Kristian Nielsen <knielsen@knielsen-hq.org>
-
Kristian Nielsen authored
The error-injection inject_mdev8031 simulates a deadlock kill in a specific place, by setting killed_for_retry to RETRY_KILL_KILLED directly. If a real deadlock kill triggers at the same time, it is possible for the thread to complete its transaction retry and set rgi_slave to NULL before the real readlock kill can complete in the background. This will cause a segfault due to null-pointer access. Fix by changing the error injection to do a real background deadlock kill, which ensures that the thread will wait for any pending background kills to complete. Signed-off-by:
Kristian Nielsen <knielsen@knielsen-hq.org>
-
Kristian Nielsen authored
Item::val_str() sets the Item::null_value flag, so call it before checking the flag, not after. Signed-off-by:
Kristian Nielsen <knielsen@knielsen-hq.org>
-
Marko Mäkelä authored
trx_purge_truncate_history(): Release buf_pool.flush_list_mutex and 'dummily' acquire and release buf_pool.mutex before starting a rescan of buf_pool.flush_list, to ensure that the buf_flush_page_cleaner thread (which may be holding buf_pool.mutex) will be able to proceed. This fixes up commit 5dbe7a8c (MDEV-32757). Tested by: Axel Schwenke (on Ubuntu 18.04 and Ubuntu 20.04) Reviewed by: Vladislav Lesin
-
hsser authored
This commit addresses the file leakage problem encountered with the mysql_upgrade --check-if-upgrade-is-needed command.
-
- 18 Dec, 2023 6 commits
-
-
Sergei Golubchik authored
e.g. it could be {"errors":["no handler for route \"mariadbtest/data/1\". route entry not found."]}
-
Sergei Golubchik authored
ASAN uses *a lot* more stack. use not_asan.inc for tests that recursively put a lot of data on the stack
-
Sergei Golubchik authored
"InnoDB: The last skipped log record LSN X is not equal to page LSN Y" is not an actionable message for the user, so it should be a note, not a warning
-
Sergei Golubchik authored
to iterate over all status variables one should use LOCK_all_status_vars not LOCK_status this fixes sporadic mutex lock inversion in plugins.password_reuse_check: * acl_cache->lock is taken over complex operations that might increment status counters (under LOCK_status). * acl_cache->lock is needed to get the values of Acl% status variables when iterating over status variables
-
Sergei Golubchik authored
-
Alexander Barkov authored
This patch adds PACKAGE support with SQL/PSM dialect for sql_mode=DEFAULT: - CREATE PACKAGE - DROP PACKAGE - CREATE PACKAGE BODY - DROP PACKAGE BODY - Package function and procedure invocation from outside of the package: -- using two step identifiers SELECT pkg.f1(); CALL pkg.p1() -- using three step identifiers SELECT db.pkg.f1(); CALL db.pkg.p1(); This is a non-standard MariaDB extension. However, later this code can be used to implement the SQL Standard and DB2 dialects of CREATE MODULE.
-