summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-29693 Fix review commentsbb-10.5-MDEV-29693Oleg Smirnov2023-01-305-38/+29
| | | | Part2. Get rid of virtual functions in Shared_ptr
* MDEV-29693 Fix review commentsOleg Smirnov2023-01-192-25/+21
| | | | | Part1. Make Stat_table::get_stat_values() non-virtual. Make Smart_ptr_base destructor non-virtual
* MDEV-29693 ANALYZE TABLE still flushes table definition cache when ↵Oleg Smirnov2022-12-1023-102/+855
| | | | | | | | | | | | engine-independent statistics is used This commits enables reloading of engine-independent statistics without flushing the table from table definition cache. This is achieved by using shared ownership of the statistics between TABLE and TABLE_SHARE structures. The updated statistics replace the ones stored in TABLE_SHARE but TABLE objects continue using the old ones to guarantee consistency for the optimizer. Once there are no objects referencing the old statistics they are deallocated
* Merge 10.4 into 10.5Marko Mäkelä2022-10-1316-26/+204
|\
| * Merge 10.3 into 10.4Marko Mäkelä2022-10-1316-26/+204
| |\
| | * Silence clang 13 -Wunused-but-set-variableMarko Mäkelä2022-10-131-2/+10
| | | | | | | | | | | | | | | | | | | | | WITH_EMBEDDED_SERVER compiles the SQL parsers separately. Thanks to Vladislav Vaintroub for helping with this. Fixes up commit e05ab0cfc5f52c8c240bfc02239f199081d82f61
| | * MDEV-29753 An error is wrongly reported during INSERT with vcol indexNikita Malyavin2022-10-127-9/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See also commits aa8a31da and 64678c for a Bug #22990029 fix. In this scenario INSERT chose to check if delete unmarking is available for a just deleted record. To build an update vector, it needed to calculate the vcols as well. Since this INSERT was not IGNORE-flagged, recalculation failed. Solutiuon: temporarily set abort_on_warning=true, while calculating the column for delete-unmarked insert.
| | * MDEV-29299 SELECT from table with vcol index reports warningNikita Malyavin2022-10-1210-10/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of now innodb does not store trx_id for each record in secondary index. The idea behind is following: let us store only per-page max_trx_id, and delete-mark the records when they are deleted/updated. If the read starts, it rememders the lowest id of currently active transaction. Innodb refers to it as trx->read_view->m_up_limit_id. See also ReadView::open. When the page is fetched, its max_trx_id is compared to m_up_limit_id. If the value is lower, and the secondary index record is not delete-marked, then this page is just safe to read as is. Else, a clustered index could be needed ato access. See page_get_max_trx_id call in row_search_mvcc, and the corresponding switch (row_search_idx_cond_check(...)) below. Virtual columns are required to be updated in case if the record was delete-marked. The motivation behind it is documented in Row_sel_get_clust_rec_for_mysql::operator() near row_sel_sec_rec_is_for_clust_rec call. This was basically a description why virtual column computation can normally happen during SELECT, and, generally, a vcol index access. Sometimes stats tables are updated by innodb. This starts a new transaction, and it can happen that it didn't finish to the moment of SELECT execution, forcing virtual columns recomputation. If the result was a something that normally outputs a warning, like division by zero, then it could be outputted in a racy manner. The solution is to suppress the warnings when a column is computed for the described purpose. ignore_wrnings argument is added innobase_get_computed_value. Currently, it is only true for a call from row_sel_sec_rec_is_for_clust_rec.
| | * MDEV-29102 system_time_zone is incorrect on Windows when TZ is setVladislav Vaintroub2022-10-111-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MDEV-19243 introduced a regression on Windows. In (supposedly rare) case, where environment variable TZ was set, @@system_time_zone no longer derives from TZ. Instead, it incorrecty refers to system default time zone, eventhough UTC time conversion takes TZ into account. The fix is to restore TZ-aware handling (timezone name derives from tzname), if TZ is set.
* | | Fixes after 10.4 --> 10.5 mergeJan Lindström2022-10-127-14/+20
| | | | | | | | | | | | | | | | | | | | | * MDEV-29142 : Ignore inconsistency warning as we kill cluster * galera_parallel_apply_3nodes : Disabled because it is unstable * MDEV-26597 : Add missing code * galera_sr.galera_sr_ws_size2 : Remove incorrect assertion
* | | Merge 10.4 into 10.5Marko Mäkelä2022-10-1246-353/+2925
|\ \ \ | |/ /
| * | MDEV-26597 post-fix: cannot add new error messages in 10.4Sergei Golubchik2022-10-117-31/+15
| | | | | | | | | | | | followup for e8acec897417
| * | MDEV-20760 fixup: clang -Winconsistent-missing-overrideMarko Mäkelä2022-10-111-226/+242
| | |
| * | MDEV-29613 fixup: clang -Wunused-but-set-variableMarko Mäkelä2022-10-111-1/+5
| | |
| * | Merge 10.3 into 10.4Marko Mäkelä2022-10-1111-19/+38
| |\ \ | | |/
| | * MDEV-19455/MDEV-29342 fixup: Avoid DEBUG_DBUG=-d,...Marko Mäkelä2022-10-114-8/+8
| | |
| | * MDEV-29183: Clarify mysqlbinlog command description (#2245)Zhibo Zhang2022-10-111-1/+1
| | | | | | | | | The statement 'Verify checksum binlog events.' is confusing. Fix word order to make it clear.
| | * MDEV-21905: Galera test galera_var_notify_cmd causes hangJulius Goryavsky2022-10-113-21/+24
| | | | | | | | | | | | | | | The problem is related to performing operations without switching wsrep off, this commit fixes this and allows disabled tests.
| | * Silence clang 13 -Wunused-but-set-variable for BisonMarko Mäkelä2022-10-102-2/+14
| | |
| | * MDEV-29742 heap number overflowMarko Mäkelä2022-10-103-3/+13
| | | | | | | | | | | | | | | | | | | | | A previous fix in commit efd8af535a4fa4aa3dd89a325340b6eb648e1bc8 failed to cover ALTER TABLE. PageBulk::isSpaceAvailable(): Check for record heap number overflow.
| | * Remove redudant defines USE_MB and USE_MB_IDENTAnel Husakovic2022-10-091-5/+2
| | | | | | | | | | | | Reviewer: <wlad@mariadb.com>
| | * Test results updated.Jan Lindström2022-10-064-8/+8
| | |
| | * MDEV-29706 : SIGSEGV in wsrep_TOI_begin on non-Galera buildsJan Lindström2022-10-064-45/+20
| | | | | | | | | | | | Do not allow setting wsrep_on=ON if no provider is set.
| * | MDEV-21905: Galera test galera_var_notify_cmd causes hangJulius Goryavsky2022-10-115-36/+46
| | | | | | | | | | | | | | | The problem is related to performing operations without switching wsrep off, this commit fixes this and allows disabled tests.
| * | A followup for MDEV-29672 Add MTR tests covering key and key segment flags ↵Alexander Barkov2022-10-104-18/+2301
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and types Adding debug output for key and keyseg flags at ha_myisam::open() time. So now there are three points of debug output: 1. In the very end of mysql_prepare_create_table() 2. In ha_myisam::create(), after the table2myisam() call 3. In ha_myisan::open(), after the mi_open() call mi_create(), which is is called between 2 and 3, modifies flags for some data types, so the output in 2 and 3 is different.
| * | MDEV-29707 : Incorrect/bad errno on enabling wsrep_on after setting dummy ↵Jan Lindström2022-10-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | wsrep_provider on non-Galera build Fix error message to contain correct errno. This commit was tested interactively because mtr will notice if you provide wrong wsrep_provider in config and you may not change wsrep_provider dynamically.
| * | MDEV-25389 : Assertion `!is_thread_specific || (mysqld_server_initialized && ↵Jan Lindström2022-10-096-6/+56
| | | | | | | | | | | | | | | | | | | | | thd)' failed in void my_malloc_size_cb_func(long long int, my_bool) If wsrep slave thread creation fails for some reason we need to handle this error correctly and set actual running slave threads accordingly.
| * | MDEV-26597 : Assertion `!wsrep_has_changes(thd) || (thd->lex->sql_command == ↵Jan Lindström2022-10-0910-16/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SQLCOM_CREATE_TABLE && !thd->is_current_stmt_binlog_format_row())' failed. If repl.max_ws_size is set too low following CREATE TABLE could fail during commit. In this case wsrep_commit_empty should allow rolling it back if provider state is s_aborted. Furhermore, original ER_ERROR_DURING_COMMIT does not really tell anything clear for user. Therefore, this commit adds a new error ER_TOO_BIG_WRITESET. This will change some test cases output.
| * | MDEV-27123 : auto_increment_increment and auto_increment_offset reset to 1 ↵Jan Lindström2022-10-094-2/+39
| | | | | | | | | | | | | | | | | | | | | | | | in current session after alter table on auto-increment column Problem was that in ALTER TABLE execution variables were set to 1 even when wsrep_auto_increment_control is OFF. We should set them only when wsrep_auto_increment_control is ON.
| * | MDEV-29142 : Assertion `!_current_thd()' failed in void ↵Jan Lindström2022-10-093-6/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | destroy_background_thd(THD*) In test user has set WSREP_ON=OFF this causes streaming replication recovery to fail and this caused call to unireg_abort(). However, this call is not necessary and we can let transaction to fail. Naturally, if real user does this he needs to bootstrap his cluster.
| * | typo fixed, followup for 3fe55fa8be9Sergei Golubchik2022-10-073-1/+19
| | |
| * | CREATE ... VALUES ... didn't require INSERT privilegeSergei Golubchik2022-10-073-5/+42
| | |
| * | Mroonga: GCC 12.2.0 -Og -Wmaybe-uninitializedMarko Mäkelä2022-10-072-49/+47
| | |
| * | Groonga: GCC 12.2.0 -Og -Wuse-after-freeMarko Mäkelä2022-10-071-2/+2
| | | | | | | | | | | | This message would always have been invoked on ptr=NULL.
| * | MDEV-29613 fixup: Mroonga -Wunused-functionMarko Mäkelä2022-10-071-1/+1
| | |
* | | MDEV-28576 RENAME COLUMN with NOCOPY algorithm leads to corrupt partitioned ↵Aleksey Midenkov2022-10-076-1/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | table 10.5 part: test cases and comments. The code is in the merge commit 74fe1c44aa1 When f.ex. table is partitioned by HASH(a) and we rename column `a' to `b' partitioning filter stays unchanged: HASH(a). That's the wrong behavior. The patch updates partitioning filter in accordance to the new columns names. That includes partition/subpartition expression and partition/subpartition field list.
* | | Merge 10.4 into 10.5Aleksey Midenkov2022-10-076-6/+92
|\ \ \ | |/ /
| * | Merge 10.3 into 10.4Aleksey Midenkov2022-10-066-6/+97
| |\ \ | | |/
| | * MDEV-29697 Assertion failure in Diagnostics_area::set_ok_statusAleksey Midenkov2022-10-053-0/+22
| | | | | | | | | | | | | | | | | | upon CREATE OR REPLACE causing ER_UPDATE_TABLE_USED Missed set return status to 1.
| | * MDEV-28576 RENAME COLUMN with NOCOPY algorithm leads to corrupt partitioned ↵Aleksey Midenkov2022-10-053-0/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | table When f.ex. table is partitioned by HASH(a) and we rename column `a' to `b' partitioning filter stays unchanged: HASH(a). That's the wrong behavior. The patch updates partitioning filter in accordance to the new columns names. That includes partition/subpartition expression and partition/subpartition field list.
| | * MDEV-28576 Ability to manipulate List<const char *>Aleksey Midenkov2022-10-051-6/+6
| | | | | | | | | | | | | | | | | | | | | For "const char *" replace() and after() accepted const as "T *" and passed forward "void *". This cannot be cast implicitly, so we better use "const void *" instead of "void *" in the input interface. This way we avoid problems with using List for any const type.
* | | MDEV-29710: Disable a timing-sensitive test on ValgrindMarko Mäkelä2022-10-061-0/+1
| | |
* | | MDEV-29508 work-around: Disable hanging test on ValgrindMarko Mäkelä2022-10-061-0/+3
| | |
* | | MemorySanitizer: Disable tests that time outMarko Mäkelä2022-10-062-0/+4
| | |
* | | MDEV-29710: Disable some slow tests on ValgrindMarko Mäkelä2022-10-063-0/+3
| | |
* | | Merge 10.4 into 10.5Marko Mäkelä2022-10-06108-551/+923
|\ \ \ | |/ /
| * | MDEV-27682: Temporarily disable a failing testMarko Mäkelä2022-10-061-0/+1
| | |
| * | MDEV-29710: Skip main.update_use_source on ValgrindMarko Mäkelä2022-10-061-0/+1
| | | | | | | | | | | | | | | | | | | | | This test is not slow, but it reliably produces an EXPLAIN difference (number of rows) on the Valgrind builder. A possible explanation could be that the purge threads are not being scheduled. Valgrind runs all threads in a single thread.
| * | MDEV-29710: Skip some more tests on ValgrindMarko Mäkelä2022-10-0517-0/+18
| | |
| * | Merge 10.3 into 10.4Marko Mäkelä2022-10-0546-511/+838
| |\ \ | | |/