summaryrefslogtreecommitdiff
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-17540 Server crashes in row_purge after TRUNCATE TABLEMarko Mäkelä2019-05-101-0/+8
| | | | | | | | | | | | | row_purge_upd_exist_or_extern_func(): Check for node->vcol_op_failed() after row_purge_remove_sec_if_poss(), like row_purge_del_mark() did. This avoids us dereferencing the node->table=NULL pointer. The test case, submitted by Elena Stepanova, is not deterministic and does not repeat the bug on 10.2. With the added loop, for me, it reliably crashes 10.3 without the fix. I was unable to create a deterministic test case for either 10.2 or 10.3. Reviewed by Thirunarayanan Balathandayuthapani
* Merge 10.1 into 10.2Marko Mäkelä2019-05-1036-935/+746
|\
| * MDEV-13893 encryption.innodb-redo-badkey failed in buildbot with page cannot ↵Thirunarayanan Balathandayuthapani2019-05-102-16/+2
| | | | | | | | | | | | | | | | | | | | | | | | be decrypted buf_dblwr_process(): Remove the useless warning that a copy of a page in the doublewrite buffer is corrupted. We already report an error if a corrupted page cannot be recovered from the doublewrite buffer. Note: In MariaDB 10.1, the original bug reported in MDEV-13893 could still be easily repeatable. In MariaDB 10.2.24, MDEV-12699 should have reduced the probability considerably.
| * MDEV-18220: race condition in fts_get_table_name()Marko Mäkelä2019-05-108-34/+66
| | | | | | | | fts_get_table_name(): Add the parameter bool dict_locked=false.
| * MDEV-18220: Backport some code from MariaDB 10.2Marko Mäkelä2019-05-1014-536/+612
| | | | | | | | | | | | | | | | | | | | fts_get_table_name(): Output to a caller-allocated buffer. fts_get_table_name_prefix(): Use the lower-overhead allocation ut_malloc() instead of mem_alloc(). This is based on mysql/mysql-server@d1584b9f38ff0bcf609d181db35f74108e022168 in MySQL 5.7.4.
| * MDEV-18220: heap-use-after-free in fts_get_table_name_prefix()Marko Mäkelä2019-05-1016-74/+28
| | | | | | | | | | | | | | | | | | | | | | | | fts_table_t::parent: Remove the redundant field. Refer to table->name.m_name instead. fts_update_sync_doc_id(), fts_update_next_doc_id(): Remove the redundant parameter table_name. fts_get_table_name_prefix(): Access the dict_table_t::name. FIXME: Ensure that this access is always covered by dict_sys->mutex.
| * MDEV-18220: Remove some redundant data structuresMarko Mäkelä2019-05-106-326/+270
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fts_state_t, fts_slot_t::state: Remove. Replaced by fts_slot_t::running and fts_slot_t::table_id as follows. FTS_STATE_SUSPENDED: Removed (unused). FTS_STATE_EMPTY: Removed. table_id=0 will denote empty slots. FTS_STATE_RUNNING: Equivalent to running=true. FTS_STATE_LOADED, FTS_STATE_DONE: Equivalent to running=false. fts_slot_t::table: Remove. Tables will be identified by table_id. After opening a table, we will check fil_table_accessible() before accessing the data. fts_optimize_new_table(), fts_optimize_del_table(), fts_optimize_how_many(), fts_is_sync_needed(): Remove the parameter tables, and use the static variable fts_slots (which was introduced in MariaDB 10.2) instead.
| * MDEV-19399 do not call slow my_timer_init() several timesEugene Kosov2019-05-107-55/+53
| | | | | | | | | | | | | | | | | | | | | | No functional change. Call my_timer_init() only once and then reuse it from InnoDB and perfschema storage engines. This patch speeds up empty test for me like this: ./mtr -mem innodb.kevg,xtradb 1.21s user 0.84s system 34% cpu 5.999 total ./mtr -mem innodb.kevg,xtradb 1.12s user 0.60s system 31% cpu 5.385 total
| * Removed dead codeSergey Vojtovich2019-05-091-57/+0
| |
| * MDEV-16060 - InnoDB: Failing assertion: ut_strcmp(index->name, key->name)Sergey Vojtovich2019-05-092-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | A sequel to 9180e86 and 149b754. ALTER TABLE ... ADD FOREIGN KEY may crash if parent table is updated concurrently. Block FK parent table updates even earlier, before intermediate child table is created. Use proper charset info for my_casedn_str() and don't update original identifiers so that lower_cast_table_names == 2 is honoured.
* | MDEV-19408 Assertion on trx->state failed in ReadView::copy_trx_idsmariadb-10.2.24Marko Mäkelä2019-05-081-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ReadView::copy_trx_ids(): Relax a debug check. It failed to account for TRX_STATE_PREPARED_RECOVERED, which was introduced in MDEV-15772. It was also reading trx->state twice and failed to tolerate TRX_STATE_COMMITTED_IN_MEMORY, which could be concurrently assigned in lock_trx_release_locks(), which is not holding trx_sys->mutex. This bug is specific to the MariaDB 10.2 series. The ReadView was introduced in MariaDB 10.2.2 by merging the code that had been introduced in MySQL 5.7.2. In MariaDB 10.3, ReadView::snapshot() would use the lock-free trx_sys.rw_trx_hash. MDEV-14638 moved the corresponding assertion to trx_sys_t::find(), where it was duly protected by trx->mutex, and later MDEV-14756 moved the check to rw_trx_hash_t::validate_element(). This check was correctly adjusted when MDEV-15772 was merged to 10.3.
* | MDEV-13942 InnoDB SPATIAL INDEX corruption during root page splitqingda20192019-05-071-1/+8
| | | | | | | | | | | | | | | | The problem is in rtr_adjust_upper_level(), which allocates node_ptr from heap, and then passes the same heap to btr_cur_pessimistic_insert(). The documentation of btr_cur_pessimistic_insert() says that the heap can be emptied. If the heap is emptied and something else is allocated from the heap, the node_ptr can become corrupted.
* | changes in innodb has influence on this test in rocksdb test suiteOleksandr Byelkin2019-05-061-3/+3
| |
* | Merge branch '10.1' into 10.2Oleksandr Byelkin2019-05-064-33/+50
|\ \ | |/
| * Revert "MDEV-19399 do not call slow my_timer_init() several times"Marko Mäkelä2019-05-065-49/+55
| | | | | | | | | | | | | | This reverts commit 8dc670a5e8d322d8e1871b8c2ae8695a8779f739. The symbol sys_timer_info was not being exported correctly, which caused linking failures on some platforms.
| * MDEV-18214 remove some duplicated MONITOR countersEugene Kosov2019-05-064-48/+50
| | | | | | | | | | | | | | MONITOR_PENDING_LOG_WRITE MONITOR_PENDING_CHECKPOINT_WRITE MONITOR_LOG_IO: read values from log_t members instead of updating own monitor variables
| * MDEV-19399 do not call slow my_timer_init() several timesEugene Kosov2019-05-065-55/+49
| | | | | | | | | | | | | | | | | | | | | | No functional change. Call my_timer_init() only once and then reuse it from InnoDB and perfschema storage engines. This patch speeds up empty test for me like this: ./mtr -mem innodb.kevg,xtradb 1.21s user 0.84s system 34% cpu 5.999 total ./mtr -mem innodb.kevg,xtradb 1.12s user 0.60s system 31% cpu 5.385 total
* | fix of resultsOleksandr Byelkin2019-05-051-49/+49
| |
* | Merge remote-tracking branch 'connect/10.2' into 10.2Oleksandr Byelkin2019-05-052-52/+49
|\ \
| * | Fixed compiler warning in connect engineOlivier Bertrand2019-03-251-1/+1
| | |
| * | TypoOlivier Bertrand2019-03-241-5/+7
| | |
| * | - Fix MDEV-15793: Server crash in PlugCloseFile with sql_mode=''Olivier Bertrand2019-03-234-84/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed by replacing sprinf by snprintf in ShowValue to avoid buffer overflow. It nows always use a buffer and returns int. modified: storage/connect/tabdos.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/value.cpp modified: storage/connect/value.h
| * | - Fix MDEV-18292: CONNECT Engine JDBC not able to issueOlivier Bertrand2019-03-033-46/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | simple UPDATE statement from trigger or stored procedure Was not fixed when the same table was called several times with different modes. Fixed by checking if a new statement is compatible in the start_stmt function. It nows do the same checks than external_lock. modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h - typo modified: storage/connect/user_connect.cc
| * | Fix xml result by setting eol as lf modified: ↵Olivier Bertrand2019-02-091-393/+393
| | | | | | | | | | | | storage/connect/mysql-test/connect/r/xml.result
| * | Fix xml result mismatch modified: ↵Olivier Bertrand2019-02-091-344/+344
| | | | | | | | | | | | storage/connect/mysql-test/connect/r/xml.result
| * | - Fix GetTableName that returned wrong value under WindowsOlivier Bertrand2019-02-091-1/+1
| | | | | | | | | | | | modified: storage/connect/ha_connect.cc
* | | Merge branch '10.1' into 10.2Oleksandr Byelkin2019-05-0427-160/+305
|\ \ \ | | |/ | |/|
| * | MDEV-19265 Server should throw warning if event is created and ↵Vladislav Vaintroub2019-04-281-0/+2
| | | | | | | | | | | | event_scheduler = OFF
| * | CONNECT compilation failureSergei Golubchik2019-04-263-11/+3
| | |
| * | Merge branch 'merge-tokudb-5.6' into 10.1Sergei Golubchik2019-04-269-13/+109
| |\ \
| | * | 5.6.43-84.3Sergei Golubchik2019-04-2643-1088/+1888
| | | |
| * | | Squashed commit of connect/10.0:Olivier Bertrand2019-04-2614-180/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit ac275d0b4ad (connect/10.0) Author: Olivier Bertrand <bertrandop@gmail.com> Date: Wed Mar 27 12:46:20 2019 +0100 Comment out unrecognized command line options: Modified CMakeLists.txt commit 592f1f75ad6 Author: Olivier Bertrand <bertrandop@gmail.com> Date: Tue Mar 26 19:52:33 2019 +0100 Replace Command not recognized by CMake modified: CMakeLists.txt commit 00f72199b16 Author: Olivier Bertrand <bertrandop@gmail.com> Date: Tue Mar 26 18:15:08 2019 +0100 - Fix MDEV-15793: Server crash in PlugCloseFile with sql_mode='' Fixed by replacing sprinf by snprintf in ShowValue to avoid buffer overflow. It nows always use a buffer and returns int. modified: storage/connect/tabdos.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/value.cpp modified: storage/connect/value.h - Fix MDEV-18292: CONNECT Engine JDBC not able to issue simple UPDATE statement from trigger or stored procedure Was not fixed when the same table was called several times with different modes. Fixed by checking if a new statement is compatible in the start_stmt function. It nows do the same checks than external_lock. modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h - typo modified: storage/connect/user_connect.cc - Fix GetTableName that returned wrong value under Windows modified: storage/connect/ha_connect.cc - Fix MDEV-13136: enhance CREATE SERVER MyServerName FOREIGN DATA WRAPPER to work with CONNECT engine modified: storage/connect/tabjdbc.cpp - Add a function to retrieve User variable value (DEVELOPMENT only) modified: storage/connect/ha_connect.cc modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/tabjdbc.cpp - Fix MDEV-18192: CONNECT Engine JDBC not able to issue simple UPDATE statement from trigger or stored procedure modified: storage/connect/tabext.cpp modified: storage/connect/tabext.h modified: storage/connect/tabjdbc.cpp - Enable CONNECT tables to have triggers Update version number modified: storage/connect/ha_connect.cc - Make user and password defined in CREATE TABLE have precedence on the ones specified in a Federated Server. modified: storage/connect/tabjdbc.cpp - JSONColumns: Copy locally constant strings to fix error in OEM modules modified: storage/connect/tabjson.cpp commit 99de7f4e486 Author: Olivier Bertrand <bertrandop@gmail.com> Date: Sun Jan 27 15:16:15 2019 +0100 - Fix MDEV-18192: CONNECT Engine JDBC not able to issue simple UPDATE statement from trigger or stored procedure modified: storage/connect/tabext.cpp modified: storage/connect/tabext.h modified: storage/connect/tabjdbc.cpp - Enable CONNECT tables to have triggers Update version number modified: storage/connect/ha_connect.cc - Make user and password defined in CREATE TABLE have precedence on the ones specified in a Federated Server. modified: storage/connect/tabjdbc.cpp - JSONColumns: Copy locally constant strings to fix error in OEM modules modified: storage/connect/tabjson.cpp
| * | | MDEV-19331 Merge new release of InnoDB 5.6.44 to 10.1Marko Mäkelä2019-04-257-15/+61
| |\ \ \
| | * | | Bug#28573894 ALTER PARTITIONED TABLE ADD AUTO_INCREMENT DIFF RESULT ↵Marko Mäkelä2019-04-252-2/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DEPENDING ON ALGORITHM For partitioned table, ensure that the AUTO_INCREMENT values will be assigned from the same sequence. This is based on the following change in MySQL 5.6.44: commit aaba359c13d9200747a609730dafafc3b63cd4d6 Author: Rahul Malik <rahul.m.malik@oracle.com> Date: Mon Feb 4 13:31:41 2019 +0530 Bug#28573894 ALTER PARTITIONED TABLE ADD AUTO_INCREMENT DIFF RESULT DEPENDING ON ALGORITHM Problem: When a partition table is in-place altered to add an auto-increment column, then its values are starting over for each partition. Analysis: In the case of in-place alter, InnoDB is creating a new sequence object for each partition. It is default initialized. So auto-increment columns start over for each partition. Fix: Assign old sequence of the partition to the sequence of next partition so it won't start over. RB#21148 Reviewed by Bin Su <bin.x.su@oracle.com>
| | * | | Clean up ib_sequence::m_max_valueMarko Mäkelä2019-04-254-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correctly document the usage of m_max_value. Remove the const qualifier, so that the implicit assignment operator can be used. Make all members of ib_sequence private, and add an accessor member function max_value().
| | * | | Bug #19811005 ALTER TABLE ADD INDEX DOES NOT UPDATE INDEX_LENGTH IN I_S TABLESAakanksha Verma2019-04-252-4/+6
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PROBLEM ======= An add index doesn't update index length stats in information schema TABLES table. FIX === Update the dict_table_t variable with index length stats that is actually calculated post alter . As this variable is used to populated the information schema index length statistics. Reviewed by: Bin su<bin.x.su@oracle.com> RB: 21277
| * | | 5.6.43-84.3Marko Mäkelä2019-04-252-3/+5
| |\ \ \
| | * | | PS-4989: Fixing innodb_track_changed_pages debug validationZsolt Parragi2019-04-251-1/+3
| |/ / / | | | | | | | | | | | | | | | | | | | | In debug builds, this setting is allowed to be turned off temporarily after it was turned on during startup. Howewer memory garbage also caused it to be accidentally turned on when it was disabled at startup.
* | | | MDEV-19385: Inconsistent definition of dtuple_get_nth_v_field()Marko Mäkelä2019-05-0321-358/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The accessor dtuple_get_nth_v_field() was defined differently between debug and release builds in MySQL 5.7.8 in mysql/mysql-server@c47e1751b742454de553937039bbf2bcbe3c6bc7 and a debug assertion to document or enforce the questionable assumption tuple->v_fields == &tuple->fields[tuple->n_fields] was missing. This was apparently no problem until MDEV-11369 introduced instant ADD COLUMN to MariaDB Server 10.3. With that work present, in one test case, trx_undo_report_insert_virtual() could in release builds fetch the wrong value for a virtual column. We replace many of the dtuple_t accessors with const-preserving inline functions, and fix missing or misleadingly applied const qualifiers accordingly.
* | | | MDEV-19346: Remove dummy InnoDB log checkpointsMarko Mäkelä2019-05-0315-120/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | log_checkpoint(), log_make_checkpoint_at(): Remove the parameter write_always. It seems that the primary purpose of this parameter was to ensure in the function recv_reset_logs() that both checkpoint header pages will be overwritten, when the function is called from the never-enabled function recv_recovery_from_archive_start(). create_log_files(): Merge recv_reset_logs() to its only caller. Debug instrumentation: Prefer to flush the redo log, instead of triggering a redo log checkpoint. page_header_set_field(): Disable a debug assertion that will always fail due to MDEV-19344, now that we no longer initiate a redo log checkpoint before an injected crash. In recv_reset_logs() there used to be two calls to log_make_checkpoint_at(). The apparent purpose of this was to ensure that both InnoDB redo log checkpoint header pages will be initialized or overwritten. The second call was removed (without any explanation) in MySQL 5.6.3: mysql/mysql-server@4ca37968da54ddc6b3b6628f41428ddba1c79bb8 In MySQL 5.6.8 WL#6494, starting with mysql/mysql-server@00a0ba8ad92569fcf08212b3b8cf046dc8a0ce10 the function recv_reset_logs() was not only invoked during InnoDB data file initialization, but also during a regular startup when the redo log is being resized. mysql/mysql-server@45e91679832219e2593c77185342f11f85232b58 in MySQL 5.7.2 removed the UNIV_LOG_ARCHIVE code, but still did not remove the parameter write_always.
* | | | MDEV-14398 innodb_encryption_rotate_key_age=0 causes innodb_encrypt_tables ↵bb-10.2-MDEV-14398-alternativeThirunarayanan Balathandayuthapani2019-05-024-109/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to be ignored The statement SET GLOBAL innodb_encryption_rotate_key_age=0; would have the unwanted side effect that ENCRYPTION=DEFAULT tablespaces would no longer be encrypted or decrypted according to the setting of innodb_encrypt_tables. We implement a trigger, so that whenever one of the following is executed: SET GLOBAL innodb_encrypt_tables=OFF; SET GLOBAL innodb_encrypt_tables=ON; SET GLOBAL innodb_encrypt_tables=FORCE; all wrong-state ENCRYPTION=DEFAULT tablespaces will be added to fil_system_t::rotation_list, so that the encryption will be added or removed. Note: This will *NOT* happen automatically after a server restart. Before reading the first page of a data file, InnoDB cannot know the encryption status of the data file. The statement SET GLOBAL innodb_encrypt_tables will have the side effect that all not-yet-read InnoDB data files will be accessed in order to determine the encryption status. innodb_encrypt_tables_validate(): Stop disallowing SET GLOBAL innodb_encrypt_tables when innodb_encryption_rotate_key_age=0. This reverts part of commit 50eb40a2a8aa3af6cc271f6028f4d6d74301d030 that addressed MDEV-11738 and MDEV-11581. fil_system_t::read_page0(): Trigger a call to fil_node_t::read_page0(). Refactored from fil_space_get_space(). fil_crypt_rotation_list_fill(): If innodb_encryption_rotate_key_age=0, initialize fil_system->rotation_list. This is invoked both on SET GLOBAL innodb_encrypt_tables and on SET GLOBAL innodb_encryption_rotate_key_age=0. fil_space_set_crypt_data(): Remove. fil_parse_write_crypt_data(): Simplify the logic. This is joint work with Marko Mäkelä.
* | | | MDEV-18429: Simpler implementationMarko Mäkelä2019-04-291-307/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 61f370a3c9997d2c7067b8cf5d39c8ad67dde5aa and implements a simpler fix that is straightforward to merge to 10.3. lock_print_info: Renamed from PrintNotStarted. Dump the entire contents of trx_sys->mysql_trx_list. lock_print_info_rw_recovered: Like lock_print_info, but dump only recovered transactions in trx_sys->rw_trx_list. lock_print_info_all_transactions(): Dump both trx_sys->mysql_trx_list and trx_sys->rw_trx_list. TrxLockIterator, TrxListIterator, lock_rec_fetch_page(): Remove. This is a partial backport of the 10.3 commit a447980ff3ba000968d89e0c0c16239addeaf438 which removed the race-condition-prone ability of the InnoDB monitor to read relevant pages into the buffer pool for some record locks.
* | | | MDEV-14130 InnoDB messages should not refer to the MySQL 5.7 manualMarko Mäkelä2019-04-294-19/+9
| | | | | | | | | | | | | | | | | | | | In InnoDB error messages, replace the hyperlink URLs to point to the MariaDB knowledge base.
* | | | Clean up ut_listMarko Mäkelä2019-04-296-72/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ut_list_validate(), ut_list_map(): Add variants with const Functor& so that these functions can be called with an rvalue. Remove wrapper macros, and add #ifdef UNIV_DEBUG around debug-only code.
* | | | MDEV-18429 Consistent non-locking reads do not appear in TRANSACTIONS ↵Eugene Kosov2019-04-291-20/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | section of SHOW ENGINE INNODB STATUS lock_print_info_all_transactions(): print transactions which are started but not in RW or RO lists. print_not_started(): Replaces PrintNotStarted. Collect the skipped transactions.
* | | | MDEV-19356 Assertion 'space->free_limit == 0 || space->free_limit == free_limit'Marko Mäkelä2019-04-291-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | fil_node_t::read_page0(): Do not replace up-to-date metadata with a possibly old version of page 0 that is being reread from the file. A more up-to-date page 0 could still exists in the buffer pool, waiting to be written back to the file.
* | | | MDEV-19231: Correct an assertionMarko Mäkelä2019-04-291-1/+1
| | | | | | | | | | | | | | | | | | | | BtrBulk::finish(): On error, the B-tree can be corrupted. Only upon successful completion, it makes sense to validate the index.
* | | | MDEV-19342 Merge new release of InnoDB 5.7.26 to 10.2Marko Mäkelä2019-04-263-5/+19
|\ \ \ \
| * | | | Bug #29021730 CRASHING INNOBASE_COL_CHECK_FK WITH FOREIGN KEYSAditya A2019-04-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PROBLEM ------- Function innodb_base_col_setup_for_stored() was skipping to store the base column information for a generated column if the base column was a "STORED" generated column. This later causes a crash in function innoabse_col_check_fk() where it says that a generated columns depends upon two base columns ,but there is information on only one of them. There was a explicit check barring the stored columns being stored, which is wrong because the documentation says that a generated stored column can be a part of a generated column. FIX ---- Store the information of base column if it is a stored generated column. #RB21247 Reviewed by: Debarun Banerjee <debarun.banerjee@oracle.com>
| * | | | Bug #27850600 INNODB ASYNC IO ERROR HANDLING IN IO_EVENTSachin Agarwal2019-04-261-2/+16
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: io_getevents() - read asynchronous I/O events from the completion queue. For each IO event, the res field in io_event tells whether IO event is succeeded or not. To see if the IO actually succeeded we always need to check event.res (negative=error, positive=bytesread/written). LinuxAIOHandler::collect() doesn't check event.res value for each event. which leads to incorrect value in n_bytes for IO context (or IO Slot). Fix: Added a check for event.res negative value. RB: 20871 Reviewed by : annamalai.gurusami@oracle.com