- 04 Apr, 2019 2 commits
-
-
Igor Babaev authored
A syntax error was reported for any INSERT statement with explicit partition selection it if i used a column list. Fixed by saving the parsing place before parsing the clause for explicit partition selection and restoring it when the clause has been parsed.
-
Galina Shalygina authored
This bug is caused by pushdown from HAVING into WHERE. It appears because condition that is pushed wasn't fixed. It is also discovered that condition pushdown from HAVING into WHERE is done wrong. There is no need to build clones for some conditions that can be pushed. They can be simply moved from HAVING into WHERE without cloning. build_pushable_cond_for_having_pushdown(), remove_pushed_top_conjuncts_for_having() methods are changed. It is found that there is no transformation made for fields of pushed condition. field_transformer_for_having_pushdown transformer is added. New tests are added. Some comments are changed.
-
- 03 Apr, 2019 20 commits
-
-
Eugene Kosov authored
Just rename index in data dictionary and in InnoDB cache when it's possible. Introduce ALTER_INDEX_RENAME for that purpose so that engines can optimize such operation. Unused code between macro MYSQL_RENAME_INDEX was removed. compare_keys_but_name(): compare index definitions except for index names Alter_inplace_info::rename_keys: ha_innobase_inplace_ctx::rename_keys: vector of rename indexes fill_alter_inplace_info():: fills Alter_inplace_info::rename_keys
-
Sergey Vojtovich authored
Moved rea_create_table() to the sole caller. Also ha_create_partitioning_metadata(CHF_CREATE_FLAG) does cleanup on error now. Part of MDEV-17805 - Remove InnoDB cache for temporary tables.
-
Sergey Vojtovich authored
Do not register intermediate tables created by inplace ALTER TABLE in THD::temporary_tables. Regular ALTER TABLE doesn't create .frm for temporary and discoverable tables anymore. For inplace ALTER TABLE moved .frm creation to create_table_for_inplace_alter(). Removed open_in_engine argument of create_and_open_tmp_table() and open_temporary_table(): it became unused after this patch. Part of MDEV-17805 - Remove InnoDB cache for temporary tables.
-
Sergey Vojtovich authored
This check was introduced in 602a2225 and then became redundant in ad1553e, where we attempt to open a table even for non-copy algorithms. Added missing test case from 602a2225. Part of MDEV-17805 - Remove InnoDB cache for temporary tables.
-
Sergey Vojtovich authored
It is used only with persistent tables, so remove path argument, which was introduced in 9594107f and became useless after ce6a63ec. Part of MDEV-17805 - Remove InnoDB cache for temporary tables.
-
Sergey Vojtovich authored
CREATE TEMPORARY TABLE locks SE plugin 6 times. 5 of these locks are released by the end of the statement. And only 1 acquired by init_from_binary_frm_image() / plugin_lock() remains. The lock removed in this patch was clearly redundant. Part of MDEV-17805 - Remove InnoDB cache for temporary tables.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In MariaDB, InnoDB tables will always contain DATA_N_SYS_COLS = 3 columns, 2 or 3 of which are present in the clustered index. We remove the predicate that was added in MySQL 5.7 as part of WL#7682.
-
Marko Mäkelä authored
Provide a dummy definition of WSREP_NNULL. This was broken in commit b896f60a.
-
Marko Mäkelä authored
-
Sachin authored
MDEV-18820 Assertion `lock_table_has(trx, index->table, LOCK_IX)' failed in lock_rec_insert_check_and_lock upon INSERT into table with blob key Don't Ignore Any error during index lookup, And throw duplicate key error only if error is HA_ERR_FOUND_DUPP_KEY
-
Marko Mäkelä authored
InnoDB and XtraDB had redundant assertions for checking that function parameters that were declared as nonnull were not NULL.
-
Jan Lindström authored
Test cleanup and fix.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 02 Apr, 2019 18 commits
-
-
Varun Gupta authored
MDEV-18942: Json_writer::add_bool: Conditional jump or move depends on uninitialised value upon fulltext search under optimizer trace For keyuse of fulltext set the value for null_rejecting to FALSE as we don't add NOT NULL keys for fulltext keyuses
-
Varun Gupta authored
MDEV-18962: ASAN heap-buffer-overflow in Single_line_formatting_helper::on_add_str with optimizer trace Fixed a typo
-
Sergei Golubchik authored
it was supposed to be `*(p-1)` not `*p-1` (the crash happens if `*p==0`)
-
Sergei Golubchik authored
in particular, don't search for libjemalloc.a, which is only needed for tokudb's ftcxx tests, when the tests aren't going to be built.
-
Sergei Golubchik authored
`zypper install krb5-devel` installs executables outside of $PATH. It also installs /etc/profile.d/krb5.sh that is sourced by a new shell to add the new location to the $PATH. But this doesn't affect the current shell. Now decent Linux distros remind the user to run `. /etc/profile` to reload paths in such a case. SUSE doesn't and for a good reason - it doesn't work there. Because SUSE sets PROFILEREAD=true in the environment and /etc/profile does not do anything. By this point, one should not really expect `unset PROFILEREAD` to help, and it does not - PROFILEREAD is readonly, and cannot be unset. Apparently SUSE really *really* wants you to re-login between installing MariaDB build dependencies and actually running the rpmbuild. Which we cannot do it buildbot. And it would look very user-un-friendly in the Build Instructions section of the manual. So, we work around it - by adding SUSE krb5 path to the search list. THIS IS SUSEEEEEE!!!
-
Sergei Golubchik authored
Filter out most common file types from automatic dependency collection. This makes `make package` in centos73 VM three times faster
-
Daniel Bartholomew authored
-
Marko Mäkelä authored
MariaDB does support InnoDB tables with no stored columns. (They are necessarily empty.)
-
Alexander Barkov authored
-
Jan Lindström authored
after commit b5615eff
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
On Microsoft Windows, InnoDB writes the path separator \ to the redo log file, while on all other platforms, / is being used. fil_name_parse(): Normalize the parsed path separators to the native format. This allows backups or data sets to be portable between Windows and other systems.
-
Nikita Malyavin authored
Closes #1225
-
Nikita Malyavin authored
MDEV-18921 Server crashes in bitmap_bits_set or bitmap_is_set upon UPDATE IGNORE .. FOR PORTION with binary logging The fix is same as for MDEV-18859: initialize table->rpl_write_set in FOR PORTION OF case.
-
Nikita Malyavin authored
MDEV-18859 Server crashes in bitmap_bits_set / pack_row / THD::binlog_write_row upon DELETE .. FOR PORTION with binary logging rpl_write_set is initialized in TABLE::mark_columns_per_binlog_row_image. Since we just call use_all_columns for PORTION OF case, no need in column marking logic here. Instead, initialize table->rpl_write_set in place.
-
Nikita Malyavin authored
The main problem was lack of proper QueryArena handling in `period_setup_conds`. Since mysql_prepare_update/mysql_prepare_delete are called during `PREPARE` statement, period conditions, should be allocated on statement query arena. Another problem is incorrect statement state handling in period_setup_conds, which led to unexpected mysql_update termination. * mysql_update: move period_setup_conds() to mysql_prepare_update to store conditions in statement's mem_root * mtr: add period suite to default list, since --ps-protocol is now fixed Fixes bugs: MDEV-18853 Assertion `0' failed in Protocol::end_statement upon DELETE .. FOR PORTION via prepared statement MDEV-18852 Server crashes in reinit_stmt_before_use upon UPDATE .. FOR PORTION via prepared statement
-