Commit graph

185156 commits

Author SHA1 Message Date
Marko Mäkelä
b59d484696 MDEV-14126: Remove page_is_root()
The predicate page_is_root(), which was added in MariaDB Server 10.2.2,
is based on a wrong assumption.

Under some circumstances, InnoDB can transform B-trees into a degenerate
state where a non-leaf page has no sibling pages. Because of this,
we cannot assume that a page that has no siblings is the root page.
This bug will be tracked as MDEV-19022.

Because of the bug that may affect many InnoDB data files, we must remove
and replace the wrong predicate. Using the wrong predicate can cause
corruption. A leaf page is not allowed to be empty except if it is the
root page, and the entire table is empty.
2019-03-25 10:53:00 +02:00
Marko Mäkelä
71c781bfe7 MDEV-18090 Assertion failures due to virtual columns after upgrading to 10.2
MariaDB before MDEV-5800 in version 10.2.2 did not support
indexed virtual columns. Non-persistent virtual columns were
hidden from storage engines. Only starting with MDEV-5800, InnoDB
would create internal metadata on virtual columns.

Similar to what was done in MDEV-18084 and MDEV-18960, we adjust two more
code paths for the old tables.

ha_innobase::build_template(): Do not invoke
dict_index_contains_col_or_prefix() for virtual columns if InnoDB
does not store the metadata.

innobase_build_col_map(): Relax an assertion about the number of columns.

ha_innobase::omits_virtual_cols(): Renamed from omits_virtual_cols().
2019-03-25 10:29:48 +02:00
Alexander Barkov
f03f4da663 SEQUENCE tests for MDEV-18892 Regression in slow log and admin statements
Adding tests to cover how SEQUENCE related statements work in combination
with the slow log configuration commands.
2019-03-25 07:43:07 +04:00
Chris Calender
c61e8a6597 Fix for MDEV-17449, typo in error message (#1146) 2019-03-24 21:24:28 +04:00
Olivier Bertrand
35bc91e24a Typo 2019-03-24 17:32:01 +01:00
Olivier Bertrand
fc1f3908c1 - 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
2019-03-23 17:51:40 +01:00
Sergei Golubchik
77e2aca3f0 cmake 3.14
new location for CPackRPM.cmake
2019-03-23 14:33:36 +01:00
Elena Stepanova
0e56eba9d5 Updated list of unstable tests for 10.2.23 2019-03-23 11:29:24 +01:00
Chris Calender
2d6e627a9f Fix for MDEV-18276, typo in error message + all other occurrences of refering 2019-03-23 00:10:18 +04:00
Chris Calender
d8b7e76c37 Fix for MDEV-18276, typo in error message + all other occurrences of refering 2019-03-23 00:00:47 +04:00
Eugene Kosov
dcdeb39480 remove dead code
found by @marko
2019-03-22 23:08:46 +04:00
Eugene Kosov
1d77a566ea remove dead code 2019-03-22 23:08:19 +04:00
Eugene Kosov
92d1c9611e remove dead code 2019-03-22 23:07:13 +04:00
Eugene Kosov
2327d4e430 remove unused method 2019-03-22 23:00:42 +04:00
Eugene Kosov
67b601c503 remove unused argument 2019-03-22 22:57:16 +04:00
Eugene Kosov
8e9c5d1057 remove dead code 2019-03-22 22:53:16 +04:00
Eugene Kosov
a07e29a0e5 cleanup TABLE_SHARE 2019-03-22 22:50:17 +04:00
Eugene Kosov
53216091dd remove dead code 2019-03-22 22:33:27 +04:00
Eugene Kosov
a97ca9fe5b remove dead code 2019-03-22 22:31:26 +04:00
Eugene Kosov
a523444eda remove dead code 2019-03-22 22:30:36 +04:00
Sergei Golubchik
07c3e90210 MDEV-18954 numa dynamic dependency
don't link with libnuma in release builds
2019-03-22 15:42:10 +01:00
Sergei Golubchik
a794db9ade cmake: remove unused variable 2019-03-22 15:40:30 +01:00
FaramosCZ
ed643f4bb3 Fix resource leak
The 'bitmap_dir' has to be closed when no longer needed
2019-03-22 16:19:30 +04:00
Alexander Barkov
f704361cd6 Backporting slow log simulation logic details from 10.2 to 10.1
Simulate slow statements only for COM_QUERY and COM_STMT_EXECUTE commands,
to exclude mysqld_stmt_prepare() and mysqld_stmt_close() entries from the log,
as they are not relevant for log_slow_debug.test. This simplifies the test.
2019-03-22 15:56:45 +04:00
FaramosCZ
9c9bf9642e Fix resource leak 2019-03-22 15:48:26 +04:00
FaramosCZ
89e390b7ce Fix resource leak 2019-03-22 15:20:56 +04:00
FaramosCZ
9ff713d33a Fix resource leak 2019-03-22 14:52:30 +04:00
Alexander Barkov
1c60f40868 Merge remote-tracking branch 'origin/10.2' into 10.3 2019-03-22 14:41:36 +04:00
Marko Mäkelä
50a8fc5298 MDEV-18224 MTR's internal check of the test case 'innodb.recovery_shutdown' failed due to extra #sql-ib*.ibd files
The test innodb.recovery_shutdown would occasionally fail,
because recovered incomplete transactions would be conflicting
with DROP TABLE, causing the background drop table queue to be invoked.

Add a slow shutdown before dropping the tables, so that the
recovered transactions will be rolled back. Starting with MDEV-14705,
normal shutdown would abort the rollback of recovered transactions.
2019-03-22 11:16:06 +02:00
Marko Mäkelä
031fa8f1d2 Merge 10.1 into 10.2 2019-03-22 11:15:21 +02:00
sachin
778c525ff8 MDEV-17119 replicate_rewrite_db does not work for single chardatabase name
Fixed issue in logic.
2019-03-22 12:13:24 +05:30
Alexander Barkov
f4484dfdbf MDEV-19008 Slow EXPLAIN SELECT ... WHERE col IN (const1,const2,(subquery)) 2019-03-22 07:28:59 +04:00
FaramosCZ
8be02be08b Fix USE_AFTER_FREE (CWE-672)
The file will be closed on line 540
2019-03-22 02:32:47 +04:00
FaramosCZ
137812c88a Fix USE_AFTER_FREE (CWE-416)
swap two lines
2019-03-22 01:42:04 +04:00
chriscalender
f00e25b4c4 Fix for MDEV-15538, '-N' Produce html output wrong 2019-03-22 01:01:59 +04:00
Chris Calender
9d2d80aace Update sql_parse.cc
Corrected one more "refering" typo.
2019-03-22 00:40:32 +04:00
Marko Mäkelä
8c493a910f Merge 10.0 into 10.1 2019-03-21 21:06:01 +02:00
Marko Mäkelä
925b503058 Merge 5.5 into 10.0 2019-03-21 10:34:00 +02:00
Marko Mäkelä
5d454181a8 MDEV-6262 follow-up: Ensure NUL termination on strncpy() 2019-03-21 10:29:59 +02:00
Marko Mäkelä
482710b20c Remove an unused variable 2019-03-21 10:14:57 +02:00
Marko Mäkelä
5a780f2ec8 Merge 10.2 into 10.3 2019-03-21 10:14:23 +02:00
Marko Mäkelä
1caec9c898 Remove unnecessary trx_rsegf_get_new() calls
trx_rseg_header_create(): Return the block descriptor, and
remove the redundant trx_rsegf_get_new() call. Apparently
the idea of that call was some kind of encapsulation or
abstraction, to discourage the direct use of the constant TRX_RSEG.

This also removes the trx_purge_initiate_truncate() local
variable rseg_header, which was only used in debug builds.
2019-03-21 09:40:01 +02:00
Marko Mäkelä
5c1720f8af Remove unused variables from non-debug build 2019-03-21 09:30:37 +02:00
Marko Mäkelä
dcc4458aa0 Add appropriate #ifdef around a declaration 2019-03-21 09:30:03 +02:00
Marko Mäkelä
185a5000e6 Silence bogus -Wmaybe-uninitialized 2019-03-21 09:24:03 +02:00
Marko Mäkelä
3d1b6f68f1 Mariabackup: Ensure NUL termination in strncpy() 2019-03-21 08:54:35 +02:00
Alexander Barkov
e9c494c843 Fixing a failure in tests for "MDEV-18892 Regression in slow log and admin statements"
Tests for MDEV-18892 failed, because of extra 'Prepare' and 'Close stmt'
entries in the output.

Filtering out PS related entries (where it is necessary).
2019-03-21 08:48:44 +04:00
Marko Mäkelä
f41166133b Merge 10.2 into 10.3 2019-03-20 18:37:53 +02:00
Marko Mäkelä
630199e724 MDEV-18981 Possible corruption when using FOREIGN KEY with virtual columns
row_ins_foreign_fill_virtual(): Construct update->old_vrow
with ROW_COPY_DATA instead of ROW_COPY_POINTERS. With the latter,
the object would be pointing to a buffer pool page frame. That page
frame can become stale and invalid as soon as
row_ins_foreign_check_on_constraint() invokes mtr_t::commit().

Most of the time, the pointer target is not going to be overwritten
by anything, and everything appears to work correctly.
Buffer pool page replacement is highly unlikely, and any pessimistic
operation that would overwrite the old location of the record is only
slightly more likely. It is not known whether there is an actual bug.
This came up while diagnosing MDEV-18879 in MariaDB 10.3.
2019-03-20 18:34:49 +02:00
Marko Mäkelä
b47cec6c55 MDEV-18879/MDEV-18972 Corrupted record inserted by FOREIGN KEY operation
row_ins_foreign_check_on_constraint(): When constructing
cascade->historical_row for tables WITH SYSTEM VERSIONING,
use the appropriate mode ROW_COPY_DATA, because the pointers
will be stale after mtr_commit() is invoked.
2019-03-20 18:10:23 +02:00