1. 05 Jun, 2018 2 commits
    • Daniel Black's avatar
      mysqld_safe: use sh not bash · c10bed17
      Daniel Black authored
      c902d5a4 changed this to bash.
      This isn't approprate as mysqld_safe is used by FreeBSD where
      there is no bash by default.
      
      The original reason to use bash seems related to MDEV-3279 which
      was a dash bug fixed in 2009 - https://git.kernel.org/pub/scm/utils/dash/dash.git/commit/?id=3800d4934391b144fd261a7957aea72ced7d47ea
      
      Working around 9 year old fixed bugs shouldn't be done here.
      c10bed17
    • Alexander Barkov's avatar
      MDEV-16385 ROW SP variable is allowed in unexpected context · 106f0b57
      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;
      106f0b57
  2. 04 Jun, 2018 3 commits
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · b50685af
      Marko Mäkelä authored
      b50685af
    • Marko Mäkelä's avatar
      MDEV-16376 ASAN: heap-use-after-free in gcol.innodb_virtual_debug · 8dc70c86
      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().
      8dc70c86
    • Marko Mäkelä's avatar
      MDEV-13834: Upgrade failure from 10.1 innodb_encrypt_log · 5932a4e7
      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.
      5932a4e7
  3. 03 Jun, 2018 5 commits
  4. 02 Jun, 2018 1 commit
  5. 01 Jun, 2018 3 commits
    • Yuqi's avatar
      Make MariaDB CRC32-lib platform independence (#780) · ee5124d7
      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: default avatarYuqi Gu <yuqi.gu@arm.com>
      ee5124d7
    • gvtek's avatar
      Better Link Spacing · 40dc1a68
      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.
      40dc1a68
    • Igor Babaev's avatar
      MDEV-16353 Server crash on query with CTE · b2f86ebd
      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.
      b2f86ebd
  6. 31 May, 2018 1 commit
    • Marko Mäkelä's avatar
      Follow-up to MDEV-14168: Correct INNOBASE_DEFAULTS · db677cc6
      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.
      db677cc6
  7. 30 May, 2018 4 commits
    • Vladislav Vaintroub's avatar
      MDEV-16345 : No upgrade wizard in 10.3 in Windows packages. · 5a61fa98
      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-
      5a61fa98
    • Marko Mäkelä's avatar
      MDEV-16334 Incorrect ALTER TABLE for changing column option · 682e7b8f
      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.
      682e7b8f
    • Marko Mäkelä's avatar
      Remove an unnecessary #include · a31e99a8
      Marko Mäkelä authored
      a31e99a8
    • Marko Mäkelä's avatar
      After-merge fixes · c0f97710
      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.
      c0f97710
  8. 29 May, 2018 11 commits
  9. 28 May, 2018 9 commits
  10. 27 May, 2018 1 commit
    • Monty's avatar
      MDEV-16286 Killed CREATE SEQUENCE leaves sequence in unusable state · 58721c3e
      Monty authored
      Fixed by deleting the sequence if we where not able to initialize it
      
      I also noticed that we didn't always set the error message when
      check_killed(), which could lead to aborted queries without error
      beeing properly set. Fixed by default setting error message if
      check_error() noticed that killed had been called.
      This allowed me to remove a lot of calls to thd->send_kill_message().
      58721c3e