- 16 Aug, 2019 1 commit
-
-
Jan Lindström authored
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 fa740888
-
- 15 Aug, 2019 3 commits
-
-
Jan Lindström authored
-
Jan Lindström authored
We need to use wsrep_sync_wait=15 before selects to make sure that node has applied all inserts from other node.
-
Marko Mäkelä authored
-
- 14 Aug, 2019 7 commits
-
-
Marko Mäkelä authored
-
Aleksey Midenkov authored
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.
-
Aleksey Midenkov authored
Fix error code.
-
Marko Mäkelä authored
Adjust the test for full_crc32.
-
Thirunarayanan Balathandayuthapani authored
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.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This was broken in 2dbe472e
-
- 13 Aug, 2019 13 commits
-
-
Marko Mäkelä authored
-
Monty authored
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
-
Sergei Petrunia authored
The names rows_for_plan and cost_for_plan follow MySQL Also added post-join-operation selectivity cost
-
Marko Mäkelä authored
Starting with MDEV-12288 in MariaDB Server 10.3, the transaction identifiers on records will be reset on purge. Because purge might or might not run to completion before shutdown, it could happen that the bogus transaction identifier that our test is writing will be reset by purge after restart, and the expected warning message on SELECT will fail to appear. We resolve the race condition by ensuring that purge runs to completion before the shutdown.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Use DEBUG_SYNC to hang the execution at the interesting point, and then kill and restart the server externally. This will work also with Valgrind. DBUG_SUICIDE() causes Valgrind to hang, and it could also cause uninteresting reports about memory leaks. While we are at it, let us clean up innodb.innodb_bulk_create_index_debug so that it will actually test the desired functionality also in future versions (with instant ADD COLUMN and DROP COLUMN) and avoid some unnecessary restarts. We are adding two DEBUG_SYNC points for ALTER TABLE, because there were none that would be executed right before ha_commit_trans().
-
Alexander Barkov authored
-
Jan Lindström authored
Galera threads were not registered to performance schema and used pthread_create when mysql_thread_create should have been used. Added test case to verify current galera performance schema instrumentation does work.
-
Jan Lindström authored
Test changes only.
-
Marko Mäkelä authored
Skip the test on big-endian systems. In MariaDB Server 10.0 and 10.1 (as well as MySQL 5.6), the implementation of innodb_checksum_algorithm=crc32 wrongly assumes little-endian byte order.
-
Jan Lindström authored
Fix incorrect else that should have been else if.
-
Alexander Barkov authored
-
- 12 Aug, 2019 10 commits
-
-
Marko Mäkelä authored
Starting with commit 210855ce Valgrind became aware that the unused tail of the buffer that is returned by thd_get_xid() is actually uninitialized. The problem should exist already in MySQL 5.0. I was able to repeat it on MariaDB Server 5.5 with some additional instrumentation. InnoDB is allocating 128+4+4 bytes for the XID and the lengths of its components, even when the XID is shorter than 64+64 bytes. In MariaDB Server 10.3, while running the test main.xa_binlog, in the xid_t::set() that is called by sql_yacc.yy, the 128-byte data buffer was uninitialized according to Valgrind, and only the first bytes were initialized. When the xid_t::data was copied to thd.transaction.xid_state.xid.data, it happened so that the entire target buffer was considered initialized. With MariaDB Server 10.4 since the said commit, Valgrind will correctly be detect the tail of the buffer as uninitialized. The impact of this bug is as follows: (1) InnoDB will write unnecessarily much redo log for XA PREPARE. (2) InnoDB will write garbage bytes to the redo log and undo log pages. (3) The garbage should be 'harmless', because on recovery, only the actual payload of the XID will be used, based on the written length. trx_rseg_write_wsrep_checkpoint(), trx_undo_write_xid(): Write only the actually used length of xid->data to the data page, and zero out the rest of the buffer by mlog_memset().
-
Marko Mäkelä authored
This fixes the following test failures related to index cardinality: main.join main.stat_tables main.partition main.stat_tables_innodb innodb.innodb_bug57252
-
Marko Mäkelä authored
MDEV-17614 flags INSERT…ON DUPLICATE KEY UPDATE unsafe for statement-based replication when there are multiple unique indexes. This correctly fixes something whose attempted fix in MySQL 5.7 in mysql/mysql-server@c93b0d9a972cb6f98fd445f2b69d924350f9128a caused lock conflicts. That change was reverted in MySQL 5.7.26 in mysql/mysql-server@066b6fdd433aa6673622341f1a2f0a3a20018043 (with a substantial amount of other changes). In MDEV-17073 we already disabled the unfortunate MySQL change when statement-based replication was not being used. Now, thanks to MDEV-17614, we can actually remove the change altogether. This reverts commit 8a346f31 (MDEV-17073) and mysql/mysql-server@c93b0d9a972cb6f98fd445f2b69d924350f9128a while keeping the test cases.
-
Marko Mäkelä authored
-
Monty authored
- mysqltest didn't free read_command_buf - wait_for_slave_param did write different things to the log if valgrind was used. - Table open cache should not write the initial variable value as it can depend on the configuration or if valgrind is used - A variable in GetResult was used uninitalized
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Monty authored
- Initialize variables that could be used uninitialized - Added extra end space to DbugStringItemTypeValue to get rid of warnings from c_ptr() - Session_sysvars_tracker::update() accessed unitialized memory if called with NULL value. - get_schema_stat_record() accessed unitialized memory if HA_KEY_LONG_HASH was used - parse_vcol_defs() accessed random memory for tables without keys.
-
- 11 Aug, 2019 6 commits
-
-
Aleksey Midenkov authored
initialize_readline() is called with full pathname of executable which sets rl_readline_name to that value. It is expected that rl_readline_name is initialized with static name not depending on the file name at all. Needed for setting custom hotkeys in .inputrc
-
Aleksey Midenkov authored
1. Fix DBUG_ASSERT(!table->pos_in_locked_tables) in tc_release_table(); 2. Fix access of prematurely freed MDL_ticket: don't close ticket if table was not closed; 3. Fix deadlock after erroneous ALTER. mysql_alter_table() leaves dirty table->m_needs_reopen in case of error exit which then incorrectly treated by mysql_lock_tables().
-
Aleksey Midenkov authored
Prevent conflicting clauses at parser level. Clear HA_VERSIONED_TABLE flag for DROP SYSTEM VERSIONING (for the sake of strictness).
-
Aleksey Midenkov authored
Special case for DROP PERIOD when system fields are implicit.
-
Aleksey Midenkov authored
For MODE_SIMULTANEOUS_ASSIGNMENT it is required to return back field offsets from record[1] to record[0]. 'continue' in warning branch did skip of rfield->move_field_offset() call.
-
Aleksey Midenkov authored
Wrong value F_WRLCK for thr_lock_type.
-