summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-25536 InnoDB: Failing assertion: sym_node->table != NULL in ↵st-10.2-thiruThirunarayanan Balathandayuthapani2021-04-301-0/+1
| | | | | | pars_retrieve_table_def - Fixing post-push failure of innodb_fts_misc_1 test case.
* MDEV-25536 InnoDB: Failing assertion: sym_node->table != NULL in ↵Thirunarayanan Balathandayuthapani2021-04-303-1/+22
| | | | | | | | | pars_retrieve_table_def InnoDB tries to fetch the deleted doc ids for discarded tablespace. In i_s_fts_deleted_generic_fill(), InnoDB needs to check whether the table is discarded or not before fetching deleted doc ids.
* MDEV-25568 RENAME TABLE causes "Ignoring data file" messagesMarko Mäkelä2021-04-303-15/+4
| | | | | | | fil_ibd_load(): Remove a message that is basically saying that everything works as expected. The other "Ignoring data file" message about the presence of an extraneous file will be retained (and expected by the test innodb.log_file_name).
* Revert "update CC"Nikita Malyavin2021-04-301-0/+0
| | | | This reverts commit 8880dff2d90ea8a8279cbcb466f90e0b2fdfcff5.
* update CCNikita Malyavin2021-04-291-0/+0
|
* Merge remote-tracking branch 'connect/10.2' into 10.2Nikita Malyavin2021-04-2921-296/+512
|\
| * Typo modified: CMakeLists.txtOlivier Bertrand2021-04-091-1/+1
| |
| * Remove add_jar modified: CMakeLists.txtOlivier Bertrand2021-04-091-2/+1
| |
| * Fix add_jar modified: CMakeLists.txtOlivier Bertrand2021-04-091-0/+2
| |
| * Fix install modified: CMakeLists.txtOlivier Bertrand2021-04-091-3/+5
| |
| * typo tabrest.cppOlivier Bertrand2021-04-081-1/+1
| |
| * tabrest.cppOlivier Bertrand2021-04-081-63/+8
| |
| * tabrest.cppOlivier Bertrand2021-04-081-1/+4
| |
| * tabrest.cppOlivier Bertrand2021-04-081-1/+1
| |
| * try to fix tabrest.cpp compile errorOlivier Bertrand2021-04-081-1/+1
| |
| * - Fix Linux compile errorsOlivier Bertrand2021-04-082-23/+17
| | | | | | | | | | | | | | | | modified: storage/connect/tabrest.cpp modified: storage/connect/CMakeLists.txt - Fix cmake error modified: libmariadb/cmake/ConnectorName.cmake
| * Test tabrest.cpp fixOlivier Bertrand2021-04-081-2/+1
| |
| * Commit last pull from originOlivier Bertrand2021-04-06774-13537/+18745
| |\
| * | - Fix(?) Linux compile errorsOlivier Bertrand2021-04-063-15/+20
| | | | | | | | | | | | | | | | | | | | | | | | modified: storage/connect/tabrest.cpp modified: storage/connect/CMakeLists.txt -fix MDEV-24794 modified: storage/connect/valblk.h
| * | - Fix crash when not specifying the collection for MongoDBOlivier Bertrand2021-04-052-1/+7
| | | | | | | | | | | | | | | | | | | | | modified: storage/connect/cmgoconn.cpp - Fix(?) Linux compile errors modified: storage/connect/tabrest.cpp
| * | - Copy Mongo2.jar and Mongo3.jar in plugin directoryOlivier Bertrand2021-04-058-47/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: storage/connect/CMakeLists.txt modified: storage/connect/javaconn.cpp - Check privileges while creating tables with Discovery modified: storage/connect/ha_connect.cc - Calculate LRECL for JSON tables created with Discovery modified: storage/connect/tabjson.cpp - Use CreateProcess (Windows) or fork/exec (linux) to retrieve the result from REST queries modified: storage/connect/tabrest.cpp - Typo modified: storage/connect/jmgoconn.cpp
| * | - Fix bug making REST table fail using CURLOlivier Bertrand2021-03-167-61/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This when the HTTP contains & characters modified: storage/connect/tabbson.cpp modified: storage/connect/tabjson.cpp - Make stringfy option work on only one Json item modified: storage/connect/tabbson.cpp modified: storage/connect/tabbson.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h - Make Json/Bson DATE columns accept JSON date syntax modified: storage/connect/tabbson.cpp modified: storage/connect/tabjson.cpp - Fix bug making REST table default file not being erased when dropping the table modified: storage/connect/tabbson.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabrest.cpp modified: storage/connect/tabxml.cpp - Suppress CHAR(36) --> VARCHAR(36) when DEVELOPMENT This was fixed in MyClient modified: storage/connect/ha_connect.cc
| * | - Add new JPATH featuresOlivier Bertrand2021-02-1610-122/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: storage/connect/bson.cpp modified: storage/connect/bsonudf.cpp modified: storage/connect/bsonudf.h modified: storage/connect/json.cpp modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/tabbson.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h
| * | Fix bson_object_grp inverted args. Modified: storage/connect/bsonudf.cpp and ↵Olivier Bertrand2021-02-052-7/+7
| | | | | | | | | | | | bson_udf.result
| * | - Fix bug causing bnx base wrong after CheckMemoryOlivier Bertrand2021-02-053-3/+18
| | | | | | | | | | | | | | | | | | | | | Add negative array indexes starting from the last modified: storage/connect/bson.cpp modified: storage/connect/bsonudf.cpp modified: storage/connect/json.cpp
* | | Another correction of the patch for MDEV-24823.Igor Babaev2021-04-281-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commits replaces the call of the function setup_tables() with a call of the function setup_tables_and_check_access() in the method Multiupdate_prelocking_strategy::handle_end(). There is no known bug that would require this change. However the change aligns this piece of code with the code existed before the patch for MDEV-24823.
* | | MDEV-25543: Building failure on MacOS in case MariadDB server is compiled ↵bb-10.2-MDEV-25543Dmitry Shulga2021-04-281-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with XCode 12.5 Attempt to build MariaDB server on MacOS could result in compilation errors like the following one: In file included from server-10.2/storage/perfschema/cursor_by_account.cc:28: In file included from server-10.2/include/my_global.h:287: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/math.h:309: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/type_traits:418: server-10.2/version:1:1: error: expected unqualified-id MYSQL_VERSION_MAJOR=10 ^ server-10.2/build.dir/include/my_config.h:529:29: note: expanded from macro 'MYSQL_VERSION_MAJOR' This kind of compiler errors occur by the reson that compiler's system headers contain the directive '#include <version>' and a compiler is invoked with -I${CMAKE_SOURCE_DIR}. The MariaDB source code root directory contains the file VERSION that is handled by the compiler during processing the directive #include <version> since file names on MacOS are case insensetive, so version and VERSION is treated as the same file name. To fix the issue the source code root directory should be removed from a list of directories used by the compiler for include search path.
* | | Bug#29363867: LOST CONNECTION TO MYSQL SERVER DURING QUERYbb-10.2-BUG29363867Oleksandr Byelkin2021-04-284-17/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem is that sharing default expression among set instruction leads to attempt access result field of function created in other instruction runtime MEM_ROOT and already freed (a bit different then MySQL problem). Fix is the same as in MySQL (but no optimisation for constant), turn DECLARE a, b, c type DEFAULT expr; to DECLARE a type DEFAULT expr, b type DEFAULT a, c type DEFAULT a;
* | | MDEV-25319 : Long BF log wait turns on InnoDB Monitor output without ↵bb-10.2-MDEV-21514Jan Lindström2021-04-283-14/+66
| | | | | | | | | | | | | | | | | | | | | telling, never turns it off Removed explicit InnoDB monitor startup and used just functions to print current lock information.
* | | MDEV-25258 : SET PASSWORD command fail with wsrep apiJan Lindström2021-04-283-1/+38
| | | | | | | | | | | | | | | Problem was that we should skip strict password validation on applier nodes similarly as is done for slave nodes.
* | | MDEV-21514 : Galera test failure on galera.galera_wan_restart_sstJan Lindström2021-04-282-39/+49
| | | | | | | | | | | | | | | Replace unnecessary sleeps with real wait_conditions to make sure correct cluster sizes.
* | | MDEV-19198 - DBUG assert in CREATE IF NOT EXIST under LOCK TABLES WRITEVladislav Vaintroub2021-04-283-1/+38
| | | | | | | | | | | | | | | Relax the assert condition. A locked table that did existed prior to CREATE IF NOT EXIST, retains the MDL_NO_SHARED_READ_WRITE MDL lock prio.
* | | MDEV-25232 update libmariadbVladislav Vaintroub2021-04-281-0/+0
| | |
* | | MDEV-25232 - CMake deprecation warning about CMAKE_MINIMUM_REQUIRED < 2.8.12Vladislav Vaintroub2021-04-282-15/+14
| | |
* | | Bug#29363867: LOST CONNECTION TO MYSQL SERVER DURING QUERYSergei Golubchik2021-04-275-27/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | plugin variables in SET only locked the plugin till the end of the statement. If SET with a plugin variable was prepared, it was possible to uninstall the plugin before EXECUTE. Then EXECUTE would crash, trying to resolve a now-invalid pointer to a disappeared variable. Fix: keep plugins locked until the prepared statement is closed.
* | | Bug #31674599: THE UDF_INIT() FUNCTION CAUSE SERVER CRASHSergei Golubchik2021-04-273-3/+21
| | |
* | | MDEV-25326 mysql_install_db help text incompleteSergei Golubchik2021-04-271-5/+1
| | | | | | | | | | | | | | | | | | encourage the use of mysql_secure_installation, that can always set the root password correctly for all root accounts, no matter how many are there and what the structure of privilege tables is
* | | MDEV-25503 InnoDB hangs on startup during recoveryThirunarayanan Balathandayuthapani2021-04-277-2/+69
| | | | | | | | | | | | | | | | | | | | | | | | InnoDB startup hangs if a DDL transaction needs to be rolled back and a recovered transaction on statistics tables exists. In that case, InnoDB should rollback the transaction which holds locks on innodb_table_stats or innodb_index_stats during trx_rollback_or_clean_recovered().
* | | MDEV-22928 InnoDB fails to fetch index type when index mismatch happensThirunarayanan Balathandayuthapani2021-04-274-4/+63
| | | | | | | | | | | | | | | | | | InnoDB fails to fetch the index type when innodb dictionary doesn't match with frm. InnoDB should return corrupted if it can't find the index in ha_innobase::index_type().
* | | MDEV-24583 SELECT aborts after failed REPLACE into table with vcolNikita Malyavin2021-04-276-4/+191
| | | | | | | | | | | | | | | | | | | | | table->move_fields wasn't undone in case of error. 1. move_fields is unconditionally undone even when error is occurred 2. cherry-pick an assertion in `ptr_in_record`, which is already in 10.5
* | | MDEV-19011 Assertion `file->s->base.reclength < file->s->vreclength' failedNikita Malyavin2021-04-274-1/+20
| | | | | | | | | | | | | | | | | | The assertion is improved: storage engines like myisam always have to store at least one field, so the assertion does not cover tables with no stored columns.
* | | MDEV-16962 Assertion failed in open_purge_table upon concurrent ALTER/FLUSHNikita Malyavin2021-04-273-3/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So we are having a race condition of three of threads, resulting in a deadlock backoff in purge, which is unexpected. More precisely, the following happens: T1: NOCOPY ALTER TABLE begins, and eventually it holds MDL_SHARED_NO_WRITE lock; T2: FLUSH TABLES begins. it sets share->tdc->flushed = true T3: purge on a record with virtual column begins. it is going to open a table. MDL_SHARED_READ lock is acquired therefore. Since share->tdc->flushed is set, it waits for a TDC purge end. T1: is going to elevate MDL LOCK to exclusive and therefore has to set other waiters to back off. T3: receives VICTIM status, reports a DEADLOCK, sets OT_BACKOFF_AND_RETRY to Open_table_context::m_action My fix is to allow opening table in purge while flushing. It is already done the same way in other maintainance facilities like REPAIR TABLE. Another way would be making an actual backoff, but Open_table_context does not allow to distinguish it from other failure types, which still seem to be unexpected. Making this would require hacking into Open_table_context interface for no benefit, in comparison to passing MYSQL_OPEN_IGNORE_FLUSH during table open.
* | | revive innodb_debug_syncNikita Malyavin2021-04-278-0/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innodb_debug_sync was introduced in commit b393e2cb0c079b30563dcc87a62002c9c778643c and reverted in commit fc58c1721631fcc6c9414482b3b7e90cd8e7325d due to memory leak reported by valgrind, see MDEV-21336. The leak is now fixed by adding `rw_lock_free(&slot->debug_sync_lock)` after background thread working loop is finished, and the patch is reapplied, with respect to c++98 fixes by Marko. The missing DEBUG_SYNC for MDEV-18546 in row0vers.cc is also reapplied.
* | | MDEV-25513: raise systemd LimitNOFILE limits to match server defaultsDaniel Black2021-04-272-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quoting MDEV reporter Daniel Lewart: Starting MariaDB with default configuration causes the following problems: "[Warning] Could not increase number of max_open_files to more than 16384 (request: 32186)" silently reduces table_open_cache_instances from 8 (default) to 4 Default Server System Variables: extra_max_connections = 1 max_connections = 151 table_open_cache = 2000 table_open_cache_instances = 8 thread_pool_size = 4 LimitNOFILE=16834 is in the following files: support-files/mariadb.service.in support-files/mariadb@.service.in Looking at sql/mysqld.cc lines 3837-3917: wanted_files= (extra_files + max_connections + extra_max_connections + tc_size * 2 * tc_instances); wanted_files+= threadpool_size; Plugging in the default values: wanted_files = (30 + 151 + 1 + 2000 * 2 * 8 + 4) = 32186 However, systemd configuration has LimitNOFILE = 16384, which is far smaller. I suggest increasing LimitNOFILE to 32768.
* | | MDEV-24898: Server crashes in st_select_lex::next_selectbb-10.2-tmp1Sergei Petrunia2021-04-252-0/+24
| | | | | | | | | | | | | | | (trivial backport to 10.2) Add a testcase
* | | MDEV-24925: Server crashes in Item_subselect::init_expr_cache_trackerSergei Petrunia2021-04-253-1/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (trivial backport to 10.2) The optimizer removes redundant GROUP BY operations. If GROUP BY element is a subselect, it is "eliminated". However one must not eliminate the item if it is used both in the select list and in the GROUP BY, like so: select (select ... ) as SUBQ from ... group by SUBQ Do not eliminate such items.
* | | MDEV-23026/MDEV-25474 fixup: Assertion ib_table->stat_initializedMarko Mäkelä2021-04-241-11/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is possible that an object that was originally created by open_purge_table() will remain cached and reused for SQL execution. Our previous fix wrongly assumed that ha_innobase::open() would always be called before SQL execution starts. Therefore, we must invoke dict_stats_init() in ha_innobase::info_low() instead of only doing it in ha_innobase::open(). Note: Concurrent execution of dict_stats_init() on the same table is possible, but it also was possible between two calls to ha_innobase::open(), with no ill effects observed. This should fix the assertion failure on stat_initialized. A possibly easy way to reproduce it would have been to run the server with innodb_force_recovery=2 (disable the purge of history), update a table so that an indexed virtual column will be affected, and finally restart the server normally (purge enabled), to observe a crash when the table is accessed from SQL. The problem was first observed and this fix verified by Elena Stepanova. Also Thirunarayanan Balathandayuthapani repeated the problem.
* | | MDEV-25459 MVCC read from index on CHAR or VARCHAR wrongly omits rowsMarko Mäkelä2021-04-243-35/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | row_sel_sec_rec_is_for_clust_rec(): If the field in the clustered index record stored off page, always fetch it, also when the secondary index field has been built on the entire column. This was broken ever since the InnoDB Plugin for MySQL Server 5.1 introduced ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED for InnoDB tables. That code was first introduced in this tree in commit 3945d5e5549187a18c64a112899f90a7f6a320d6. For the original ROW_FORMAT=REDUNDANT and the MySQL 5.0.3 ROW_FORMAT=COMPRESSED, there was no problem, because for those tables we always stored at least a 768-byte prefix of each column in the clustered index record. row_sel_sec_rec_is_for_blob(): Allow prefix_len==0 for matching the full column.
* | | This patch complements the patch for MDEV-24823.Igor Babaev2021-04-231-1/+1
| | |
* | | MDEV-25091 CREATE TABLE: field references qualified by a wrong table name ↵Aleksey Midenkov2021-04-235-5/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | succeed Before FRM is written walk vcol expressions through check_table_name_processor() and check if field items match (db, table_name) qualifier. We cannot do this in check_vcol_func_processor() as there is already no table name qualifiers in expressions of written and loaded FRM.