- 15 Mar, 2018 1 commit
-
-
Daniel Black authored
-
- 13 Mar, 2018 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 12 Mar, 2018 10 commits
-
-
Marko Mäkelä authored
-
Alexey Botchkov authored
in trans_xa_start. test fixed.
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
In thread caching code, clear THD's warnings before reuse.
-
Oleksandr Byelkin authored
There is not current SELECT during assigning SP parameters, do not use it if current_select is empty.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
fts_sync(): If the dict_table_t::to_be_dropped flag is set, do not "goto begin_sync". Also, clean up the way how dict_index_t::index_fts_syncing is cleared. It looks like this regression was introduced by merging Oracle Bug #24938374 MYSQL CRASHED AFTER LONG WAIT ON DICT OPERATION LOCK WHILE SYNCING FTS INDEX https://github.com/mysql/mysql-server/commit/068f8261d4c1e134965383ff974ddf30c0758f51 from MySQL 5.6.38 into MariaDB 10.0.33, 10.1.29, 10.2.10. The same hang is present in MySQL 5.7.20.
-
Alexey Botchkov authored
in trans_xa_start. THD.transaction.xid_state.xid.rm_error should be cleaned as the thread ends.
-
- 11 Mar, 2018 1 commit
-
-
Sergei Petrunia authored
Don't call handler->position() if the last call to read a row did not succeed.
-
- 10 Mar, 2018 4 commits
-
-
Marko Mäkelä authored
fil_space_t::atomic_write_supported: Always set this flag for TEMPORARY TABLESPACE and during IMPORT TABLESPACE. The page writes during these operations are by definition not crash-safe because they are not written to the redo log. fil_space_t::use_doublewrite(): Determine if doublewrite should be used. buf_dblwr_update(): Add assertions, and let the caller check whether doublewrite buffering is desired. buf_flush_write_block_low(): Disable the doublewrite buffer for the temporary tablespace and for IMPORT TABLESPACE. fil_space_set_imported(), fil_node_open_file(), fil_space_create(): Initialize or revise the space->atomic_write_supported flag. buf_page_io_complete(), buf_flush_write_complete(): Add the parameter dblwr, to indicate whether doublewrite was used for writes. buf_dblwr_sync_datafiles(): Remove an unnecessary flush of persistent tablespaces when flushing temporary tablespaces. (Move the call to buf_dblwr_flush_buffered_writes().)
-
Marko Mäkelä authored
buf_flush_init_for_writing(): Remove the parameter skip_checksum.
-
Marko Mäkelä authored
fsp_init_file_page_low(): Always initialize the page.
-
Marko Mäkelä authored
-
- 09 Mar, 2018 3 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
MDEV-14648 Restore fix for MySQL BUG#39053 - UNINSTALL PLUGIN does not allow the storage engine to cleanup open connections ha_close_connection(): Do invoke the method also for plugins for which UNINSTALL PLUGIN was deferred due to open connections.
-
Marko Mäkelä authored
buf_flush_batch(), buf_flush_stats(): Declare static. buf_flush_common(): Remove (unused function).
-
- 08 Mar, 2018 1 commit
-
-
Jan Lindström authored
There were some differences on MariaDB compared with MySQL. Fix these differences.
-
- 07 Mar, 2018 5 commits
-
-
Alexander Barkov authored
- Adding a new virtual method Field::load_data_set_no_data(). - Overriding Field_timestamp::load_data_set_no_data() and moving the TIMESTAMP specific code there. - Overriding Field_geom::load_data_set_no_data() and implementing GEOMETRY specific behavior, to prevent writing empty strings when the loaded file ends unexpectedly. This fixes the bug. - Adding a new test gis-loaddaata.test. - The test in loaddata.test for CHAR was added simply to record behavior. The CHAR data type did not change its behaviour (only GEOMRYRY did). - Additionally, moving duplicate code into a new method Field::load_data_set_value() and reusing it in three places.
-
Marko Mäkelä authored
InnoDB in Debian uses utf8mb4 as default character set since version 10.0.20-2. This leads to major pain due to keys longer than 767 bytes. MariaDB 10.2 (and MySQL 5.7) introduced the setting innodb_default_row_format that is DYNAMIC by default. These versions also changed the default values of the parameters innodb_large_prefix=ON and innodb_file_format=Barracuda. This would allow longer column index prefixes to be created. The original purpose of these parameters was to allow InnoDB to be downgraded to MySQL 5.1, which is long out of support. Every InnoDB version since MySQL 5.5 does support operation with the relaxed limits. We backport the parameter innodb_default_row_format to MariaDB 10.1, but we will keep its default value at COMPACT. This allows MariaDB 10.1 to be configured so that CREATE TABLE is less likely to encounter a problem with the limitation: loose_innodb_large_prefix=ON loose_innodb_default_row_format=DYNAMIC (Note that the setting innodb_large_prefix was deprecated in MariaDB 10.2 and removed in MariaDB 10.3.) The only observable difference in the behaviour with the default settings should be that ROW_FORMAT=DYNAMIC tables can be created both in the system tablespace and in .ibd files, no matter what innodb_file_format has been assigned to. Unlike MariaDB 10.2, we are not changing the default value of innodb_file_format, so ROW_FORMAT=COMPRESSED tables cannot be created without changing the parameter.
-
Daniel Black authored
-
Ian Gilfillan authored
-
Ian Gilfillan authored
-
- 06 Mar, 2018 3 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
With MDEV-15132 in MariaDB 10.3.5, InnoDB no longer writes the transaction identifier to the TRX_SYS page. The information is only written to undo log headers and sometimes rollback segment headers. Because the setting innodb_force_recovery=5 will skip reading any of those pages, the maximum transaction identifier will no longer be determined. innobase_map_isolation_level(): Always report READ UNCOMMITTED if innodb_force_recovery has been set to 5 or more, or innodb_read_only is set. This will avoid errors reported by lock_check_trx_id_sanity() and ReadView::check_trx_id_sanity(). lock_clust_rec_cons_read_sees(): Do not check for innodb_read_only, now that innobase_map_isolation_level() will guarantee that no read view will be created or used. row_search_mvcc(): Do not check for innodb_force_recovery<5, now that innobase_map_isolation_level() will guarantee that no read view will be created or used.
-
Marko Mäkelä authored
The problem is a regression caused by MDEV-15158. If some transactions were committed with wsrep_on=0, a rollback segment header having the highest trx_id assigned might store undefined wsrep XID. When reading the wsrep checkpoint from InnodB, the undefined wsrep XID might be returned instead of the highest valid one. Similarly, if the binary log is intermittently disabled or enabled while InnoDB transactions are being committed, the latest updated rollback segment header page might not contain the latest binlog metadata. Therefore, the MDEV-15158 logic to rely on TRX_RSEG_MAX_TRX_ID for determining the most recent WSREP XID or binlog position is invalid. We must choose the maximum entries among the rollback segment header pages. This fix is based on code submitted by Teemu Ollakka from Codership and by Thirunarayanan Balathandayuthapani from MariaDB Corporation. trx_purge_add_undo_to_history(): Only write TRX_RSEG_MAX_TRX_ID when it was used to be written before MDEV-15158. wsrep_seqno: Renamed from trx_sys_cur_xid_seqno. wsrep_uuid: Renamed from trx_sys_cur_xid_uuid, and enable in non-debug builds. read_wsrep_xid_uuid(): Make non-debug, and remove the memcpy(). trx_rseg_update_wsrep_checkpoint(): Correctly compare and copy the entire UUID in the debug check. In case of UUID mismatch, write the WSREP XID to all 128 rollback segment headers in a single mini-transaction. trx_rseg_read_wsrep_checkpoint(rseg_header, xid): Make static. In case the information is absent, do not overwrite xid. trx_rseg_read_wsrep_checkpoint(xid): Determine the maximum WSREP XID. trx_rseg_mem_restore(): Remove the parameter max_rseg_trx_id. Determine the latest binlog file and position by comparing file names and offsets. Declare trx_sys.recovered_binlog_offset as an unsigned type.
-
- 04 Mar, 2018 1 commit
-
-
Sergei Golubchik authored
fix 50359719 don't rely on any specific engine checking order
-
- 02 Mar, 2018 3 commits
-
-
Elena Stepanova authored
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 01 Mar, 2018 1 commit
-
-
Oleksandr Byelkin authored
Expect index except unique constrain in case of heap table conversion.
-
- 28 Feb, 2018 2 commits
-
-
Alexander Barkov authored
-
Daniel Bartholomew authored
-
- 27 Feb, 2018 2 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
Backporting from bb-10.2-compatibility to bb-10.2-ext Version: 2018-01-26 - CREATE PACKAGE [BODY] statements are now entirely written to mysql.proc with type='PACKAGE' and type='PACKAGE BODY'. - CREATE PACKAGE BODY now supports IF NOT EXISTS - DROP PACKAGE BODY now supports IF EXISTS - CREATE OR REPLACE PACKAGE [BODY] is now supported - CREATE PACKAGE [BODY] now support the DEFINER clause: CREATE DEFINER user@host PACKAGE pkg ... END; CREATE DEFINER user@host PACKAGE BODY pkg ... END; - CREATE PACKAGE [BODY] now supports SQL SECURITY and COMMENT clauses, e.g.: CREATE PACKAGE p1 SQL SECURITY INVOKER COMMENT "comment" AS ... END; - Package routines are now created from the package CREATE PACKAGE BODY statement and don't produce individual records in mysql.proc. - CREATE PACKAGE BODY now supports package-wide variables. Package variables can be read and set inside package routines. Package variables are stored in a separate sp_rcontext, which is cached in THD on the first packate routine call. - CREATE PACKAGE BODY now supports the initialization section. - All public routines (i.e. declared in CREATE PACKAGE) must have implementations in CREATE PACKAGE BODY - Only public package routines are available outside of the package - {CREATE|DROP} PACKAGE [BODY] now respects CREATE ROUTINE and ALTER ROUTINE privileges - "GRANT EXECUTE ON PACKAGE BODY pkg" is now supported - SHOW CREATE PACKAGE [BODY] is now supported - SHOW PACKAGE [BODY] STATUS is now supported - CREATE and DROP for PACKAGE [BODY] now works for non-current databases - mysqldump now supports packages - "SHOW {PROCEDURE|FUNCTION) CODE pkg.routine" now works for package routines - "SHOW PACKAGE BODY CODE pkg" now works (the package initialization section) - A new package body level MDL was added - Recursive calls for package procedures are now possible - Routine forward declarations in CREATE PACKATE BODY are now supported. - Package body variables now work as SP OUT parameters - Package body variables now work as SELECT INTO targets - Package body variables now support ROW, %ROWTYPE, %TYPE
-
- 25 Feb, 2018 1 commit
-
-
Alexander Barkov authored
MDEV-15420 Wrong result for CAST from TIME or DATETIME with zero integer part and non-zero microseconds to DECIMAL(X,Y) The loop in ull2dec() does not iterate if "from" is zero, so to->intg got erroneously set to 0 instead of 1. Because if this, my_decimal2seconds() wrote the fractional part into a wrong buf[x]. Catching the special case with zero "from" and properly initialize "to" using decimal_make_zero().
-