summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge 10.3 into 10.4Marko Mäkelä2021-11-2929-87/+346
|\
| * MDEV-27134: Sporadic failure of DROP DATABASE testMarko Mäkelä2021-11-292-4/+6
| | | | | | | | | | Let us create and drop a separate database for getting rid of the default database in the MDEV-22781 test.
| * Merge 10.2 into 10.3Marko Mäkelä2021-11-2940-99/+897
| |\
| | * MDEV-26972 MTR worker aborts after server restart failureSergei Golubchik2021-11-261-2/+4
| | | | | | | | | | | | | | | restore the old behavior where without a debugger mtr does not wait for mysqld to start. It was broken in feacc0aaf2
| | * MDEV-26755 innodb.undo_truncate: ilink::assert_linked(): Assertion `prev != ↵Sergei Golubchik2021-11-261-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0 && next != 0' failed close_connections() in mysqld.cc sends a signal to all threads. But InnoDB is too busy purging, doesn't react immediately. close_connections() waits 20 seconds, which isn't enough in this particular case, and then unlinks all threads from the list and forcibly closes their vio connection. InnoDB background threads have no vio connection to close, but they're unlinked all the same. So when later they finally notice the shutdown request and try to unlink themselves, they fail to assert that they're still linked. Fix: don't assert_linked, as another thread can unlink this THD anytime
| | * add a test casest-10.2-markoSergei Golubchik2021-11-262-0/+8
| | | | | | | | | | | | MDEV-20330 Combination of "," (comma), cross join and left join fails to parse
| | * MDEV-26558 Fix a deadlock due to cyclic dependencebb-10.2-robertryancaicse2021-11-241-1/+1
| | | | | | | | | Fix a potential deadlock bug between locks ctrl_mutex and entry->mutex
| | * mysql_install_db: remove MySQL referencesDaniel Black2021-11-241-4/+2
| | | | | | | | | | | | | | | MySQL documentation isn't going to help our users and we shouldn't refer to it.
| | * MDEV-27066: Fixed scientific notation parsing bugMarc Olivier Bergeron2021-11-243-2/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bug occurs where the float token containing a dot with an 'e' notation was dropped from the request completely. This causes a manner of invalid SQL statements like: select id 1.e, char 10.e(id 2.e), concat 3.e('a'12356.e,'b'1.e,'c'1.1234e)1.e, 12 1.e*2 1.e, 12 1.e/2 1.e, 12 1.e|2 1.e, 12 1.e^2 1.e, 12 1.e%2 1.e, 12 1.e&2 from test; To be parsed correctly as if it was: select id, char(id), concat('a','b','c'), 12*2, 12/2, 12|2, 12^2, 12%2, 12&2 from test.test; This correct parsing occurs when e is followed by any of: ( ) . , | & % * ^ /
| | * MDEV-22522 RPM packages have meaningless summary/descriptionbb-10.2-MDEV-22522Alexey Bychko2021-11-2310-47/+60
| | | | | | | | | | | | | | | this patch moves cpack summury and description for optional packages to the appropriate CMakeLists.txt files
| | * MDEV-26915: SST scripts do not take log_bin_index setting into accountbb-10.2-MDEV-26915-galeraJulius Goryavsky2021-11-237-10/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, SST scripts assume that the filename specified in the --log-bin-index argument either does not contain an extension or uses the standard ".index" extension. Similar assumptions are used for the log_bin_index parameter read from the configuration file. This commit adds support for arbitrary extensions for the index file paths.
| | * MDEV-26064: mariabackup SST fails when starting with --innodb-force-recoveryJulius Goryavsky2021-11-238-2/+463
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the server is started with the --innodb-force-recovery argument on the command line, then during SST this argument can be passed to mariabackup only at the --prepare stage, and accordingly it must be removed from the --mysqld-args list (and it is not should be passed to mariabackup otherwise). This commit fixes a flaw in the SST scripts and add a test that checks the ability to run the joiner node in a configuration that uses --innodb-force-recovery=1.
| | * MDEV-26470 "No database" selected when using CTE in a subquery of DELETE ↵Igor Babaev2021-11-203-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | statement This bug led to reporting bogus messages "No database selected" for DELETE statements if they used subqueries in their WHERE conditions and these subqueries contained references to CTEs. The bug happened because the grammar rule for DELETE statement did not call the function LEX::check_cte_dependencies_and_resolve_references() and as a result of it references to CTEs were not identified as such. Approved by Oleksandr Byelkin <sanja@mariadb.com>
| | * MDEV-27086 "No database selected" when using UNION of CTEs to define tableIgor Babaev2021-11-203-4/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug concerned only CREATE TABLE statements of the form CREATE TABLE <table name> AS <with clause> <union>. For such a statement not all references to CTE used in <union> were resolved. As a result a bogus message was reported for the first unresolved reference. This happened because for such statements the function resolving references to CTEs LEX::check_cte_dependencies_and_resolve_references() was called prematurely in the parser. Approved by Oleksandr Byelkin <sanja@mariadb.com>
| | * MDEV-27098 Subquery using the ALL keyword on TIME columns produces a wrong ↵bb-10.2-barAlexander Barkov2021-11-204-2/+46
| | | | | | | | | | | | result
| | * MDEV-27072 Subquery using the ALL keyword on date columns produces a wrong ↵Alexander Barkov2021-11-203-1/+22
| | | | | | | | | | | | result
| | * MDEV-27075 mysql_upgrade_service.exe - using uninitialized memory ↵Vladislav Vaintroub2021-11-181-19/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | 'defaults_file' Remove section that was trying to rename default-character-set to character-set-server This seems to be an old workaround for some upgrade warning, which did not work for some time already, because the ini filename was not initialized.
* | | MDEV-27124: Update definer of Add/DropGeometryColumn procedures from 'root' ↵Hugo Wen2021-11-263-0/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to 'mariadb.sys' From 10.4.13, the `mariadb.sys` user was created to replace `root` definers. - In commit 0253ea7f2208354b187ffcfa2f3128878597cc11, definer of Add/DropGeometryColumn procedures was changed to `mariadb.sys`, in `scripts/maria_add_gis_sp.sql.in`. However, maria_add_gis_sp.sql only applies to new databases created by installation script. Databases upgraded from old versions will miss this change. - In addition, according to commit 0d6d801e5886208b2632247d88da106a543e1032(MDEV-23102), in some scenarios when root user is replaced it will skip creating `mariadb.sys` user. This commit is to update the definer from `root` to `mariadb.sys` during upgrade. It only makes the change if the original definers are root. Doesn't choose to execute `maria_add_gis_sp.sql` in upgrade script to recreate the procedures is because of considering the scenarios of MDEV-23102 that `root` user is replaced and `mariadb.sys` is not created. 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.
* | | Cleanup: offsetof instead of my_offsetofMarko Mäkelä2021-11-241-2/+2
| | | | | | | | | | | | | | | Sys_lc_messages, Sys_lc_time_names: Use offsetof(MY_LOCALE, ...) because the type has standard layout.
* | | Cleanup: offsetof instead of my_offsetofMarko Mäkelä2021-11-241-1/+1
| | | | | | | | | | | | mdl_hash_function(): Use plain offsetof; MDL_key has standard layout.
* | | MDEV-26915 post-fix: deleted unnecessary filebb-10.4-MDEV-26915-galeraJulius Goryavsky2021-11-231-1405/+0
| | |
* | | MDEV-26915: SST scripts do not take log_bin_index setting into accountJulius Goryavsky2021-11-237-7/+1514
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, SST scripts assume that the filename specified in the --log-bin-index argument either does not contain an extension or uses the standard ".index" extension. Similar assumptions are used for the log_bin_index parameter read from the configuration file. This commit adds support for arbitrary extensions for the index file paths.
* | | MDEV-26064: mariabackup SST fails when starting with --innodb-force-recoverybb-10.4-MDEV-26064-galeraJulius Goryavsky2021-11-237-1/+764
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the server is started with the --innodb-force-recovery argument on the command line, then during SST this argument can be passed to mariabackup only at the --prepare stage, and accordingly it must be removed from the --mysqld-args list (and it is not should be passed to mariabackup otherwise). This commit fixes a flaw in the SST scripts and add a test that checks the ability to run the joiner node in a configuration that uses --innodb-force-recovery=1.
* | | Json_writer_object add integersbb-10.4-MDEV-27036Sergei Krivonos2021-11-193-16/+16
| | |
* | | MDEV-27036: allow Json_writer_[array|object] from Json_writerSergei Krivonos2021-11-191-10/+31
| | |
* | | Merge 10.3 into 10.4Marko Mäkelä2021-11-1712-105/+244
|\ \ \ | |/ /
| * | Merge 10.2 into 10.3Marko Mäkelä2021-11-1712-77/+223
| |\ \ | | |/
| | * MDEV-26747 improve corruption check for encrypted tables on ALTER IMPORTbb-10.2-MDEV-26747-corruption-checkEugene Kosov2021-11-177-45/+90
| | | | | | | | | | | | | | | | | | fil_space_decrypt(): change signature to return status via dberr_t only. Also replace impossible condition with an assertion and prove it via test cases.
| | * MDEV-26825 Bogus error for query with two usage of CTE referring another CTEIgor Babaev2021-11-163-23/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug affected queries with two or more references to a CTE referring another CTE if the definition of the latter contained an invocation of a stored function that used a base table. The bug could lead to a bogus error message or to an assertion failure. For any non-first reference to CTE cte1 With_element::clone_parsed_spec() is called that parses the specification of cte1 to construct the unit structure for this usage of cte1. If cte1 refers to another CTE cte2 outside of the specification of cte1 then With_element::clone_parsed_spec() has to be called for cte2 as well. This call is made by the function LEX::resolve_references_to_cte() within the invocation of the function With_element::clone_parsed_spec() for cte1. When the specification of a CTE is parsed all table references encountered in it must be added to the global list of table references for the query. As the specification for the non-first usage of a CTE is parsed at a recursive call of the parser the function With_element::clone_parsed_spec() invoked at this recursive call should takes care of appending the list of table references encountered in the specification of this CTE cte1 to the list of table references created for the query. And it should do it after the call of LEX::resolve_references_to_cte() that resolves references to CTEs defined outside of the specification of cte1 because this call may invoke the parser again for specifications of other CTEs and the table references from their specifications must ultimately appear in the global list of table references of the query. The code of With_element::clone_parsed_spec() misplaced the call of LEX::resolve_references_to_cte(). As a result LEX::query_tables_last used for the query that was supposed to point to the field 'next_global' of the last element in the global list of table references actually pointed to 'next_global' of the previous element. The above inconsistency certainly caused serious problems when table references used in the stored functions invoked in cloned specifications of CTEs were added to the global list of table references.
| | * MDEV-27056 Windows upgrade_wizard - CloseHandle() on invalid (already ↵Vladislav Vaintroub2021-11-161-1/+1
| | | | | | | | | | | | closed) pipe handle
| | * Windows build - fix signtool search path to take modern SDKs into accountVladislav Vaintroub2021-11-161-8/+12
| | |
* | | MDEV-23805 fixup: Adjsut the MDEV-16131 and MDEV-24730 testsMarko Mäkelä2021-11-172-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MDEV-23805 simplified the treatment of empty tables during ALTER TABLE, which could prevent the scenarios that were previously reported and fixed as MDEV-16131 and MDEV-24730. With the MDEV-23805 fix, the statement SET DEBUG_SYNC = 'now WAIT_FOR copied'; could occasionally time out, depending on timing. Apparently, there was a race condition where purge could resume (and empty the table) before ALTER TABLE got the chance to execute. We must prevent the purge of history from running before ALTER TABLE has started executing.
* | | MDEV-23805 Make Online DDL to Instant DDL when table is emptybb-10.4-MDEV-23805Thirunarayanan Balathandayuthapani2021-11-1223-13/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - In ha_innobase::prepare_inplace_alter_table(), InnoDB should check whether the table is empty. If the table is empty then server should avoid downgrading the MDL after prepare phase. It is more like instant alter, does change only in dicationary and metadata. - Changed few debug test case to make non-empty DDL table
* | | Merge branch '10.3' into 10.4Vladislav Vaintroub2021-11-123-5/+13
|\ \ \ | |/ /
| * | Merge branch '10.2' into 10.3Vladislav Vaintroub2021-11-123-5/+13
| |\ \ | | |/
| | * MDEV-27030 vcol.vcol_keys_myisam fails on Windows x64, with Visual Studio 2022Vladislav Vaintroub2021-11-111-0/+8
| | | | | | | | | | | | | | | | | | | | | Upon investigation, decided this to be a compiler bug (happens with new compiler, on code that did not change for the last 15 years) Fixed by de-optimizing single function remove_key(), using MSVC pragma
| | * MDEV-26991: CURRENT_TEST: main.mysql_binary_zero_insert 'grep' is not ↵bb-10.2-MDEV-26991Brandon Nesterenko2021-11-112-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | recognized as an internal or external command, operable program or batch file. Removed grep from mysqldump command stream and instead, extend the search_file pattern to search for rows containing binary zeros instead of any occurance of '00' in the input
* | | MDEV-23766: fix by assert (Windows)Sergei Krivonos2021-11-102-14/+13
| | |
* | | MDEV-23766: Re-add Json_writer unit test.Sergei Petrunia2021-11-092-2/+4
| | |
* | | In case WITH_WSREP is enabled, build wsrep as pluginVladislav Vaintroub2021-11-093-13/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | If it is not enabled, build wsrep as static "stub" library from wsrep_dummy.cc ´ Allow static plugins to export symbols (on Unix) wsrep_info relies on wsrep defined symbols (e.g LOCK_wsrep_config_state) exported from mysqld
* | | improve build, allow sql library to be built in parallel with builtinsVladislav Vaintroub2021-11-094-8/+49
| | |
* | | Add new option NOT_EMBEDDED, for pluginsVladislav Vaintroub2021-11-093-8/+20
| | | | | | | | | | | | Means, plugin will not be available in embedded, even if compiled-in
* | | Revert "improve build, allow sql library to be built in parallel with builtins"Sergei Krivonos2021-11-094-49/+8
| | | | | | | | | | | | This reverts commit 1a3570dec35733e725cc6000a06ec666facf4235.
* | | Revert "In case WITH_WSREP is enabled, build wsrep as plugin"Sergei Krivonos2021-11-093-8/+13
| | | | | | | | | | | | This reverts commit e45f7f485a4c8133962a4082636412745ed07093.
* | | MDEV-23766: buildfix: postpone new unittest until its dependency resolutionSergei Krivonos2021-11-091-4/+0
| | |
* | | MDEV-23766: fix by my_json_writer testSergei Krivonos2021-11-093-21/+19
| | |
* | | MDEV-23766: Make Json_writer assert when one tries to author invalid JSONSergei Petrunia2021-11-094-8/+163
| | | | | | | | | | | | - Add unit test.
* | | MDEV-23766: Make Json_writer assert when one tries to author invalid JSONSergei Petrunia2021-11-092-27/+17
| | | | | | | | | | | | | | | Code cleanup: Remove Json_writer::is_on_fmt_helper_call. We already maintain this state in fmt_helper.
* | | In case WITH_WSREP is enabled, build wsrep as pluginVladislav Vaintroub2021-11-093-13/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | If it is not enabled, build wsrep as static "stub" library from wsrep_dummy.cc ´ Allow static plugins to export symbols (on Unix) wsrep_info relies on wsrep defined symbols (e.g LOCK_wsrep_config_state) exported from mysqld
* | | improve build, allow sql library to be built in parallel with builtinsVladislav Vaintroub2021-11-094-8/+49
| | |