- 29 Mar, 2018 7 commits
-
-
Monty authored
Main reason was to make it easier to print the above structures in a debugger. Additional benefits is that I was able to use same defines for both structures, which simplifes some code. Most of the code is just removing Alter_info:: and Alter_inplace_info:: from alter table flags. Following renames was done: HA_ALTER_FLAGS -> alter_table_operations CHANGE_CREATE_OPTION -> ALTER_CHANGE_CREATE_OPTION Alter_info::ADD_INDEX -> ALTER_ADD_INDEX DROP_INDEX -> ALTER_DROP_INDEX ADD_UNIQUE_INDEX -> ALTER_ADD_UNIQUE_INDEX DROP_UNIQUE_INDEx -> ALTER_DROP_UNIQUE_INDEX ADD_PK_INDEX -> ALTER_ADD_PK_INDEX DROP_PK_INDEX -> ALTER_DROP_PK_INDEX Alter_info:ALTER_ADD_COLUMN -> ALTER_PARSE_ADD_COLUMN Alter_info:ALTER_DROP_COLUMN -> ALTER_PARSE_DROP_COLUMN Alter_inplace_info::ADD_INDEX -> ALTER_ADD_NON_UNIQUE_NON_PRIM_INDEX Alter_inplace_info::DROP_INDEX -> ALTER_DROP_NON_UNIQUE_NON_PRIM_INDEX Other things: - Added typedef alter_table_operatons for alter table flags - DROP CHECK CONSTRAINT can now be done online - Added checks for Aria tables in alter_table_online.test - alter_table_flags now takes an ulonglong as argument. - Don't support online operations if checksum option is used. - sql_lex.cc doesn't add ALTER_ADD_INDEX if index is not created
-
Monty authored
-
Monty authored
fill_alter_table() always thought that index was changed because of of a wrong check of block_size. Some engines had code to correct this that should not be needed, Aria didn't and because of this some online operations didn't work. This code fixes the comparision of block_size to only compare if it's set.
-
halfspawn authored
-
Sergey Vojtovich authored
Currently trx_sys.mutex protects only trx_sys.mysql_trx_list and trx_sys.m_views, which are not accessed by lock0lock debug routines. Thus there's no need to bother trx_sys.mutex here. Removed trx_assert_started(): this assertion is fully covered by check_trx_state().
-
Sergey Vojtovich authored
recv_sys_t::mutex and rw_trx_hash_elementi_t::mutex were acquired in reverse (to recorded) order. Fixed by releasing recv_sys_t::mutex, before iterating rw_trx_hash. Statistics gathering doesn't really need recv_sys_t::mutex protection, since it is always done in one thread (trx_roll_crash_recv_trx) and thus it can't go wrong.
-
Alexander Barkov authored
-
- 28 Mar, 2018 4 commits
-
-
Marko Mäkelä authored
This is fixup after commit 8026cd62. We must not silently allow a lock wait to occur during InnoDB data dictionary transactions. The dict_operation_lock is supposed to prevent lock waits, and we want to be aware of any errors.
-
Marko Mäkelä authored
-
Sergei Golubchik authored
-
Alexander Barkov authored
Implementing the task according to the description. Additionally, implementing Item_func_date_format::check_arguments().
-
- 27 Mar, 2018 5 commits
-
-
Daniel Bartholomew authored
-
Alexander Barkov authored
Main changes: - Changing the constructor to accept a CHARSET_INFO pointer, instead of an Item pointer - Updating the bison grammar accordingly Additional cleanups: - Simplifying Item_func_set_collation::eq() by reusing Item_func::eq() - Removing unused binary_keyword
-
Alexander Barkov authored
-
Thirunarayanan Balathandayuthapani authored
Problem: ======= During validation of missing tablespace, missing tablespace id is being compared with hash table of redo logs (recv_sys->addr_hash). But if the hash table ran out of memory then there is a possibility that it will not contain the redo logs of all tablespace. In that case, Server will load the InnoDB even though there is a missing tablespace. Solution: ======== If the recv_sys->addr_hash hash table ran out of memory then InnoDB needs to scan the remaining redo log again to validate the missing tablespace.
-
Alexander Barkov authored
The problem resided in this branch of the "option_value_no_option_type" rule: | '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default Summary: 1. internal_variable_name initialized tmp.var to trg_new_row_fake_var (0x01). 2. The condition "if (tmp.var == NULL)" did not check the special case with trg_new_row_fake_var, so Lex->set_system_variable(&tmp, $3, $6) was called with tmp.var pointing to trg_new_row_fake_var, which created a sys_var instance pointing to 0x01 instead of a real system variable. 3. Later, at the trigger invocation time, this method was called: sys_var::do_deprecated_warning (this=0x1, thd=0x7ffe6c000a98) Notice, "this" is equal to trg_new_row_fake_var (0x01) Solution: The old implementation with separate rules internal_variable_name (in sql_yacc.yy and sql_yacc_ora.yy) and internal_variable_name_directly_assignable (in sql_yacc_ora.yy only) was too complex and hard to follow. Rewriting the code in a more straightforward way. 1. Changing LEX::set_system_variable() from: bool set_system_variable(struct sys_var_with_base *, enum_var_type, Item *); to: bool set_system_variable(enum_var_type, sys_var *, const LEX_CSTRING *, Item *); 2. Adding new methods in LEX, which operate with variable names: bool set_trigger_field(const LEX_CSTRING *, const LEX_CSTRING *, Item *); bool set_system_variable(enum_var_type var_type, const LEX_CSTRING *name, Item *val); bool set_system_variable(THD *thd, enum_var_type var_type, const LEX_CSTRING *name1, const LEX_CSTRING *name2, Item *val); bool set_default_system_variable(enum_var_type var_type, const LEX_CSTRING *name, Item *val); bool set_variable(const LEX_CSTRING *name, Item *item); 3. Changing the grammar to call the new methods directly in option_value_no_option_type, Removing rules internal_variable_name and internal_variable_name_directly_assignable. 4. Removing "struct sys_var_with_base" and trg_new_row_fake_var. Good side effect: - The code in /sql reduced from 314 to 183 lines. - MDEV-15615 Unexpected syntax error instead of "Unknown system variable" ... was also fixed automatically
-
- 26 Mar, 2018 5 commits
-
-
Sergei Petrunia authored
When the plugin is unloaded, walk the s_trx_list and delete the left over Rdb_transaction objects. It is responsibility of the SQL layer to make sure that the storage engine has no open tables when the plugin is being unloaded.
-
Elena Stepanova authored
-
Thirunarayanan Balathandayuthapani authored
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
-
- 25 Mar, 2018 1 commit
-
-
Sergei Golubchik authored
-
- 24 Mar, 2018 6 commits
-
-
Alexey Botchkov authored
Scientific notation handling fixed. Conflicts: mysql-test/r/func_json.result mysql-test/t/func_json.test
-
Alexey Botchkov authored
Scientific notation handling fixed.
-
Sergei Golubchik authored
and remove redundant have_innodb.inc, it's included in galera_cluster.inc anyway.
-
Sergei Golubchik authored
and remove redundant have_innodb.inc, it's included in galera_cluster.inc anyway.
-
Sergei Golubchik authored
extra/mariabackup/ds_buffer.c:145:9: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]
-
Vladislav Vaintroub authored
-
- 23 Mar, 2018 10 commits
-
-
Alexey Botchkov authored
information can be obtained. plugin only enabled for Linux, as it fails building on BSD/MacOSX. disks.test fixed.
-
Alexey Botchkov authored
information can be obtained. disks.test moved to plugin's directory.
-
Vladislav Vaintroub authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Vladislav Vaintroub authored
Changed "local" datasink logic to detect page compressed Innodb tables. Whenever such table is detected, holes in the copied files are created by skipping over binary zeros at the end of each compressed page.
-
Sergey Vojtovich authored
time and don't let server shut down Queries from I_S in "Filling schema table" state didn't check killed flag. For large tables this phase may take a while to complete. Fixed by adding thd->killed flag check for each processed row.
-
Sergei Golubchik authored
-
Thirunarayanan Balathandayuthapani authored
-
Sergei Golubchik authored
MDEV-15570 Assertion `Item_cache_temporal::field_type() != MYSQL_TYPE_TIME' failed in Item_cache_temporal::val_datetime_packed remove an assert. TIME value can be used (and cached) in a datetime context
-
- 22 Mar, 2018 2 commits
-
-
Sergei Golubchik authored
galera SST tests have a debug part, but we don't want to limit them to fulltest2 builder. So, add support for test files that have a debug part: * add maybe_debug.inc and maybe_debug.combinations * 'debug' combination is run when debug is available * 'release' combination is run otherwise * test wraps debug parts in if($with_debug) { ... } * and creates ,debug.rdiff for debug results
-
Sergei Golubchik authored
create galera.galera_sst_mariabackup
-