1. 04 Jun, 2018 2 commits
  2. 03 Jun, 2018 2 commits
  3. 01 Jun, 2018 1 commit
    • 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
  4. 31 May, 2018 2 commits
  5. 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
    • Alexander Barkov's avatar
      MDEV-16325 CREATE..SELECT..UNION creates a wrong field type for old varchar · 3ceb4a54
      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
      3ceb4a54
    • 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
  6. 29 May, 2018 13 commits
    • Otto Kekäläinen's avatar
      Deb: Import default.mk instead of only the subset buildflags.mk · 00677b36
      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.
      00677b36
    • James Clarke's avatar
    • Adrian Bunk's avatar
    • Otto Kekäläinen's avatar
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · a3539bbb
      Marko Mäkelä authored
      a3539bbb
    • Marko Mäkelä's avatar
      6f96ff72
    • Marko Mäkelä's avatar
      Add an end-marker to ease future merges · 7269c708
      Marko Mäkelä authored
      7269c708
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 18934fb5
      Marko Mäkelä authored
      18934fb5
    • Alexander Barkov's avatar
      MDEV-16320 Replace INT_ITEM references in sql_select.cc · d4da8e7c
      Alexander Barkov authored
      - Removing tests of item->type() against INT_ITEM and replacing
        them to calls of new method item->is_bool_literal().
      - Changing constant conditions to use Item_bool() instead of Item_int().
      d4da8e7c
    • Marko Mäkelä's avatar
      MDEV-16283 ALTER TABLE...DISCARD TABLESPACE still takes long on a large buffer pool · 6aa50bad
      Marko Mäkelä authored
      Also fixes MDEV-14727, MDEV-14491
      InnoDB: Error: Waited for 5 secs for hash index ref_count (1) to drop to 0
      by replacing the flawed wait logic in dict_index_remove_from_cache_low().
      
      On DISCARD TABLESPACE, there is no need to drop the adaptive hash index.
      We must drop it on IMPORT TABLESPACE, and eventually on DROP TABLE or
      DROP INDEX. As long as the dict_index_t object remains in the cache
      and the table remains inaccessible, the adaptive hash index entries
      to orphaned pages would not do any harm. They would be dropped when
      buffer pool pages are reused for something else.
      
      btr_search_drop_page_hash_when_freed(), buf_LRU_drop_page_hash_batch():
      Remove the parameter zip_size, and pass 0 to buf_page_get_gen().
      
      buf_page_get_gen(): Ignore zip_size if mode==BUF_PEEK_IF_IN_POOL.
      
      buf_LRU_drop_page_hash_for_tablespace(): Drop the adaptive hash index
      even if the tablespace is inaccessible.
      
      buf_LRU_drop_page_hash_for_tablespace(): New global function, to drop
      the adaptive hash index.
      
      buf_LRU_flush_or_remove_pages(), fil_delete_tablespace():
      Remove the parameter drop_ahi.
      
      dict_index_remove_from_cache_low(): Actively drop the adaptive hash index
      if entries exist. This should prevent InnoDB hangs on DROP TABLE or
      DROP INDEX.
      
      row_import_for_mysql(): Drop any adaptive hash index entries for the table.
      
      row_drop_table_for_mysql(): Drop any adaptive hash index for the table,
      except if the table resides in the system tablespace. (DISCARD TABLESPACE
      does not apply to the system tablespace, and we do no want to drop the
      adaptive hash index for other tables than the one that is being dropped.)
      
      row_truncate_table_for_mysql(): Drop any adaptive hash index entries for
      the table, except if the table resides in the system tablespace.
      6aa50bad
    • Alexander Barkov's avatar
      MDEV-16316 Replace INT_ITEM references in the code behind ORDER, LIMIT, PROCEDURE clause · 840d46b0
      Alexander Barkov authored
      1. Adding new methods:
      - Item::is_order_clause_position()
      - Item_splocal::is_valid_limit_clause_variable_with_error()
      - Type_handler::is_order_clause_position_type()
      - is_limit_clause_valid_type()
      and changing all tests related to the ORDER and LIMIT clauses
      like "item->type()==INT_ITEM" to these new methods.
      
      2. Adding a helper function prepare_param() in sql_analyse.cc
      and replacing three pieces of duplicate code to prepare_param() calls.
      Replacing the test "item->type()!=Item::INT_ITEM" to an equivalent
      condition using item->basic_const_item() and type_handler()->result_type().
      840d46b0
    • Marko Mäkelä's avatar
      Fix type mismatch · b7985a45
      Marko Mäkelä authored
      b7985a45
    • Marko Mäkelä's avatar
      MDEV-14589 InnoDB should not lock a delete-marked record · 35a9c90f
      Marko Mäkelä authored
      When the transaction isolation level is SERIALIZABLE, or when
      a locking read is performed in the REPEATABLE READ isolation level,
      InnoDB must lock delete-marked records in order to prevent another
      transaction from inserting something.
      
      However, at READ UNCOMMITTED or READ COMMITTED isolation level or
      when the parameter innodb_locks_unsafe_for_binlog is set, the
      repeatability of the reads does not matter, and there is no need
      to lock any records.
      
      row_search_for_mysql(): Skip locks on delete-marked committed records
      upfront, instead of invoking row_unlock_for_mysql() afterwards.
      The unlocking never worked for secondary index records.
      35a9c90f
  7. 28 May, 2018 11 commits
    • Alexander Barkov's avatar
      MDEV-16309 Split ::create_tmp_field() into virtual methods in Item · 637af783
      Alexander Barkov authored
      Detailed: changes:
      1. Moving Field specific code into new methods on Field:
         - Field *Field::create_tmp_field(...)
         - virtual void init_for_tmp_table(...)
      
      2. Removing virtual Item::create_tmp_field().
         Adding instead a new virtual method Item::create_tmp_field_ex().
      
         Note, a virtual create_tmp_field() still exists, but only for Item_sum.
         This resembles 10.0 code structure. Perhaps create_tmp_field() should
         be removed from Item_sum and Item_sum descendants should override
         create_tmp_field_ex() directly. This can be done in a separate commit.
      
      3. Adding helper classes Tmp_field_src and Tmp_field_param,
         to make the API for Item::create_tmp_field_ex() smaller
         and easier to extend in the future.
      
      4. Decomposing the public function create_tmp_field() into
         virtual implementations for Item and a number of its descendants:
         - Item_basic_value
         - Item_sp_variable
         - Item_name_const
         - Item_result_field
         - Item_field
         - Item_ref
         - Item_type_holder
         - Item_row
         - Item_func_sp
         - Item_func_user_var
         - Item_sum
         - Item_sum_field
         - Item_proc
      
      5. Adding DBUG_ASSERT-only virtual implementations for
         Item types that should not appear in create_tmp_table_ex(),
         for easier debugging:
         - Item_nodeset_func
         - Item_nodeset_to_const_comparator
         - Item_null_result
         - Item_copy
         - Item_ident_for_show
         - Item_user_var_as_out_param
      
      6. Moving public function create_tmp_field_from_field()
         as a method to Item_field.
      
      7. Removing Item::set_result_field(). It's not needed any more.
      
      8. Cleanup: Removing the enum value "EXPR_CACHE_ITEM",
         as it's not used for a very long time.
      637af783
    • Marko Mäkelä's avatar
      MDEV-13834 10.2 wrongly recognizes 10.1.10 innodb_encrypt_log=ON data as... · 8a42ad7a
      Marko Mäkelä authored
      MDEV-13834 10.2 wrongly recognizes 10.1.10 innodb_encrypt_log=ON data as after-crash and refuses to start
      
      infos[]: Allocate enough entries to accommodate all keys from both
      checkpoint pages.
      
      infos_used: The size of infos[].
      
      get_crypt_info(): Merge to the only caller, log_crypt_101_read_block().
      
      log_crypt_101_read_block(): Do not validate the log block checksum,
      because it will not be valid when upgrading from MariaDB 10.1.10.
      Instead, check that the encryption key exists.
      
      log_crypt_101_read_checkpoint(): Append to infos[] instead of overwriting.
      8a42ad7a
    • Sergei Petrunia's avatar
      MDEV-16310: rocksdb.check_ignore_unknown_options fails on OS X · 1a8afb48
      Sergei Petrunia authored
      Use a compatible xargs command-line arguments.
      1a8afb48
    • Otto Kekäläinen's avatar
      Deb: Remove dependencies on packages that are 'essential' anyway · c98e6d4b
      Otto Kekäläinen authored
      All packages in group 'essential' are by default installed on all
      Debian and Ubuntu systems, and there is no need to mark them as
      dependencies for any binary.
      c98e6d4b
    • Otto Kekäläinen's avatar
    • Otto Kekäläinen's avatar
      Deb: Mark binary package architectures correctly · d46ebfb5
      Otto Kekäläinen authored
      (This change matches how debian/control is in downstream Debian.org)
      d46ebfb5
    • Otto Kekäläinen's avatar
      Deb: Skip building RocksDB, TokuDB and using jemalloc on certain archs · 0a2ef601
      Otto Kekäläinen authored
      (This change matches how debian/rules is in downstream Debian.org)
      0a2ef601
    • Otto Kekäläinen's avatar
      548ec3a0
    • Kristien Nielsen's avatar
      Apply debian/patches/61_replace_dash_with_bash_mbug675185.dpatch · c902d5a4
      Kristien Nielsen authored
      We have carried along this patch as a patch inside our sources
      since 2012 (commit cfd4fcb0).
      
      The validity of this has thus been vetted in production for years
      and the review done now did not find otherwise.
      
      A race in dash causes mysqld_safe to occasionally loop infinitely.
      Fix by using bash instead.
      
      https://bugs.launchpad.net/ubuntu/+source/mysql-dfsg-5.0/+bug/675185
      
      As this is the last patch, we can also clean away usage of dpatch.
      c902d5a4
    • Christian Hammers's avatar
      Apply debian/patches/38_scripts__mysqld_safe.sh__signals.dpatch · 64094e12
      Christian Hammers authored
      We have carried along this patch as a patch inside our sources
      since 2012 (commit cfd4fcb0).
      
      This same patch has been used also in MySQL packaging at Oracle
      and in downstream Debian.org packages for both MySQL and MariaDB.
      
      The validity of this has thus been vetted in production for years
      and the review done now did not find otherwise.
      
      Code contributed to Oracle with
      http://forge.mysql.com/wiki/Sun_Contributor_Agreement
      
      Reported as http://bugs.mysql.com/bug.php?id=31361
      64094e12
    • Marko Mäkelä's avatar
      MDEV-15705 Remove global status counter Innodb_pages0_read · 13f7ac22
      Marko Mäkelä authored
      MDEV-9931 introduced a counter for keeping track of reads of the
      first page of InnoDB data files, because the original implementation
      of data-at-rest-encryption for InnoDB introduced new code paths for
      reading the pages.
      
      Ultimately, the extra reads of the first page were removed, and
      the encryption subsystem will be initialized whenever we first read
      the first page of each data file, in fil_node_open_file(). It should not
      be that interesting to observe how many times an InnoDB data file was
      opened for the first time.
      13f7ac22
  8. 27 May, 2018 4 commits
  9. 26 May, 2018 1 commit