summaryrefslogtreecommitdiff
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-18791 Wrong error upon creating Aria table with long index on BLOBSachin Setiya2020-02-021-0/+5
| | | | | If we have long unique key for aria engine return too long key error, because Aria does not support key on virtual generated column.
* MDEV-21256 after-merge fix: Use std::atomicMarko Mäkelä2020-02-012-7/+6
| | | | | Starting with MariaDB Server 10.4, C++11 is being used. Hence, std::atomic should be preferred to my_atomic.
* MDEV-19845: Make my_cpu.h self-containedMarko Mäkelä2020-02-011-2/+1
| | | | Fix up commit f5c080c7353cc9c30d0b269c07024cd38253c3bc
* MDEV-17844 recs_off_validate() fails in page_zip_write_trx_id_and_roll_ptr()Marko Mäkelä2020-01-311-0/+15
| | | | | | | | | | | | | | | | | | | | In commit 0e5a4ac2532c64a545796c787354dc41d61d0e62 (MDEV-15562) we introduced was a bogus debug check failure that does not affect the correctness of the release build. With a fixed-length PRIMARY KEY, we do not have to recompute the rec_get_offsets() after restarting the mini-transaction, because the offsets of DB_TRX_ID,DB_ROLL_PTR are not going to change. row_undo_mod_clust(): Invoke rec_offs_make_valid() to keep the debug check in page_zip_write_trx_id_and_roll_ptr() happy. The scenario to reproduce this bug should be rather unlikely: In the time frame when row_undo_mod_clust() has committed its first mini-transaction and has not yet started the next one, another mini-transaction must do something that causes the page to be reorganized, split or merged.
* Fixed compiler warnings from gcc 7.4.1Monty2020-01-2937-182/+240
| | | | - Fixed possible error in rocksdb/rdb_datadic.cc
* Merge branch '10.3' into 10.4Oleksandr Byelkin2020-01-244-20/+23
|\
| * Merge branch '10.2' into 10.3Oleksandr Byelkin2020-01-244-20/+23
| |\
| | * Remove an unused tokuvalgrind scriptMarko Mäkelä2020-01-232-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | This is the only symlink in the repository. Symlinks can cause trouble when using file systems or operating systems that do not support them. Also remove the unused file DartConfig.cmake that refers to the script.
| | * MDEV-20775: page_zip_validate() failure due to AUTO_INCREMENTMarko Mäkelä2020-01-231-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cmake -DWITH_INNODB_EXTRA_DEBUG:BOOL=ON was broken ever since commit 8777458a6eb73ac1d7d864ebac390ea7039e21c1 (MDEV-6076 Persistent AUTO_INCREMENT for InnoDB). There is a race condition between page reads that call page_zip_validate() (while holding clustered index root page S-latch) and writes that update PAGE_ROOT_AUTO_INC (with buf_block_t::lock SX-latch, compatible with S-latch). page_zip_validate_low(): Skip the PAGE_ROOT_AUTO_INC field on clustered index root pages in order to avoid false positives.
| | * MDEV-14183: aria_pack segfaults in compress_maria_fileVlad Lesin2020-01-211-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Column definition order in st_maria_share::columndef can differ from order of fields in record(see also st_maria_share::column_nr, st_maria_columndef::column_nr, _ma_column_nr_write(), _ma_column_nr_read()). This was not taken into account in aria_pack tool. The fix is to initialize elements of HUFF_COUNTS array in the correct order.
* | | fix perfschema.start_server_innodb test (related to MDEV-17571)Oleksandr Byelkin2020-01-241-1/+1
| | |
* | | Merge branch '10.3' into 10.4Oleksandr Byelkin2020-01-21207-650/+2090
|\ \ \ | |/ /
| * | Merge branch '10.2' into 10.3Oleksandr Byelkin2020-01-21207-650/+2090
| |\ \ | | |/
| | * Merge branch '10.1' into 10.2Oleksandr Byelkin2020-01-20203-631/+2053
| | |\
| | | * Merge branch 'merge-tokudb-5.6' into 10.1Oleksandr Byelkin2020-01-1927-111/+239
| | | |\
| | | | * 5.6.46-86.2Oleksandr Byelkin2020-01-1928-112/+249
| | | | |
| | | * | Merge branch 'merge-perfschema-5.6' into 10.1Oleksandr Byelkin2020-01-19171-515/+1712
| | | |\ \
| | | | * | 5.6.47Oleksandr Byelkin2020-01-19173-526/+1733
| | | | | |
| | | * | | Merge remote-tracking branch 'connect/10.1' into 10.1Oleksandr Byelkin2020-01-1944-1010/+1299
| | | |\ \ \
| | | | * | | - Update grant tests for new MariaDB version 10.1.44Olivier Bertrand2020-01-1212-324/+415
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: storage/connect/mysql-test/connect/disabled.def modified: storage/connect/mysql-test/connect/r/grant.result modified: storage/connect/mysql-test/connect/r/ini_grant.result modified: storage/connect/mysql-test/connect/r/mysql_grant.result modified: storage/connect/mysql-test/connect/r/xml2_grant.result modified: storage/connect/mysql-test/connect/r/xml_grant.result modified: storage/connect/mysql-test/connect/t/grant.inc modified: storage/connect/mysql-test/connect/t/grant.test modified: storage/connect/mysql-test/connect/t/grant2.test modified: storage/connect/mysql-test/connect/t/ini_grant.test modified: storage/connect/mysql-test/connect/t/mysql_grant.test
| | | | * | | Merge with last MariaDB versionOlivier Bertrand2020-01-112897-215180/+24970
| | | | |\ \ \
| | | | * | | | - Fix MDEV-21450Olivier Bertrand2020-01-111-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Failed compile when XML table type is not supported. Was because XMLDEF was unconditionally called from REST table. modified: storage/connect/tabrest.cpp
| | | | * | | | Update to version 1.07 (as for MariaDB 10.2)Olivier Bertrand2020-01-0933-721/+913
| | | | | | | |
| | | * | | | | InnoDB 5.6.47 and XtraDB 5.6.46-86.2Marko Mäkelä2020-01-172-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only change is a change of the version number. In MySQL 5.6.46, the copyright comments in a number of files were changed in mysql/mysql-server@f1a006ece7521cb02f9b961e6fad04d12ddfbab3 but there was no functional change to InnoDB code. This was also reflected by XtraDB. We are not changing the copyright comments in MariaDB Server for now. Between MySQL 5.6.46 and 5.6.47, InnoDB was not changed at all. Actually, we had forgotten to update the InnoDB version number to 5.6.46. With this change, we are updating InnoDB from 5.6.45 to 5.6.47 and XtraDB from 5.6.45-86.1 to 5.6.46-86.2.
| | * | | | | | Merge remote-tracking branch 'connect/10.2' into 10.2Oleksandr Byelkin2020-01-205-21/+39
| | |\ \ \ \ \ \
| | | * | | | | | - Fix MDEV-21450Olivier Bertrand2020-01-123-9/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Failed compile when XML table type is not supported. Was because XMLDEF was unconditionally called from REST table. modified: storage/connect/tabrest.cpp - Make cmake less verbose modified: storage/connect/CMakeLists.txt - Hide Switch_to_definer_security_ctx not defined for 10.1 and 10.0 modified: storage/connect/ha_connect.cc
| | | * | | | | | Make LIKE_FUNC only for version >= 10.2 in ha_connect.ccOlivier Bertrand2019-12-101-0/+2
| | | | | | | | |
| | | * | | | | | Fix reldef.cpp (wrong flag for catalog columns)Olivier Bertrand2019-12-041-6/+4
| | | | | | | | |
| | | * | | | | | Fix tabrest.cpp when used for OEMOlivier Bertrand2019-12-031-8/+9
| | | | | | | | |
| | | * | | | | | Make restGetFile extern COlivier Bertrand2019-12-033-4/+8
| | | | | | | | |
| | | * | | | | | comment out <dlfnc.h> in tabrest.cppcOlivier Bertrand2019-12-011-3/+3
| | | | | | | | |
| | | * | | | | | <dlfnc.h> in tabrest.cpp and redef.cppOlivier Bertrand2019-12-012-4/+4
| | | | | | | | |
| | | * | | | | | Add include <dlfnc.h> in tabrest.cppOlivier Bertrand2019-11-301-1/+4
| | | | | | | | |
* | | | | | | | | MDEV-21539 Assertion ...prtype... failed in row_log_table_apply_convert_mrecMarko Mäkelä2020-01-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug is a cousin of MDEV-18719 and MDEV-20190, which failed to relax a debug assertion in one more code path. row_log_table_apply_convert_mrec(): Use dict_col_t::same_format() and ignore all format-agnostic flags in the assertions.
* | | | | | | | | Merge 10.3 into 10.4Marko Mäkelä2020-01-2025-397/+350
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | The MDEV-17062 fix in commit c4195305b2a8431f39a4c75cc1c66ba43685f7a0 was omitted.
| * | | | | | | | Merge 10.2 into 10.3Marko Mäkelä2020-01-1823-340/+289
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | MDEV-21499 Merge new release of InnoDB 5.7.29 to 10.2Marko Mäkelä2020-01-172-4/+10
| | |\ \ \ \ \ \ \
| | | * | | | | | | Bug #30499288 - GCC 9.2.1 REPORTS A NEW WARNING FOR OS_FILE_GET_PARENT_DIRNikša Skeledžija2020-01-171-2/+8
| | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fixed a warning visible in optimized build related to calling memcpy with length parameters larger than ptrdiff_t max. rb#23333 approved by Annamalai Gurusami <annamalai.gurusami@oracle.com>
| | * | | | | | | MDEV-21513: Avoid some crashes in ALTER TABLE...IMPORT TABLESPACEMarko Mäkelä2020-01-171-5/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IndexPurge::next(): Replace btr_pcur_move_to_next_user_rec() with some equivalent code that performs sanity checks without killing the server. Perform some additional sanity checks as well. This change is motivated by mysql/mysql-server@48de4d74f4d2f10cd01b129753c7dfa908cf36b5 which unnecessarily introduces storage overhead to btr_pcur_t and uses a test case that injects a fault somewhere else, not in the code path that was modified.
| | * | | | | | | MDEV-21512 InnoDB may hang due to SPATIAL INDEXMarko Mäkelä2020-01-176-138/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MySQL 5.7.29 includes the following fix: Bug #30287668 INNODB: A LONG SEMAPHORE WAIT mysql/mysql-server@5cdbb22b51cf2b35dbdf5666a251ffbec2f84dec There is no test case. It seems that the problem could occur when a spatial index is large and peculiar enough so that multiple R-tree leaf pages will have the exactly same maximum bounding rectangle (MBR). The commit message suggests that the hang can occur when R-tree non-leaf pages are being merged, which should only be possible during transaction rollback or the purge of transaction history, when the R-tree index is at least 2 levels high and very many records are being deleted. The message says that a comparison result that two spatial index node pointer records are equal will cause an infinite loop in rtr_page_copy_rec_list_end_no_locks(). Hence, we must include the child page number in the comparison to be consistent with mysql/mysql-server@2e11fe0e152e34d73579e1a9ec19aedc3f6010f6. We fix this bug in a simpler way, involving fewer code changes. cmp_rec_rec(): Renamed from cmp_rec_rec_with_match(). Assert that rec2 always resides in an index page. Treat non-leaf spatial index pages specially.
| | * | | | | | | MDEV-21511: Remove unnecessary codeMarko Mäkelä2020-01-1710-57/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we will be invoking dtuple_get_n_ext() instead of letting btr_push_update_extern_fields() update an already calculated value, it is unnecessary to calculate the n_ext upfront. row_rec_to_index_entry(), row_rec_to_index_entry_low(): Remove the output parameter n_ext.
| | * | | | | | | MDEV-21511 Wrong estimate of affected BLOB columns in updateMarko Mäkelä2020-01-174-100/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During update, rollback, or MVCC read, we may miscalculate the number of off-page columns, and thus the size of the clustered index record. The function btr_push_update_extern_fields() is mostly redundant, because the off-page columns would also be moved by row_upd_index_replace_new_col_val(), which is invoked via row_upd_index_replace_new_col_vals(). btr_push_update_extern_fields(): Remove. This is based on mysql/mysql-server@1fa475b85d24de4b9ce2958c0eed738c221fc82c which refines a fix for a recovery bug fix mysql/mysql-server@ce0a1e85e24e48b8171f767b44330da635a6ea0a in MySQL 5.7.5. No test case was provided by Oracle. Some of the changed code is being covered by the existing test innodb.blob-crash.
| | * | | | | | | MDEV-21509 Possible hang during purge of history, or rollbackMarko Mäkelä2020-01-174-40/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WL#6326 in MariaDB 10.2.2 introduced a potential hang on purge or rollback when an index tree is being shrunk by multiple levels. This fix is based on mysql/mysql-server@f2c58526300c0d84837effa26d37cbd5d2694967 with the main difference that our version of the test case uses DEBUG_SYNC instrumentation on ROLLBACK, not on purge. btr_cur_will_modify_tree(): Simplify the check further. This is the actual bug fix. row_undo_mod_remove_clust_low(), row_undo_mod_clust(): Add DEBUG_SYNC instrumentation for the test case.
| * | | | | | | | Merge branch '10.2' into 10.3Sergei Petrunia2020-01-172-25/+49
| |\ \ \ \ \ \ \ \ | | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # mysql-test/suite/galera/r/MW-388.result # mysql-test/suite/galera/t/MW-388.test # mysql-test/suite/innodb/r/truncate_inject.result # mysql-test/suite/innodb/t/truncate_inject.test # mysql-test/suite/rpl/r/rpl_stop_slave.result # mysql-test/suite/rpl/t/rpl_stop_slave.test # sql/sp_head.cc # sql/sp_head.h # sql/sql_lex.cc # sql/sql_yacc.yy # storage/xtradb/buf/buf0dblwr.cc
| | * | | | | | | Merge branch '10.1' into 10.2Sergei Petrunia2020-01-172-2/+6
| | |\ \ \ \ \ \ \ | | | | |/ / / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # sql/sp_head.cc # sql/sql_select.cc # sql/sql_trigger.cc
| | | * | | | | | MDEV-21500 Server hang when using simulated AIOMarko Mäkelä2020-01-162-2/+6
| | | | |_|/ / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The write-heavy test innodb_zip.wl6501_scale_1 timed out on 10.2 60d7011c5f6ebda057d3e730c6f67519a1fb7f0c for me. Out of os_aio_n_segments=6, 5 are waiting for an event in os_aio_simulated_handler(). One thread is waiting for a write to complete in buf_dblwr_add_to_batch(), but that would never happen, because nothing is waking up the simulated AIO handler threads. This hang appears to have been introduced in MySQL 5.6.12 in mysql/mysql-server@26cfde776cdf5ce61bd5cc494dfc1df28c76977f.
| | * | | | | | MDEV-21454 Show actual mismatching values in mismatch error messages from ↵bb-10.2-MDEV-21454Eugene Kosov2020-01-101-24/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | row_import::match_table_columns() Patch by Hartmut Holzgraefe
| | * | | | | | Fixup MDEV-21429: Correct a definitionMarko Mäkelä2020-01-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | INNOBASE_ALTER_NOVALIDATE: Remove the set of operations INNOBASE_ONLINE_CREATE that was accidentally included in the definition. In the merge of 82187a1221467c7d193fca60a11a020ab4228e4a to 10.3 (in commit eda719793acd90f6157bcb825722dab674376bf4) the flags were defined correctly. This bug was caught by the test innodb_zip.index_large_prefix.
| * | | | | | | fix compilationEugene Kosov2020-01-081-10/+7
| | | | | | | |
* | | | | | | | MDEV-21485 ASAN use-after-poison in dfield_get_len or Assertion `pos < ↵Marko Mäkelä2020-01-151-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | index->n_def' failed The server would crash when instantly reordering the columns of a table whose all columns belong to the PRIMARY KEY.