- 06 Jun, 2020 4 commits
-
-
Alexander Barkov authored
Bit operators (~ ^ | & << >>) and the function BIT_COUNT() always called val_int() for their arguments. It worked correctly only for INT type arguments. In case of DECIMAL and DOUBLE arguments it did not work well: the argument values were truncated to the maximum SIGNED BIGINT value of 9223372036854775807. Fixing the code as follows: - If the argument if of an integer data type, it works using val_int() as before. - If the argument if of some other data type, it gets the argument value using val_decimal(), to avoid truncation, and then converts the result to ulonglong. Using Item_handled_func to switch between the two approaches easier. As an additional advantage, with Item_handled_func it will be easier to implement overloading in the future, so data type plugings will be able to define their own behavioir of bit operators and BIT_COUNT(). Moving the code from the former val_int() implementations as methods to Longlong_null, to avoid code duplication in the INT and DECIMAL branches.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
fil_aio_callback(): Remove a bogus assertion that was added in commit b1ab211d (MDEV-15053). We will have !bpage for any write by buf_flush_freed_page().
-
Marko Mäkelä authored
buf_page_init_for_read(): Initialize the output parameter of buf_buddy_alloc().
-
- 05 Jun, 2020 36 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Vladislav Vaintroub authored
Polling for srv_purge_should_exit() once every millisecond is enough.
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
- commit ea37b144 (MDEV-16678) caused a regression. when purge thread tries to open the table for virtual column computation, there is no need to acquire MDL for the table. Because purge thread already hold MDL for the table
-
Marko Mäkelä authored
The background drop table queue in InnoDB is a work-around for cases where the SQL layer is requesting DDL on tables on which transactional locks exist. One such case are XA transactions. Our test case exploits the fact that the recovery of XA PREPARE transactions will only resurrect InnoDB table locks, but not MDL that should block any concurrent DDL. srv_shutdown_t: Introduce the srv_shutdown_state=SRV_SHUTDOWN_INITIATED for the initial part of shutdown, to wait for the background drop table queue to be emptied. srv_shutdown_bg_undo_sources(): Assign srv_shutdown_state=SRV_SHUTDOWN_INITIATED before waiting for the background drop table queue to be emptied. row_drop_tables_for_mysql_in_background(): On slow shutdown, if no active transactions exist (excluding ones that are in XA PREPARE state), skip any tables on which locks exist. row_drop_table_for_mysql(): Do not unnecessarily attempt to drop InnoDB persistent statistics for tables that have already been added to the background drop table queue. row_mysql_close(): Relax an assertion, and free all memory even if innodb_force_recovery=2 would prevent the background drop table queue from being emptied.
-
Marko Mäkelä authored
This race condition was introduced by commit ad6171b9 (MDEV-22456). In the observed case, two threads were executing btr_search_drop_page_hash_index() on the same block, to free a stale entry that was attached to a dropped index. Both threads were holding an S latch on the block. We must prevent the double-free of block->index by holding block->lock in exclusive mode. btr_search_guess_on_hash(): Do not invoke btr_search_drop_page_hash_index(block) to get rid of stale entries, because we are not necessarily holding an exclusive block->lock here. buf_defer_drop_ahi(): New function, to safely drop stale entries in buf_page_mtr_lock(). We will skip the call to btr_search_drop_page_hash_index(block) when only requesting bufferfixing (no page latch), because in that case, we should not be accessing the adaptive hash index, and we might get a deadlock if we acquired the page latch.
-
Marko Mäkelä authored
btr_search_sys_free(): Free btr_search_sys->hash_tables. The leak was introduced in commit ad2bf112.
-
Vladislav Vaintroub authored
Allow targets for building "noinstall" zip, and debuginfo zip.
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
It looks buffer over flow of spider_unique_id_buf. It requires to analyze on reproducing environment, but I extend this first.
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
Fix issue caused by using spider_bgs_mode = 2 when Spider use limit_mode = 1 internally for data nodes.
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
Conflicts: storage/spider/spd_conn.cc
-
Kentoku SHIBA authored
Add looping check Conflicts: sql/table.h
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
Change the following function for batch call instead of each partition - store_lock - external_lock - start_stmt - extra - cond_push - info_push - top_table
-
Nikita Malyavin authored
Add `append_system_key_parts` call inside `fast_alter_partition_table` during new partition creation.
-
Nikita Malyavin authored
cmp_max is used instead of cmp to compare key_parts
-
Nikita Malyavin authored
Insert worked incorrect as well. RocksDB used table->record[0] internally to store some intermediate results for key conversion, during index searching among other operations. So table->record[0] is spoiled during ha_rnd_index_map in ha_check_overlaps, so in turn the broken record data was inserted. The fix is to store RocksDB intermediate result in its own buffer instead of table->record[0]. `rocksdb` MTR suite is is checked and runs fine. No need for additional tests. The existing overlaps.test covers the case completely. However, I am not going to add anything related to rocksdb to suite, to keep it away from additional dependencies. To run tests with RocksDB engine, one can add following to engines.combinations: [rocksdb] plugin-load=$HA_ROCKSDB_SO default-storage-engine=rocksdb rocksdb
-
Nikita Malyavin authored
-