- 29 Nov, 2021 7 commits
-
-
Thirunarayanan Balathandayuthapani authored
InnoDB fails to restore page0 from doublewrite buffer when the tablespace is being deferred. In that case, InnoDB doesn't find INIT_PAGE redo log record for page0 and it leads to failure. InnoDB should recovery page0 from doublewrite buffer.
-
Sergei Petrunia authored
Print this piece when we've just made the choice to convert to semi-join. Also, print it when we've already made that choice before: transformation": { "select_id": 2, "from": "IN (SELECT)", "to": "semijoin", "chosen": true }
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Let us create and drop a separate database for getting rid of the default database in the MDEV-22781 test.
-
Marko Mäkelä authored
-
- 28 Nov, 2021 2 commits
-
-
Vladislav Vaintroub authored
The warning message says the file contains a character which can not be represented in current codepage (not exactly accurate)
-
Vladislav Vaintroub authored
Disable lock elision, due to buggy intrin.h (_xbegin is misspelled) Fix warnings.
-
- 26 Nov, 2021 4 commits
-
-
Sergei Golubchik authored
restore the old behavior where without a debugger mtr does not wait for mysqld to start. It was broken in feacc0aa
-
Sergei Golubchik authored
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
-
Sergei Golubchik authored
MDEV-20330 Combination of "," (comma), cross join and left join fails to parse
-
Hugo Wen authored
From 10.4.13, the `mariadb.sys` user was created to replace `root` definers. - In commit 0253ea7f, 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 0d6d801e(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.
-
- 25 Nov, 2021 4 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Occasionally, the test would fail with a result difference for ddl_log_file_alter_table (0 instead of 1) due to some nondeterminism in the test. Let us remove that nondeterminism.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 24 Nov, 2021 12 commits
-
-
Marko Mäkelä authored
In commit 1193a793 we set innodb_use_native_aio=OFF when using io_uring on a kernel where write requests could potentially be lost. The last reproducible issue was fixed in Linux 5.16-rc1 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.16-rc1&id=d3e3c102d107bb84251455a298cf475f24bab995 and the fix was backported to 5.15.3. Hence, using a 5.16 or later kernel should be fine. The Debian kernel 5.15.0-1-amd64 (5.15.3-1) was tested. On Debian, utsname::release or uname -r does not reflect the exact minor version while utsname::version and uname -v does. On Fedora however the utsname::version is rather different: $ uname -r 5.14.20-200.fc34.x86_64 $ uname -v #1 SMP Thu Nov 18 22:03:20 UTC 2021 As such we use the version, but fall back to the release if there isn't the beginnings of a kernel version in the version. Thanks to Daniel Black for reporting the Linux kernel bug and Jens Axboe for actually fixing it. Co-Authored-By: Daniel Black <daniel@mariadb.org> Closes: #1953
-
Robert Bindar authored
-
Sergei Krivonos authored
-
Sergei Krivonos authored
-
ryancaicse authored
Fix a potential deadlock bug between locks ctrl_mutex and entry->mutex
-
Marko Mäkelä authored
Sys_lc_messages, Sys_lc_time_names: Use offsetof(MY_LOCALE, ...) because the type has standard layout.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The macro my_offsetof() performs pointer arithmetics that may be undefined behavior. As reported in MDEV-26272, it may cause clang -fsanitize=undefined to generate invalid memory references. struct PFS_events_statements: Convert to std::is_standard_layout by encapsulating the standard-layout struct PFS_events instead of deriving from it, so that the standard macro offsetof() can be used. PFS_events_statements::copy(): Renamed from copy_events_statements(). A cast to void* is now needed in memcpy() to avoid GCC -Wclass-memaccess "writing to an object ... leaves 64 bytes unchanged".
-
Marko Mäkelä authored
mdl_hash_function(): Use plain offsetof; MDL_key has standard layout.
-
Daniel Black authored
There's no need for Debian to set config items to their default. Left commented user, datadir and tmpdir as these may want to be changed. lc-messages and skip-external-locks are so infrequently set even listing them looks overly verbose. socket left uncommented in [client-server] as various client implementations may have different defaults compiled in.
-
Daniel Black authored
MySQL documentation isn't going to help our users and we shouldn't refer to it.
-
Marc Olivier Bergeron authored
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: ( ) . , | & % * ^ /
-
- 23 Nov, 2021 6 commits
-
-
Alexey Bychko authored
this patch moves cpack summury and description for optional packages to the appropriate CMakeLists.txt files
-
Julius Goryavsky authored
-
Julius Goryavsky authored
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.
-
Julius Goryavsky authored
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.
-
Julius Goryavsky authored
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.
-
Julius Goryavsky authored
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.
-
- 21 Nov, 2021 1 commit
-
-
Igor Babaev authored
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>
-
- 20 Nov, 2021 4 commits
-
-
Igor Babaev authored
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>
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Marko Mäkelä authored
buf_LRU_scan_and_free_block(): It turns out that even with -fno-expensive-optimizations, GCC 4.8.5 may fail to split an instruction. For the non-embedded server, -O1 would fail and -Og would seem to work, while the embedded server build seems to require -O0. buf_block_init(): Correct the MemorySanitizer instrumentation. buf_page_get_low(): Do not read dirty data from read-fixed blocks. These data races were identified by MemorySanitizer. If a read-fixed block is being accessed, we must acquire and release a page latch, so that the read-fix (and the exclusive page latch) will be released and it will be safe to read the page frame contents if needed, even before acquiring the final page latch. We do that in buf_read_ahead_linear() and for the allow_ibuf_merge check. mtr_t::page_lock(): Assert that the block is not read-fixed.
-