- 23 Feb, 2018 16 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
partition_info had a bunch of function pointers to avoid if()'s when invoking part_type specific functionality (like get_part_id, etc). But check_range_constants() and check_list_constants() were still invoked conditionally, with if()'s. Create partition_info::check_constants function pointer, get rid of if()'s Also remove alloc argument of check_range_constants(), added in 26a3ff0a. Broken system versioning will be fixed in following commits.
-
Sergei Golubchik authored
use include/have_xxx.inc when some feature needs to be present (because --xxx in the opt file will fail if the xxx is not compiled in) set variables in the test, not on the command line, to avoid unnecessary server restarts (they're must slower than SET).
-
Aleksey Midenkov authored
* TIMESTAMP precedence fixed.
-
Aleksey Midenkov authored
Unit-based history point (vers_history_point_t; Vers_history_point).
-
Aleksey Midenkov authored
Update partition stats on ha_partition::write_row()
-
Sergei Golubchik authored
-
Sergei Golubchik authored
SQL: DROP PERIOD FOR SYSTEM_TIME syntax and remove ER_VERS_SYS_FIELD_EXISTS originally by: Eugene Kosov
-
Sergei Golubchik authored
also, don't rotate versioning partitions for DELETE HISTORY originally by: Aleksey Midenkov
-
Sergei Golubchik authored
implement log-term TODO item, convert redundant if()-s into asserts.
-
Sergei Golubchik authored
don't allow to discover WITH SYSTEM VERSIONING clause originally by: Aleksey Midenkov
-
Sergei Golubchik authored
table might be NULL in ha_partition::engine_name() (test case pushed into 5.5)
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergey Vojtovich authored
There is only one lock_sys. Allocate it statically in order to avoid dereferencing a pointer whenever accessing it. Also, align some members to their own cache line in order to avoid false sharing. lock_sys_t::create(): The deferred constructor. lock_sys_t::close(): The early destructor.
-
Marko Mäkelä authored
Merge pull request #622
-
- 22 Feb, 2018 15 commits
-
-
Sergei Golubchik authored
-
Igor Babaev authored
is not supported Allowed to use recursive references in derived tables. As a result usage of recursive references in operands of INTERSECT / EXCEPT is now supported.
-
Sergei Golubchik authored
fix the compilation error. no support for plugins yet.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Jan Lindström authored
-
Sergey Vojtovich authored
ReadView::is_open() was supposed to be called by view owner thread exclusively. Use ReadView::get_state() instead.
-
Sergei Golubchik authored
-
Marko Mäkelä authored
At innodb_force_recovery=5 or bigger, trx_lists_init_at_db_start() no longer initialises the purge_sys. Adjust an assertion accordingly.
-
Sergei Golubchik authored
rocksdb and spider
-
Sergei Golubchik authored
-
Marko Mäkelä authored
There is only one purge_sys. Allocate it statically in order to avoid dereferencing a pointer whenever accessing it. Also, align some members to their own cache line in order to avoid false sharing. purge_sys_t::create(): The deferred constructor. purge_sys_t::close(): The early destructor. undo::Truncate::create(): The deferred constructor. Because purge_sys.undo_trunc is constructed before the start-up parameters are parsed, the normal constructor would copy a wrong value of srv_purge_rseg_truncate_frequency. TrxUndoRsegsIterator: Do not forward-declare an inline constructor, because the static construction of purge_sys.rseg_iter would not have access to it.
-
Marko Mäkelä authored
trx_purge(): Remove the parameter limit or batch_size, which is always passed as srv_purge_batch_size. trx_purge_attach_undo_recs(): Remove the parameters purge_sys, batch_size. Refer to srv_purge_batch_size. trx_purge_wait_for_workers_to_complete(): Remove the parameter purge_sys.
-
Daniel Black authored
Add innodb debug system variable, innodb_buffer_pool_load_pages_abort, to test the behaviour of innodb_buffer_pool_load_incomplete. (innodb_buufer_pool_dump_abort_loads.test)
-
Daniel Black authored
This status variable indicates that an innodb buffer pool load never completed and dumping at shutdown would result in an incomplete dump file. This status variable is set to 1 once a buffer pool loads. Upon a successful load this status variable returns to 0. With this status variable set, the system variable innodb_buffer_pool_dump_at_shutdown==1 will have no effect as dumping after an incomplete load will generate a less complete dump file than the current one. If a user aborts a buffer pool load by changing the system variable innodb_buffer_pool_load_abort=1 will cause the the status variable innodb_buffer_pool_load_incomplete to remain set to 1. A shutdown that occurs while innodb is loading the buffer pool will not save the buffer pool on shutdown. A user may indirectly set innodb_buffer_pool_load_incomplete to 0 by: * Forcing a load, by setting innodb_buffer_pool_load_now=ON, or * Forcing a dump, by setting innodb_buffer_pool_dump_now=ON This will enable the next dump on shutdown to complete. Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
-
- 21 Feb, 2018 9 commits
-
-
Marko Mäkelä authored
Before MDEV-12288 in MariaDB 10.3.1, InnoDB used to partition the persistent transaction undo log into insert_undo and update_undo. MDEV-12288 repurposes the update_undo as the single undo log. In order to support an upgrade from earlier MariaDB versions, the insert_undo is recovered in data structures, called old_insert. An assertion failure occurred in TrxUndoRsegsIterator::set_next() when an incomplete transaction was recovered with both insert_undo and update_undo log. This could be easily demonstrated by starting ./mysql-test-run --manual-gdb innodb.read_only_recovery in MariaDB 10.2, and after the first kill, start up the MariaDB 10.3 server with the same parameters. The problem is that MariaDB 10.3 would roll back the recovered transaction, and finally "commit" it twice (with all changes to data rolled back), both insert_undo and update_undo with the same commit end identifier (trx->no). Our fix is to introduce a "commit number" that comprises two components: (trx->no << 1 | !old_insert). In this way, the assertion in the purge subsystem can be relaxed so that only the trx->no component must match.
-
Daniel Black authored
Regression introducted in c2118a08 where LOCK_thd_data was moveed to LOCK_thd_kill
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
TrxUndoRsegs::append(): Remove. TrxUndoRsegsIterator::set_next(): Add a debug assertion that demonstrates that the merging of rollback segments never occurs. Since MDEV-12289 or earlier, MariaDB 10.2 will not make any temporary undo log accessible to the purge subsystem. (Also MySQL 5.7 would skip the purge of any undo log for temporary tables, but not before parsing and buffering those temporary undo log records.)
-
Marko Mäkelä authored
Construct directly from trx_rseg_t&. push_back(), size(): Remove.
-
Marko Mäkelä authored
Also, remove the field undo_rseg_space. Apparently its purpose was to avoid problems with temporary undo logs, which MySQL 5.7 unnecessarily adds to the purge system. (Temporary undo log records are not purged.) MariaDB 10.2 fixed this in MDEV-12289 or earlier.
-
Marko Mäkelä authored
purge_iter_t::operator<=(): Ordering comparison. This replaces trx_purge_check_limit() with the difference that we are not comparing undo_rseg_space. (In MariaDB, temporary undo logs do not enter the purge subsystem at all.) purge_sys_t::done: Remove. This was not used for anything. purge_sys_t::tail: Renamed from purge_sys_t::iter. purge_sys_t::head: Renamed from purge_sys_t::limit.
-
Marko Mäkelä authored
Merge pull request #364
-
Daniel Black authored
Regression introducted in c2118a08 where LOCK_thd_data was moveed to LOCK_thd_kill
-