Commit graph

187034 commits

Author SHA1 Message Date
Sergey Vojtovich
afe969ba05 Removed redundant log_type == LOG_BIN checks 2019-08-22 13:20:30 +04:00
Sergey Vojtovich
6b0b25a25b Cleanup log_type_arg of MYSQL_BIN_LOG::open()
It is always LOG_BIN anyway.
2019-08-22 13:20:30 +04:00
Sergey Vojtovich
e976d95614 Cleanup MYSQL_LOG
Embed MYSQL_LOG::init().
Reduce visibility of MYSQL_LOG::init_and_set_log_file_name().
Cleanup unused mysql_bin_log_file_name() and mysql_bin_log_file_pos().
2019-08-22 13:20:30 +04:00
Alexander Barkov
1d58e62d5b MDEV-20384 Assertion `field.is_sane()' failed in Protocol_text::store_field_metadata 2019-08-19 20:57:59 +04:00
Monty
da53fb6d7d Updated spider result file
Kentoku told me that this is ok and that he just had forgot
to do that as part of an earlier bug fix
2019-08-17 16:18:56 +03:00
Alexander Barkov
cb4dcf39e7 MDEV-20363 Assertion `is_unsigned() == attr.unsigned_flag' failed in Type_handler_longlong::make_table_field 2019-08-16 22:49:56 +04:00
Marko Mäkelä
67ddb6507d Merge 10.4 into 10.5 2019-08-16 14:35:32 +03:00
Marko Mäkelä
c221bcdce7 Merge 10.3 into 10.4 2019-08-16 10:51:20 +03:00
Marko Mäkelä
395e1dcd17 Merge 10.2 into 10.3 2019-08-16 10:02:18 +03:00
Marko Mäkelä
fe6eac0cf7 MDEV-19200: shutdown timeout on innodb.undo_truncate_recover
Optimize the test by dropping the table early and by using only
one undo log thread, so that purge will be doing more useful work
and less busy work of suspending and resuming the worker threads.

The test used to cause shutdown timeout on 10.4 on buildbot, and
for me locally when using --mysqld=--innodb-sync-debug.
With these tweaks, it passes for me with --mysqld=--innodb-sync-debug.
2019-08-16 09:56:43 +03:00
Marko Mäkelä
555af003e4 MDEV-8588/MDEV-19740: Restore a condition
It looks like the merge of MySQL 5.7.9 to MariaDB 10.2.2 conflicted with
earlier changes that were made in MDEV-8588.

row_search_mvcc(): If the page is corrupted, avoid invoking
btr_cur_store_position(). The caller should not try to fetch
the next record after a hard error.
2019-08-16 09:54:33 +03:00
Jan Lindström
3bbf008096 Remove file accidentally pushed. 2019-08-16 08:33:01 +03:00
Marko Mäkelä
130d9490c8 Silence GCC 9.2.1 -Warray-bounds
No memory access violated the bounds of fake_extra_buf[],
but GCC does not like the fact that the pointer fake_extra
ends up pointing before the array.
Allocate a dummy element at the start of fake_extra_buf[]
in order to silence the warning.
2019-08-16 08:29:41 +03:00
Jan Lindström
e6b505fd3c MDEV-18778: mysql_tzinfo_to_sql does not work correctly in MariaDB Galera
There were two problems:

(1) If user wanted same time zone information on all nodes in the Galera
cluster all updates were not replicated as time zone information was
stored on MyISAM tables. This is fixed on Galera by altering time zone
tables to InnoDB while they are modified.

(2) If user wanted different time zone information to nodes in the Galera
cluster TRUNCATE TABLE for time zone tables was replicated by Galera
destroying time zone information from other nodes. This is fixed
on Galera by introducing new option for mysql_tzinfo_to_sql_symlink
tool --skip-write-binlog to disable Galera replication while
time zone tables are modified.

Changes to be committed:
        modified:   mysql-test/r/mysql_tzinfo_to_sql_symlink.result
        modified:   mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result
        new file:   mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink_skip.result
        new file:   mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink_skip.test
        modified:   sql/tztime.cc

This is 10.4 version of commit fa74088838
2019-08-16 07:07:31 +03:00
Alexander Barkov
6073049a36 MDEV-20353 Add separate type handlers for unsigned integer data types 2019-08-15 21:53:24 +04:00
Marko Mäkelä
d50fe4021e Merge 10.2 into 10.3 2019-08-15 15:59:32 +03:00
Marko Mäkelä
112589cded MDEV-19740: Remove a bogus condition
This triggered a "may be uninitialized" warning from GCC 9.2.1.
The bogus-looking condition was added in
7e916bb86f
2019-08-15 15:58:37 +03:00
Marko Mäkelä
d07936aaba MDEV-19740: Silence a bogus "may be uninitialized" warning 2019-08-15 15:58:37 +03:00
Marko Mäkelä
ec28f9532e MDEV-19740: Fix C++11 violations caught by GCC 9.2.1 2019-08-15 15:58:37 +03:00
Jan Lindström
136cf0400f Fix result error. 2019-08-15 13:48:55 +03:00
Jan Lindström
0b20b9e911 Disable galera.query_cache as it still fails on bb and azure. 2019-08-15 12:53:08 +03:00
Jan Lindström
5a2012d2b3 Fix test failure on galera-features#56
We need to use wsrep_sync_wait=15 before selects to make sure
that node has applied all inserts from other node.
2019-08-15 12:40:27 +03:00
Sujatha
828191b6a0 MDEV-20348: DROP TABLE IF EXISTS killed on master but was replicated
Merge branch '10.2' into 10.3
2019-08-15 14:09:53 +05:30
Monty
ae4b9b7689 Fixed crash introduced with change to memcpy_field_possible 2019-08-15 11:34:44 +03:00
Aleksey Midenkov
ae34d85beb MDEV-20311 row_ins_step accesses unitialized memory
ins_node_create() does not initialize all members of que_common_t, so
zero-init them with mem_heap_zalloc().

Handle out-of-memory correctly.

Init insert_node->common.parent to fulfill the contract of thr usage.

Free insert_node subtree at row_update_vers_insert() exit.
2019-08-15 10:57:51 +03:00
Alexander Barkov
841294cfaa MDEV-20351 Window function BIT_OR() OVER (..) return a wrong data type 2019-08-15 10:32:42 +04:00
Marko Mäkelä
870acdf534 After-merge fix: Re-record results 2019-08-15 09:00:01 +03:00
Monty
c9c689e1a3 Updated prototype of ha_s3::write_row() to get s3 to compile 2019-08-15 00:42:57 +03:00
Monty
fa490e8022 Don't copy uninitialized bytes when copying varstrings
When using field_conv(), which is called in case of field1=field2 copy in
fill_records(), full varstring's was copied, including unitialized bytes.
This caused valgrind to compilain about usage of unitialized bytes when
using Aria static length records.
Fixed by not using memcpy when copying varstrings but instead just copy
the real bytes.
2019-08-15 00:42:56 +03:00
Sujatha
29e560cdf3 MDEV-20348: DROP TABLE IF EXISTS killed on master but was replicated
Problem:
=======
DROP TABLE IF EXISTS was killed. The table still exists on
the master but the DDL was still logged.

Analysis:
=========
During the execution of DROP TABLE command "ha_delete_table" call is invoked
to delete the table. If the query is killed at this point, the kill command
is not handled within the code. This results in two issues.
1) The table which is not dropped also gets written into the binary log.
2) The code continues further upon receiving 'KILL QUERY'.

Fix:
===
Upon receiving the KILL command the query should stop its current execution.
Tables which were successfully dropped prior to KILL command should be
included in the binary log.
2019-08-14 22:53:16 +05:30
Alexander Barkov
afe6eb499d Revert "MDEV-20342 Turn Field::flags from a member to a method"
This reverts commit e86010f909.

Reverting on Monty's request, as this change makes merging
things from 10.5 to 10.2 much harder.
2019-08-14 20:27:00 +04:00
Aleksey Midenkov
c23a5e0e5e Merge 10.2 into 10.3 2019-08-14 19:16:08 +03:00
Aleksey Midenkov
2347ffd843 MDEV-20301 InnoDB's MVCC has O(N^2) behaviors
If there're multiple row versions in InnoDB, reading one row from PK
may have O(N) complexity and reading from secondary keys may have
O(N^2) complexity.

The problem occurs when there are many pending versions of the same
row, meaning that the primary key is the same, but a secondary key is
different.  The slowdown occurs when the secondary index is
traversed. This patch creates a helper class for the function
row_sel_get_clust_rec_for_mysql() which can remember and re-use
cached_clust_rec & cached_old_vers so that rec_get_offsets() does not
need to be called over and over for the clustered record.

Corrections by Kevin Lewis <kevin.lewis@oracle.com>

MDEV-20341 Unstable innodb.innodb_bug14704286

Removed test that tested the ability of interrupting long query which
is not long anymore.
2019-08-14 19:10:17 +03:00
Marko Mäkelä
1d15a28e52 Merge 10.3 into 10.4 2019-08-14 18:06:51 +03:00
Aleksey Midenkov
a20f6f9853 MDEV-20336 Assertion bitmap_is_set(read_partitions) upon SELECT FOR UPDATE from versioned table
Exclude SELECT and INSERT SELECT from vers_set_hist_part(). We cannot
likewise exclude REPLACE SELECT because it may REPLACE into itself
(and REPLACE generates history).

INSERT also does not generate history, but we have history
modification setting which might be interfered.
2019-08-14 17:32:19 +03:00
Alexander Barkov
e86010f909 MDEV-20342 Turn Field::flags from a member to a method 2019-08-14 13:33:01 +04:00
Marko Mäkelä
fa21952e25 Merge 10.4 into 10.5 2019-08-14 12:01:04 +03:00
Aleksey Midenkov
39db116562 MDEV-18862 Unfortunate error message upon attempt to drop system versioning
Fix error code.
2019-08-14 11:58:58 +03:00
Marko Mäkelä
c4feef50cf MDEV-20138 innodb.trx_id_future fails on 10.4+
Adjust the test for full_crc32.
2019-08-14 11:58:22 +03:00
Marko Mäkelä
1c83c30064 Merge 10.4 into 10.5 2019-08-14 10:33:17 +03:00
Thirunarayanan Balathandayuthapani
7772c7cd94 MDEV-20340 Encrypted temporary tables cannot be read with full_crc32
Problem:
========
Checksum for the encrypted temporary tablespace is not stored in the page
for full crc32 format.

Solution:
========
Made temporary tablespace in full crc32 format irrespective of encryption
parameter.

buf_tmp_page_encrypt(), buf_tmp_page_decrypt() - Both follows full_crc32
format.
2019-08-14 10:32:52 +03:00
Marko Mäkelä
dc8a20f3d0 MDEV-19781: Adapt the test for full_crc32 2019-08-14 10:32:52 +03:00
Marko Mäkelä
d7be886cb8 Fix main.opt_trace
This was broken in 2dbe472ed0
2019-08-14 10:32:52 +03:00
Marko Mäkelä
34b937835e Re-record innodb.innodb-system-table-view
This was broken in the merge 624dd71b94
2019-08-14 09:32:37 +03:00
Alexander Barkov
c1599821a5 Merge remote-tracking branch 'origin/10.4' into 10.5 2019-08-13 23:49:10 +04:00
Marko Mäkelä
65d48b4a7b Merge 10.2 to 10.3 2019-08-13 19:28:51 +03:00
Marko Mäkelä
624dd71b94 Merge 10.4 into 10.5 2019-08-13 18:57:00 +03:00
Monty
c4fd167d5a Fixed access to unitialized memory when using unique HASH key
Fixed the following issues:
- Call info with HA_STATUS_CONST to ensure that (key_info->rec_per_key)
  contains latest data
- Don't access rec_per_key if key_info->algorithm == HA_KEY_ALG_LONG_HASH
  is in this case the rec_per_key points to uninitialized data
- Cleaned up code to avoid some extra 'if' and to make things more readable
- Updated test cases that used 'old' rec_per_key values
2019-08-13 17:19:00 +03:00
Sergei Petrunia
65296123d0 MDEV-12439: MariaRocks produces numerous (spurious?) valgrind failures
Enable the rocksdb test suite. It now passes the valgrind tests.
2019-08-13 16:37:21 +03:00
Sergei Petrunia
c5b4697b24 MDEV-20315: Backport to 10.2: Myrocks: Get the upstream's valgrind suppressions to work 2019-08-13 16:27:51 +03:00