- 07 Nov, 2019 1 commit
-
-
Oleksandr Byelkin authored
-
- 05 Nov, 2019 3 commits
-
-
Alexander Barkov authored
MDEV-20985 Add LEX methods stmt_drop_{function|procedure}() and stmt_alter_{function|procedure}_start() Adding a few helper LEX methods, to unify sql_yacc.yy and sql_yacc_ora.yy easier
-
Alexander Barkov authored
This is a logically better position. Also, this makes the code in sql_yacc.yy and sql_yacc_ora.yy look more similar.
-
Alexander Barkov authored
-
- 04 Nov, 2019 5 commits
-
-
Marko Mäkelä authored
Something was wrong with the removal of pointer indirection, because on 32-bit Windows we got crash recovery failures. Curiously, WITH_ASAN of a 32-bit debug build did not notice anything. This reverts a part of commit b7fc2c89. We have a 2MiB recv_sys.buf for the initial buffering. The minimum size of log_sys.buf would be 16MiB, and that buffer should be practically unused during recovery. If the buffer pool size is measured in gigabytes, it would indeed make sense to use the buffer pool for the recovered log records, perhaps after we have run out of log_sys.buf. FIXME: allow the entire buf_block_t::frame to be used for buffered log records, and remove MEM_HEAP_FOR_RECV_SYS. For example, use buf_page_t::list or buf_page_t::LRU for keeping track of memory that was allocated for recovery? Most members of buf_block_t (except buf_block_t::frame) are unused when block->page.state == BUF_BLOCK_MEMORY.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Follow-up to commit 8965ae27: always initialize found_group.
-
Marko Mäkelä authored
recv_t, recv_t::data_t: Define constructors that copy the log records Ideally, we should remove recv_sys.buf, RECV_DATA_BLOCK_SIZE, and recv_sys_justify_left_parsing_buf(), and let the recv_sys.pages point directly to a buffer of parsed redo log records. The RECV_PARSING_BUF_SIZE (size of recv_sys.buf) is only 2MiB, while the minimum innodb_log_buffer_size (size of log_sys.buf) is 16MiB, and log_sys.buf is unused during redo log apply!
-
Marko Mäkelä authored
Except for fil_name_process(), which invokes os_normalize_path(), the redo log record parser will not modify the redo log records. Add const qualifiers accordingly.
-
- 03 Nov, 2019 3 commits
-
-
Sergei Golubchik authored
followup to 00c3a288
-
Elena Stepanova authored
-
Sergei Golubchik authored
storage/innobase/log/log0recv.cc|1760 col 35 error| 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct recv_t' with no trivial copy-assignment [-Werror=class-memaccess]
-
- 02 Nov, 2019 3 commits
-
-
Oleksandr Byelkin authored
This reverts commit dacd1794.
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 01 Nov, 2019 11 commits
-
-
Oleksandr Byelkin authored
-
Sergei Petrunia authored
- Add SLEEP() calls to the testcase to make it really test that the time doesn't change. - Always use .frm file creation time as a creation timestamp (attempts to re-use older create_time when the table DDL changes are not good because then create_time will change after server restart) - Use the same method names as the upstream patch does - Use std::atomic for m_update_time
-
Marko Mäkelä authored
GCC 4.7 only knows about std::map::insert(), not emplace(). Also, reformat the function in the common style.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
wsrep_init_provider_status_variables(): Always set wsrep_inited to ensure that the memory will be freed. The initial patch was provided by Julius Goryavsky.
-
Marko Mäkelä authored
page_recv_t: Replaces recv_sys_t::recs_t. page_recv_t::state is not private, even though some accessors exist. page_recv_t::log: A singly-linked list of log_rec_t* with STL decoration and the custom operations trim() and append(). The list members are private. recv_t::data_t: Replaces recv_data_t. recv_t::data: Remove the pointer indirection for the first log chunk, and copy the first chunk directly after the record. Adjust the definition of RECV_DATA_BLOCK_SIZE accordingly.
-
Marko Mäkelä authored
In the collections of Standard Template Library, empty() is a predicate and clear() empties a collection. Let us rename recv_sys.empty() to recv_sys.clear() to avoid confusion.
-
Monty authored
-
Sergei Petrunia authored
Variant#5 of the patch: - take creation date from the .frm file, like InnoDB does - Update_time is in-memory only (like in InnoDB).
-
Thirunarayanan Balathandayuthapani authored
innobase_drop_foreign_try(): Don't evict and reload the dict_foreign_t during instant ALTER TABLE if the FOREIGN KEY constraint is being dropped. The MDEV-19630 fix (commit 07b1a26c) was incomplete, because it did not cover a case where the FOREIGN KEY constraint is being dropped.
-
Alexey Botchkov authored
MDEV-18244 Server crashes in ha_innobase::update_thd / ... / ha_partition::update_next_auto_inc_val. Partition table with the AUTO_INCREMENT column we ahve to check if the max value is properly loaded. So we need to open all tables in INSERT PARTITION statement if necessary. Also we need to check if some tables are pruned away and not count the max autoincrement in this case.
-
- 31 Oct, 2019 9 commits
-
-
Sergei Petrunia authored
Variant#5 of the patch: - take creation date from the .frm file, like InnoDB does - Update_time is in-memory only (like in InnoDB).
-
Sergei Petrunia authored
Temporarily revert the patch
-
Sergei Golubchik authored
simplify type naming (less boilerplate code). don't force a plugin to specify the name twice.
-
Sergei Golubchik authored
typos, comments
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Roman Nozdrin authored
doubles in scientific notation with a big integer part.
-
Marko Mäkelä authored
In commit d1e6b0bc some code was supposed to be modified, but instead it got duplicated. Remove the duplicated copy.
-
Oleksandr Byelkin authored
-
- 30 Oct, 2019 5 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
* use compile_time_assert instead of DBUG_ASSERT * don't use thd->clear_error(), because * the error was already consumed by the error handler, so there is nothing to clear * it's dangerous to clear errors indiscriminately, if the error came from outside of read_statistics_for_tables() it must not be cleared
-
Sergei Golubchik authored
mysql_insert() first opens all affected tables (which implicitly starts a transaction in InnoDB), then stat tables. A failure to open a stat table caused open_tables() to abort the current stmt transaction (trans_rollback_stmt()). So, from the server point of view the following ha_write_row()-s happened outside of a transactions, and the server didn't bother to commit them. The server has a mechanism to prevent a transaction being unexpectedly committed or rolled back in the middle of a statement - if an operation takes place _in a sub-statement_ it cannot change the transaction state. Operations on stat tables are exactly that - they are not allowed to change a transaction state. Put them in a sub-statement to make sure they don't.
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-