- 30 Jun, 2018 7 commits
-
-
Elena Stepanova authored
-
Sergei Golubchik authored
-
Aleksey Midenkov authored
* ignore CHECK constraint for historical rows; * FOREIGN KEY test case. TODO: MDEV-16301 IB: use real table name for error messages on ALTER Closes tempesta-tech/mariadb#491 Closes #748
-
Eugene Kosov authored
MDEV-15947 ASAN heap-use-after-free in Item_ident::print or in my_strcasecmp_utf8 or unexpected ER_BAD_FIELD_ERROR upon call of stored procedure reading from versioned table Closes #728
-
Eugene Kosov authored
MDEV-15645 Assertion `table->insert_values' failed in write_record upon REPLACE into a view with underlying versioned table Right temporary storage for system versioning operations is table->record[2], not table->insert_values Closes #712
-
Sergei Golubchik authored
RBR not versioned -> versioned do it for all write_row events, not only for WRITE_ROWS_EVENT_V1
-
Sergei Golubchik authored
-
- 28 Jun, 2018 12 commits
-
-
Sergei Golubchik authored
-
Vladislav Vaintroub authored
Use GetLastError() instead.
-
Sergei Golubchik authored
table->in_use is not always set and a KILL signal can arrive anytime.
-
Andrei Elkin authored
MDEV-7257 made a dump thread to read from binlog concurrently with writers as long as the read bytes are below a water-mark (MYSQL_BIN_LOG::binlog_end_pos). However it appeared to be possible a dump thread reader reach out for bytes past the water mark through a feature of IO_CACHE that fills in the internal buffer and while doing so it could read what the reader is not supposed to see (the bytes above MYSQL_BIN_LOG::binlog_end_pos). The issue is fixed with constraining the IO_CACHE buffer fill to respect the watermark. An added unit test proves reading from file is bound to an external parameter passed to {IO_CACHE::end_of_file} cache member.
-
Sergei Golubchik authored
-
Alexander Barkov authored
Problem: push_handler() created sp_handler_entry instances on THD::main_mem_root, which is freed only after the SP instructions execution. So in case of a CONTINUE HANDLER inside a loop (e.g. WHILE) this approach leaked thread memory on every loop iteration. Changes: - Removing sp_handler_entry declaration, it's not really needed. - Fixing the data type of sp_rcontext::m_handlers from Dynamic_array<sp_handler_entry*> to Dynamic_array<sp_instr_hpush_jump*> - Fixing sp_rcontext::push_handler() to push the pointer to an sp_instr_hpush_jump instance to the handler stack. This instance contains everything we need. There is no a need to allocate anything else.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
rnd_pos_by_record calls ha_rnd_pos, which does the counting
-
Sergei Golubchik authored
-
Andrei Elkin authored
MDEV-7257 made a dump thread to read from binlog concurrently with writers as long as the read bytes are below a water-mark (MYSQL_BIN_LOG::binlog_end_pos). However it appeared to be possible a dump thread reader reach out for bytes past the water mark through a feature of IO_CACHE that fills in the internal buffer and while doing so it could read what the reader is not supposed to see (the bytes above MYSQL_BIN_LOG::binlog_end_pos). The issue is fixed with constraining the IO_CACHE buffer fill to respect the watermark. An added unit test proves reading from file is bound to an external parameter passed to {IO_CACHE::end_of_file} cache member.
-
Sergei Golubchik authored
Different fix, just use NULL, not no_db,
-
Igor Babaev authored
The previous correction of the patch for mdev-16473 did not work correctly for the databases whose names started with '*'. Added a test case with a database named "*".
-
- 27 Jun, 2018 5 commits
-
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Sergey Vojtovich authored
Only close stdin if it was open initinally. Otherwise we may close file descriptor which is reused for different puprose (specifically for binlog index file in case of this bug).
-
Jan Lindström authored
This is a typical systemd response where it tries to shutdown the joiner (due to "timeout") before the joiner manages to complete SST. wsrep_sst_wait wsrep_SE_init_wait While waiting the operation to finish use mysql_cond_timedwait instead of mysql_cond_wait and if operation is not finished extend systemd timeout (if needed).
-
Alexander Barkov authored
Problem: push_cursor() created sp_cursor instances on THD::main_mem_root, which is freed only after the SP instructions loop. Changes: - Moving sp_cursor declaration from sp_rcontext.h to sql_class.h - Deriving sp_instr_cpush from sp_cursor. So now sp_cursor is created only once (at the SP parse time) and then reused on all loop iterations - Adding a new method reset() into sp_cursor (and its parent classes) to reset an sp_cursor instance before reuse. - Moving former sp_cursor members m_fetch_count, m_row_count, m_found into a separate class sp_cursor_statistics. This helps to reuse the code in sp_cursor constructors, and in sp_cursor::reset() - Adding a helper method sp_rcontext::pop_cursor(). - Adding "THD*" parameter to so_rcontext::pop_cursors() and pop_all_cursors() - Removing "new" and "delete" from sp_rcontext::push_cursor() and sp_rconext::pop_cursor(). - Fixing sp_cursor not to derive from Sql_alloc, as it's now allocated only as a part of sp_instr_cpush (and not allocated separately). - Moving lex_keeper->disable_query_cache() from sp_cursor::sp_cursor() to sp_instr_cpush::execute(). - Adding tests
-
- 26 Jun, 2018 11 commits
-
-
Igor Babaev authored
-
Marko Mäkelä authored
-
Daniel Bartholomew authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Alexander Barkov authored
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
NULL values when there is no DEFAULT - Fixed the test failure, assigned number of rows read to new table.
-
Marko Mäkelä authored
dict0dict.cc buf_LRU_drop_page_hash_for_tablespace(): Return whether any adaptive hash index entries existed. If yes, the caller should keep retrying to drop the adaptive hash index. row_import_for_mysql(), row_truncate_table_for_mysql(), row_drop_table_for_mysql(): Ensure that the adaptive hash index was entirely dropped for the table.
-
Eugene Kosov authored
MDEV-15953 Alter InnoDB Partitioned Table Moves Files (which were originally not in the datadir) to the datadir ha_innobase::prepare_inplace_alter_table: preserve DATA DICTIONARY for table
-
Igor Babaev authored
Before this patch if no default database was set the server threw an error for any table name reference that was not fully qualified by database name. In particular it happened for table names referenced CTE tables. This was incorrect. The error message was thrown at the parser stage when the names referencing different tables were not resolved yet. Now if no default database is set and a with clause is used in the processed statement any table reference is just supplied with a dummy database name "*none*" at the parser stage. Later after a call of check_dependencies_in_with_clauses() when the names for CTE tables can be resolved error messages are thrown only for those names that refer to non-CTE tables. This is done in open_and_process_table().
-
- 25 Jun, 2018 5 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
register changes of last_gtid
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Alexander Barkov authored
MDEV-10581 sql_mode=ORACLE: Explicit cursor FOR LOOP MDEV-12098 sql_mode=ORACLE: Implicit cursor FOR loop Cleanup changes: - Removing sp_lex_cursor::m_cursor_name - Adding sp_instr_cursor_copy_struct::m_cursor (the cursor global index) - Fixing sp_instr_cursor_copy_struct::print() to access to the cursor name using m_ctx and m_cursor (like other cursor related instructions do) instead of m_cursor_name. This change is needed to unify sp_assignment_lex and sp_cursor_lex later, to fix this problem easier: MDEV-16558 Parenthesized expression does not work as a lower FOR loop bound
-