- 05 Jun, 2018 3 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
The problem described in the bug report happened because the code did not test check_cols(1) after fix_fields() in a few places. Additionally, fix_fields() could be called multiple times for SP variables, because they are all fixed at a early stage in append_for_log(). Solution: 1. Adding a few helper methods - fix_fields_if_needed() - fix_fields_if_needed_for_scalar() - fix_fields_if_needed_for_bool() - fix_fields_if_needed_for_order_by() and using it in many cases instead of fix_fields() where the "fixed" status is not definitely known to be "false". 2. Adding DBUG_ASSERT(!fixed) into Item_splocal*::fix_fields() to catch double execution. 3. Adding tests. As a good side effect, the patch removes a lot of duplicate code (~60 lines): if (!item->fixed && item->fix_fields(..) && item->check_cols(1)) return true;
-
- 04 Jun, 2018 12 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
After a failed ADD INDEX, dict_index_remove_from_cache_low() could iterate the index fields and dereference a freed virtual column object when trying to remove the index from the v_indexes of the virtual column. This regression was caused by a merge of MDEV-16119 InnoDB lock->index refers to a freed object. ha_innobase_inplace_ctx::clear_added_indexes(): Detach the indexes of uncommitted indexes from virtual columns, so that the iteration in dict_index_remove_from_cache_low() can be avoided. ha_innobase::prepare_inplace_alter_table(): Ignore uncommitted corrupted indexes when rejecting ALTER TABLE. (This minor bug was revealed by the extension of the test case.) dict_index_t::detach_columns(): Detach an index from virtual columns. Invoked by both dict_index_remove_from_cache_low() and ha_innobase_inplace_ctx::clear_added_indexes(). dict_col_t::detach(const dict_index_t& index): Detach an index from a column. dict_col_t::is_virtual(): Replaces dict_col_is_virtual(). dict_index_t::has_virtual(): Replaces dict_index_has_virtual().
-
Sergei Golubchik authored
restore its original semantics by allowing only columns in the write_set. Generated columns work around the assert by temporarily updating the write_set.
-
Sergei Golubchik authored
use a read_set instead. a bit in the read_set means "the field value is needed" (read or generated, whatever it takes).
-
Sergei Golubchik authored
don't read all columns from the source table, but only those that the will be inserted into the target table and cannot be generated by the target table. test case is in the following commits
-
Sergei Golubchik authored
don't set bits in the vcol_set of the wrong table
-
Daniel Black authored
O_TMPFILE creates a tempfile not attached to a filename. This is what we want for MY_TEMPORARY. We preserve a state O_TMPFILE_works, because kernel version or filesystem could cause failure. Closes #662
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Marko Mäkelä authored
log_crypt_101_read_block(): Mimic MariaDB 10.1, and use the first encryption key if the key for the checkpoint cannot be found. Redo log encryption key rotation was ultimately disabled in MDEV-9422 (MariaDB 10.1.13) due to design issues. So, from MariaDB 10.1.13 onwards only one log encryption key should matter. recv_log_format_0_recover(): Add the parameter 'bool crypt'. Indicate when the log cannot be decrypted for upgrade, instead of making a possibly false claim that the log requires crash recovery. init_crypt_key(): Remove extra space from a message.
-
Alexander Barkov authored
-
- 03 Jun, 2018 7 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
just before they're sent to the client. Because mysql->host value is known only after the connection is established, and it's needed for the "_sever_host" attribute. This fixes ASAN use-after-free warning in rpl tests followup for ee8dfc68
-
Eugene Kosov authored
MDEV-15991 Server crashes in setup_on_expr upon calling SP or function executing DML on versioned tables Do not try to set versioning conditions on every SP call. It may work incorrectly, but it's a general bug described in MDEV-774. This patch makes system versioning stuff consistent with other code and also fixes a use-after-free bug. Closes #756
-
Aleksey Midenkov authored
* Always-false vers_select_conds_t::from_query * Debug helpers Closes #684
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Igor Babaev authored
-
- 02 Jun, 2018 1 commit
-
-
Otto Kekäläinen authored
This partially reverts commit dc0a7660.
-
- 01 Jun, 2018 3 commits
-
-
Yuqi authored
Make mariadb crc32 lib platform independent It looks strange that someone can make use of 2 crc libraries (Power64 or AArch64) at the same time. The patch sets macros 'CRC32_LIBRARY' to make platform independence as an optional crc32 library. Change-Id: I68bbf73cafb6a12f7fb105ad57d117b114a8c4af Signed-off-by: Yuqi Gu <yuqi.gu@arm.com>
-
gvtek authored
Just spacing out the links on separate linkes, they were running together in a block of text and could be a little hard for some people to differentiate where one begins and the next ends. Seems silly, but just trying to help in the formatting a bit.
-
Igor Babaev authored
This bug caused crashes for queries with unreferenced non-recursive CTEs specified by unions.It happened because the function st_select_lex_unit::prepare() tried to use the value of the field 'derived' that could not be set for unferenced CTEs as there was no derived table associated with an unreferenced CTE.
-
- 31 May, 2018 2 commits
-
-
Marko Mäkelä authored
INNOBASE_DEFAULTS: Replace ALTER_ADD_COLUMN with the more appropriate ALTER_ADD_STORED_BASE_COLUMN. This clean-up causes no change of behaviour, because ALGORITHM=INPLACE would be refused for ALTER_ADD_STORED_GENERATED_COLUMN, and default values are not computed nor substituted for ALTER_ADD_VIRTUAL_COLUMN.
-
Alexander Barkov authored
Now the boolean data type is preserved in hybrid functions and MIN/MAX, so COALESCE(bool_expr,bool_expr) and MAX(bool_expr) are correctly detected by JSON_OBJECT() as being boolean rather than numeric expressions.
-
- 30 May, 2018 5 commits
-
-
Vladislav Vaintroub authored
Disable /permissive- flag, so MFC is found, and upgrade_wizard is built. MFC code is not standard C++, so it doesn not play well with /permissive-
-
Marko Mäkelä authored
commit 2dbeebdb accidentally changed ALTER_COLUMN_OPTION and ALTER_COLUMN_STORAGE_TYPE to be separate flags. InnoDB and Mroonga are only checking for the latter; the example storage engine is checking for the former only. The impact of this bug should be incorrect operation of Mroonga when the column options GROONGA_TYPE, FLAGS are changed. InnoDB does not define any column options, only table options, so the flag ALTER_COLUMN_OPTION should never have been set. Also, remove the unused flag ALTER_DROP_HISTORICAL.
-
Alexander Barkov authored
- Adding Type_handler::traditional_merge_field_type() - Removing real_type_to_type(), field_merge_type() - Making Type_handler_var_string to merge as VARCHAR - Additionally, fixing Field_string::print() to add the "/*old*/" comment into the data type for the old VARCHAR. This is similar to what MDEV-8267 earlier did for old DECIMAL. - Adding tests
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Fix type mismatches in the unit test mdev10259(). btr_search_info_get_ref_count(): Do not return early if !table->space. We can simply access table->space_id even after the tablespace has been discarded. btr_get_search_latch(): Relax a debug assertion to allow !index->table->space.
-
- 29 May, 2018 7 commits
-
-
Otto Kekäläinen authored
Include all the Makefiles that define variables that can be useful within debian/rules. This includes buildflags.mk as well. Use the standard variable names and don't define our own.
-
James Clarke authored
For details see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=852728
-
Adrian Bunk authored
For details see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=865737
-
Otto Kekäläinen authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-