summaryrefslogtreecommitdiff
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-26131 SEGV in ha_innobase::discard_or_import_tablespaceThirunarayanan Balathandayuthapani2021-08-161-83/+176
| | | | | | | | | | | | | | | | | Import operation without .cfg file fails when there is mismatch of index between metadata table and .ibd file. Moreover, MDEV-19022 shows that InnoDB can end up with index tree where non-leaf page has only one child page. So it is unsafe to find the secondary index root page. This patch does the following when importing the table without .cfg file: 1) If the metadata contains more than one index then InnoDB stops the import operation and report the user to drop all secondary indexes before doing import operation. 2) When the metadata contain only clustered index then InnoDB finds the index id by reading page 0 & page 3 instead of traversing the whole tablespace.
* MDEV-26376 pars_info_bind_id() unnecessarily copies stringsMarko Mäkelä2021-08-168-51/+37
| | | | | | | | | | | | | pars_info_bind_id(): Remove the parameter copy_name. It was always being passed as constant TRUE or true. It turns out that copying the string is completely unnecessary. In all calls except the one in fts_get_select_columns_str() and fts_doc_fetch_by_doc_id(), the parameter is being passed as a compile-time constant, and therefore the pointer cannot become stale. In that special call, the string that is being passed is allocated from the same memory heap that pars_info_bind_id() would have been using. pars_info_add_id(): Remove (unused declaration).
* cleanup: specifying plugin dependencies in CMakeLists.txtSergei Golubchik2021-08-033-7/+3
| | | | | | | | | | | | 1. rename option DEPENDENCIES in MYSQL_ADD_PLUGIN() to DEPENDS to be consistent with other cmake commands and macros 2. use this DEPENDS option in plugins 3. add dependencies to the plugin embedded target too 4. plugins don't need to add GenError dependency explicitly, all plugins depend on it automatically
* MDEV-20154 Assertion `len <= col->len | ...` failed in row_merge_buf_addNikita Malyavin2021-07-291-36/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | len was containing garbage, since vctempl->mysql_col_offset was containing old value while calling row_mysql_store_col_in_innobase_format from innobase_get_computed_value(). It was not updated after the first ALTER TABLE call, because it's INPLACE logic considered there's nothing to update, and exited immediately from ha_innobase::inplace_alter_table(). However, vcol metadata needs an update, since vcols structure is changed in mysql record. The regression was introduced by 12614af1fe. There, refcount==1 condition was removed, which turned out to be crucial, though racy. The idea was to update vc_templ after each (sequencing) ALTER TABLE. We should do the same another way, and there may be a plenty of solutions, but the simplest one is to add a following condition: if vcol structure is changed, drop vc_templ; it will be recreated on next ha_innobase::open() call. in prepare_inplace_alter_table. It is safe, since innodb inplace changes require at least HA_ALTER_INPLACE_SHARED_LOCK_AFTER_PREPARE, which guarantee MDL_EXCLUSIVE on this stage. alter_templ_needs_rebuild() also has to track the columns not indexed, to keep vc_templ correct. Note that vc_templ is always kept constructed and available after ha_innobase::open() call, even on INSERT, though no virtual columns are evaluated during that statement inside innodb. In the test case suplied, it will be recreated on the second ALTER TABLE.
* Cleanup: Remove redundant conditionsMarko Mäkelä2021-07-291-11/+2
| | | | | | | | | | | | | ha_innobase::prepare_inplace_alter_table(): Remove always-true conditions. Near the start of the function, we would already have returned if no ALTER TABLE operation flags were set that would require special action from InnoDB. It turns out that the conditions were redundant already when they were introduced in mysql/mysql-server@241387a2b6b61fb8a4f78dc4ad0aaa289400c694 and in commit 068c61978e3a81836d52b8caf11e044290159ad1. Thanks to Nikita Malyavin for noticing this.
* Cleanup: Remove dead codeMarko Mäkelä2021-07-281-6/+0
| | | | | | | | Thanks to Nikita Malyavin for noticing this. The dead code that was originally introduced in mysql/mysql-server@b8bd31740cd7088f3a3c164981c7ccda487d301d was added in commit 2e814d4702d71a04388386a9f591d14a35980bfe to this code base.
* MDEV-7209 mroonga storage engine fails to build on OpenBSDSergei Golubchik2021-07-274-2/+2
| | | | rename files `version` -> `version_full`
* Merge remote-tracking branch 'connect/10.2' into 10.2Sergei Golubchik2021-07-27110-1230/+2512
|\
| * Fix compile error for centos 74 Modified taboccur.cppOlivier Bertrand2021-07-241-0/+2
| |
| * Replace Mongo2.jar and Mongo3.jar with ne versionsOlivier Bertrand2021-07-242-0/+0
| |
| * - Make user variable prefix recognized by IsArgJson and IsJsonOlivier Bertrand2021-07-2413-61/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: storage/connect/bsonudf.cpp modified: storage/connect/jsonudf.cpp - Stringify option is now a ; separated list of columns modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/mongo.h modified: storage/connect/tabbson.cpp modified: storage/connect/tabcmg.cpp modified: storage/connect/tabcmg.h modified: storage/connect/tabjmg.cpp modified: storage/connect/tabjmg.h modified: storage/connect/tabjson.cpp - PrepareColist not a static function anymore (+ typo) modified: storage/connect/taboccur.cpp - JDVC: Recognize schema (database) from a wrapper server modified: storage/connect/tabjdbc.cpp
| * Fix clang compile error in value.cppOlivier Bertrand2021-06-251-2/+2
| |
| * Fix clang compile error in tabjson and typo in tabbson.cppOlivier Bertrand2021-06-253-5/+5
| |
| * Fix clang compile error in tabjson.cpp and tabbson.cppOlivier Bertrand2021-06-252-2/+2
| |
| * Fix clang compile error in tabjson.cpp and tabbson.cppOlivier Bertrand2021-06-252-2/+2
| |
| * Fix compile error in value.h and remove unused variables in ha_connect.ccOlivier Bertrand2021-06-252-5/+2
| |
| * Fix clang compile errorOlivier Bertrand2021-06-241-0/+1
| |
| * - Make function strz return null when LEX_STRING is nullOlivier Bertrand2021-06-2412-85/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: storage/connect/ha_connect.cc - Use NOTE instead of WARNING in connect_assisted_discovery This because MariaDB raise an error when doing so modified: storage/connect/ha_connect.cc modified: storage/connect/tabrest.cpp - Make MONGO tables recognize STRINGIFY and JsonAllPath modified: storage/connect/mongo.cpp modified: storage/connect/mongo.h modified: storage/connect/tabcmg.h modified: storage/connect/tabjmg.cpp modified: storage/connect/tabcmg.cpp modified: storage/connect/tabjmg.h - Fix OBJECT option for Pretty != 2 JSN and BSON tables Accept all syntaxes for the OBJECT option modified: storage/connect/tabbson.cpp modified: storage/connect/tabjson.cpp - Use my_snprintf in function xcurl (by vuvova) modified: storage/connect/tabrest.cpp - Format dates entered as integer when formatted modified: storage/connect/value.cpp modified: storage/connect/value.h
| * - Fix MDEV-25863 : Replace __WIN__ by _WIN32Olivier Bertrand2021-06-0877-551/+1317
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: storage/connect/array.cpp modified: storage/connect/blkfil.cpp modified: storage/connect/block.h modified: storage/connect/bson.cpp modified: storage/connect/cmgoconn.cpp modified: storage/connect/colblk.cpp modified: storage/connect/domdoc.cpp modified: storage/connect/filamap.cpp modified: storage/connect/filamdbf.cpp modified: storage/connect/filamfix.cpp modified: storage/connect/filamgz.cpp modified: storage/connect/filamtxt.cpp modified: storage/connect/filamvct.cpp modified: storage/connect/filamzip.cpp modified: storage/connect/filter.cpp modified: storage/connect/filter.h modified: storage/connect/fmdlex.c modified: storage/connect/global.h modified: storage/connect/ha_connect.cc modified: storage/connect/javaconn.cpp modified: storage/connect/javaconn.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jmgfam.cpp modified: storage/connect/json.cpp modified: storage/connect/macutil.cpp modified: storage/connect/macutil.h modified: storage/connect/maputil.cpp modified: storage/connect/mycat.cc modified: storage/connect/myconn.cpp modified: storage/connect/myconn.h modified: storage/connect/myutil.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/odbconn.h modified: storage/connect/os.h modified: storage/connect/osutil.c modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/rcmsg.c modified: storage/connect/reldef.cpp modified: storage/connect/reldef.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabext.cpp modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabmac.cpp modified: storage/connect/tabmac.h modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h modified: storage/connect/tabmysql.cpp modified: storage/connect/taboccur.cpp modified: storage/connect/tabodbc.cpp modified: storage/connect/tabpivot.cpp modified: storage/connect/tabrest.cpp modified: storage/connect/tabrest.h modified: storage/connect/tabsys.cpp modified: storage/connect/tabtbl.cpp modified: storage/connect/tabutil.cpp modified: storage/connect/tabvct.cpp modified: storage/connect/tabwmi.cpp modified: storage/connect/tabxcl.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/valblk.cpp modified: storage/connect/value.cpp modified: storage/connect/xindex.cpp modified: storage/connect/xindex.h - Fix Date errors and SSL warnings modified: storage/connect/mysql-test/connect/r/jdbc.result modified: storage/connect/mysql-test/connect/r/jdbc_new.result modified: storage/connect/mysql-test/connect/t/jdbc.test modified: storage/connect/mysql-test/connect/t/jdbc_new.test - Update java source files modified: storage/connect/Mongo2Interface.java modified: storage/connect/Mongo3Interface.java added: storage/connect/Client2.java added: storage/connect/Client3.java added: storage/connect/TestInsert2.java added: storage/connect/TestInsert3.java
| * - Mongo defined columnsOlivier Bertrand2021-05-246-12/+26
| | | | | | | | | | | | | | | | | | | | | | modified: storage/connect/cmgoconn.cpp modified: storage/connect/cmgoconn.h - Change default array LIMIT from 10 to 50 modified: storage/connect/ha_connect.cc modified: storage/connect/tabbson.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabxml.cpp
| * - Fix MDEV-25715Olivier Bertrand2021-05-182-6/+6
| | | | | | | | | | modified: storage/connect/bsonudf.cpp modified: storage/connect/jsonudf.cpp
| * - Put all jar files in the SHARE directory (was PLUGIN)Olivier Bertrand2021-05-1716-105/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: sql/mysqld.h modified: storage/connect/CMakeLists.txt modified: storage/connect/javaconn.cpp modified: storage/connect/mycat.cc modified: storage/connect/mycat.h - Get a handled on a not pooled client This to avoid a .50 delay when closing modified: storage/connect/cmgoconn.cpp modified: storage/connect/cmgoconn.h - Allow FIELD_FORMAT options for DECIMAL type modified: storage/connect/tabdos.cpp - Update tests and result to reflect last changes Also because Oracle password has changed modified: storage/connect/mysql-test/connect/r/jdbc_oracle.result modified: storage/connect/mysql-test/connect/r/json_java_2.result modified: storage/connect/mysql-test/connect/r/json_java_3.result modified: storage/connect/mysql-test/connect/r/json_mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_c.result modified: storage/connect/mysql-test/connect/r/odbc_oracle.result modified: storage/connect/mysql-test/connect/t/jdbc_oracle.test modified: storage/connect/mysql-test/connect/t/odbc_oracle.test - Typo modified: storage/connect/reldef.cpp
| * - All this concern Json or Mongo tables based on MongoDB collections.Olivier Bertrand2021-05-057-28/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Limit decimals of doubles printed from MongoDB Done in function Mini for Mongo C Driver and Java Driver Done in function SerializeValue for Java tables using the J Driver modified: storage/connect/cmgoconn.cpp modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/tabjmg.cpp - Fix crash when using BSON_TYPE_DECIMAL128 modified: storage/connect/cmgoconn.cpp - Collection name default to table name Fix it when creating tables via discovery modified: storage/connect/ha_connect.cc modified: storage/connect/tabbson.cpp modified: storage/connect/tabjson.cpp
| * TypoOlivier Bertrand2021-05-021-1/+1
| |
| * Fix compile warning as errorOlivier Bertrand2021-05-023-8/+9
| |
| * - Major update of the json/bson/mongo table types programs.Olivier Bertrand2021-05-0126-403/+682
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix several bugs, chiefly concerning CURL operations. modified: storage/connect/bson.cpp modified: storage/connect/cmgfam.cpp modified: storage/connect/cmgoconn.cpp modified: storage/connect/cmgoconn.h modified: storage/connect/colblk.h modified: storage/connect/ha_connect.cc modified: storage/connect/jmgfam.cpp modified: storage/connect/jmgoconn.cpp modified: storage/connect/jmgoconn.h modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/mysql-test/connect/r/bson_mongo_c.result modified: storage/connect/mysql-test/connect/r/json_mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_java_2.result modified: storage/connect/mysql-test/connect/r/mongo_java_3.result modified: storage/connect/mysql-test/connect/std_data/Mongo2.jar modified: storage/connect/mysql-test/connect/std_data/Mongo3.jar modified: storage/connect/tabbson.cpp modified: storage/connect/tabbson.h modified: storage/connect/tabcmg.cpp modified: storage/connect/tabcmg.h modified: storage/connect/tabjmg.cpp modified: storage/connect/tabjmg.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h
* | MDEV-25998 fixup: Avoid a hangMarko Mäkelä2021-07-273-19/+6
| | | | | | | | | | | | | | | | btr_scrub_start_space(): Avoid an unnecessary tablespace lookup and related acquisition of fil_system->mutex. In MariaDB Server 10.3 we would get deadlocks between that mutex and a crypt_data mutex. The fix was developed by Thirunarayanan Balathandayuthapani.
* | MDEV-25998 fixup: Assert that a mutex is being heldMarko Mäkelä2021-07-271-2/+2
| |
* | MDEV-24393 InnoDB disregards --skip-external-lockingMarko Mäkelä2021-07-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On POSIX systems, InnoDB would unconditionally acquire advisory locks on the files that it opens. On Linux, this would be observable by a large number of entries in /proc/locks. Other storage engines would only acquire advisory locks on files based on the Boolean configuration parameter external_locking. Let InnoDB do the same. NOTE: The --skip-external-locking is activated by default. To have InnoDB acquire advisory locks, --external-locking must be specified. Reviewed by: Sergei Golubchik
* | MDEV-25594: Improve debug checksMarko Mäkelä2021-07-2712-238/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | trx_t::will_lock: Changed the type to bool. trx_t::is_autocommit_non_locking(): Replaces trx_is_autocommit_non_locking(). trx_is_ac_nl_ro(): Remove (replaced with equivalent assertion expressions). assert_trx_nonlocking_or_in_list(): Remove. Replaced with at least as strict checks in each place. check_trx_state(): Moved to a static function; partially replaced with individual debug assertions implementing equivalent or stricter checks. This is a backport of commit 7b51d11cca8898f319ddde5d7048cb81b43fef06 from 10.5.
* | MDEV-26062 : InnoDB: WSREP: referenced FK check fail: Lock wait index ↵Jan Lindström2021-07-261-35/+41
| | | | | | | | | | | | | | | | | | `PRIMARY` table `schema`.`child_table` Problem was that not all normal error codes where not handled after wsrep_row_upd_check_foreign_constraints() call. Furhermore, debug assertion did not contain all normal error cases. Changed ib:: calls to WSREP_ calls to use wsrep instrumentation.
* | MDEV-25998 InnoDB removes the tablespace from default encrypt list earlyThirunarayanan Balathandayuthapani2021-07-261-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ========= As a part of MDEV-14398 patch, InnoDB added and removed the tablespace from default encrypt list. But InnoDB removes the tablespace from the default encrypt list too early due to i) other encryption thread working on the tablespace ii) When tablespace is being flushed at the end of key rotation InnoDB fails to decrypt/encrypt the tablespace since the tablespace removed too early and it leads to test case failure. Solution: ========= Avoid the removal of tablespace from default_encrypt_list only when 1) Another active encryption thread working on tablespace 2) Eligible for tablespace key rotation 3) Tablespace is in flushing phase Removed the workaround in encryption.innodb_encryption_filekeys test case.
* | MDEV-23786: Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())'Rucha Deodhar2021-07-263-2/+26
| | | | | | | | | | | | | | | | | | failed for TokuDB engine CREATE TABLE Analysis: Assertion failure happens because the database doesn't exist to create the table but ha_tokudb::create() still returns false. So error is not reported. Fix: Store the error state and report the error.
* | Some tests can take very long time when run with valgrindElena Stepanova2021-07-241-0/+3
| | | | | | | | | | | | | | | | | | | | Set tests to non-valgrind: oqgraph.social encryption.innodb-page_encryption binlog_encryption.encrypted_master innodb.innodb-page_compression_lz4 main.lock_multi_bug38499 main.lock_multi_bug38691
* | MDEV-26228 ASAN heap-use-after-free with ON UPDATE CASCADEMarko Mäkelä2021-07-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 83d2e0841ee30727c609f23957cc592399a3aca4 (MDEV-24041) we failed to notice that in addition to the bug with DELETE and ON DELETE CASCADE, there is another bug with UPDATE and ON UPDATE CASCADE. row_ins_foreign_fill_virtual(): Use the correct memory heap for everything that will be reachable from the cascade->update that we return to the caller. Note: It is correct to use the shorter-lived cascade->heap for rec_get_offsets(), because that memory will be abandoned when row_ins_foreign_fill_virtual() returns.
* | MDEV-26205 Merge new release of InnoDB 5.7.35 to 10.2Marko Mäkelä2021-07-224-23/+20
|\ \
| * | Bug #31576731 INNODB_FT_TOTAL_CACHE_SIZE NOT CAPPED WHEN SET TO 32000000Sachin Agarwal2021-07-221-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Server throws OOM error when we execute twitter load with SELECTs for UPDATE + UPDATES, and SELECT queries on tables with full-text index. FTS cache->total_memory store count of total memory allocated to FTS cache (for all fulltext indexes on a table). For each word in fts cache, we store doc-id & word position in a node->ilist. we increment cache->total_memory with size of doc-id & word position whereas we allocate ilist in chuck of 16, 32 ,64 bytes or 1.2 times of last size. When we wil insert huge amount of data into the FTS aux index tables then collectively these small chucks for each token become huge unaccounted memory allocated for FTS cache. Fix: Incremented cache->total_memory by size of chunk allocated to node->ilist. RB: 25286 Reviewed by : Rahul Agarkar <rahul.agarkar@oracle.com> mysql/mysql-server@7ab5707f1c4482ed050ed9fa739e9ec0e2fc0ffa
| * | Bug #32460315 ONLINE RESIZING BUFFER POOL CAN CRASH CONCURRENT BP LOOKUPJakub Łopuszański2021-07-222-16/+11
|/ / | | | | | | | | | | | | | | | | | | This patch changes it so that we do not free old BP `page_hash`, but rather modify it's parameters, during resize. RB: 26084 Reviewed-by: Marcin Babij <marcin.babij@oracle.com> Reviewed-by: Yasufumi Kinoshita <yasufumi.kinoshita@oracle.com> mysql/mysql-server@ea3adc6a1192e1bca4b4894fd7037e29fbcf0bd0
* | MDEV-26203 CREATE INDEX may enforce incorrect maximum column lengthMarko Mäkelä2021-07-221-2/+7
| | | | | | | | | | | | | | | | | | | | ha_innobase::prepare_inplace_alter_table(): Unless the table is being rebuilt, determine the maximum column length based on the current ROW_FORMAT of the table. When TABLE_SHARE (and the .frm file) contains no explicit ROW_FORMAT, InnoDB table creation or rebuild will use innodb_default_row_format. Based on mysql/mysql-server@3287d33acdc4260806a2a407ca15e9d1e04dddcb
* | MDEV-25361 fixup: Fix integer type mismatchMarko Mäkelä2021-07-223-22/+22
| | | | | | | | | | | | | | | | | | | | InnoDB tablespace identifiers and page numbers are 32-bit numbers. Let us use a 32-bit type for them in innochecksum. The changes in commit 1918bdf32cdbd1f190cc4479f4076ee4a467f25d broke the build on 32-bit Windows. Thanks to Vicențiu Ciorbaru for an initial version of this fixup.
* | Add feature summary at the end of cmake.Heinz Wiesinger2021-07-2110-9/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | This gives a short overview over found/missing dependencies as well as enabled/disabled features. Initial author Heinz Wiesinger <heinz@m2mobi.com> Additions by Vicențiu Ciorbaru <vicentiu@mariadb.org> * Report all plugins enabled via MYSQL_ADD_PLUGIN * Simplify code. Eliminate duplication by making use of WITH_xxx variable values to set feature "ON" / "OFF" state. Reviewed by: wlad@mariadb.com (code details) serg@mariadb.com (the idea)
* | Delete unused MYSQL_CHECK_{LZ4|LZO}_STATIC macrosVicențiu Ciorbaru2021-07-212-36/+0
| |
* | Fix switch case statement in trx_flush_log_if_needed_low()Jagdeep Sidhu2021-07-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 2e814d4702d71a04388386a9f591d14a35980bfe on MariaDB 10.2 the switch case statement in trx_flush_log_if_needed_low() regressed. Since 10.2 this code was refactored to have switches in descending order, so value of 3 for innodb_flush_log_at_trx_commit is behaving the same as value of 2, that is no FSYNC is being enforced during COMMIT phase. The switch should however not be empty and cases 2 and 3 should not have the identical contents. As per documentation, setting innodb_flush_log_at_trx_commit to 3 should do FSYNC to disk if innodb_flush_log_at_trx_commit is set to 3. This fixes the regression so that the switch statement again does what users expect the setting should do. All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc.
* | MDEV-25985 Spider handle ">=" as ">" in some casesNayuta Yanagisawa2021-07-144-9/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function spider_db_append_key_where_internal() converts HA_READ_AFTER_KEY to '>'. The conversion seems to be correct for single-column indexes because HA_READ_AFTER_KEY means "read the key after the provided value." However, how about multi-column indexes? Assume that there is a multi-column index on c1 and c2 and we search with the condition 'c1 >= 100 AND c2 > 200'. The key_range.flag corresponds to the search condition could be HA_READ_AFTER_KEY. In such a case, we could not simply convert HA_READ_AFTER_KEY to '>'. The correct conversion is to convert HA_READ_AFTER_KEY to '>' only for the last column in key_part_map and to convert HA_READ_AFTER_KEY to '>=' for the other column. The similar discussion also applies to the conversion from key_range.flag to a sign of inequality.
* | MDEV-26040 os_file_set_size() may not work on O_DIRECT filesMarko Mäkelä2021-06-291-5/+33
| | | | | | | | | | os_file_set_size(): Trim the current size down to the file system block size, to obey the constraints for unbuffered I/O.
* | MDEV-25982 Upgrade of MariaDB 10.1 log crashes due to missing encryption keyMarko Mäkelä2021-06-221-1/+7
| | | | | | | | | | | | | | | | init_crypt_key(): On failure, set info->key_version to ENCRYPTION_KEY_VERSION_INVALID. log_crypt_101_read_block(): Refuse to attempt decryption if info->key_version is ENCRYPTION_KEY_VERSION_INVALID.
* | Remove a unused variableMarko Mäkelä2021-06-161-2/+2
| | | | | | | | | | In commit 1c35a3f6fd92704d7a135a81c7752f5058aaede5 a useless computation that used the variable was removed.
* | fix clang buildEugene Kosov2021-06-155-10/+12
| | | | | | | | a new warning -Wunused-but-set-variable was introduced recently to clang
* | MDEV-24713 Assertion `dict_table_is_comp(index->table)' failed in ↵Thirunarayanan Balathandayuthapani2021-06-151-1/+4
| | | | | | | | | | | | | | | | | | row_merge_buf_add() - During online alter conversion from compact to redundant, virtual column field length already set during innobase_get_computed_value(). Skip the char(n) check for virtual column in row_merge_buf_add()
* | MDEV-25872 InnoDB: Assertion failure in row_merge_read_clustered_index upon ↵Thirunarayanan Balathandayuthapani2021-06-151-14/+13
| | | | | | | | | | | | | | | | | | | | ALTER on table with indexed virtual columns - InnoDB fails to check DB_COMPUTE_VALUE_FAILED error in row_merge_read_clustered_index() and wrongly asserts that the buffer shouldn't be ran out of memory. Alter table should give warning when the column value is being truncated.