1. 10 Feb, 2017 5 commits
    • Nirbhay Choubey's avatar
    • Oleksandr Byelkin's avatar
      Unused code removed. · 25f6d1da
      Oleksandr Byelkin authored
      25f6d1da
    • Oleksandr Byelkin's avatar
      MDEV-10554: Assertion... · ae3072c0
      Oleksandr Byelkin authored
      MDEV-10554: Assertion `!derived->first_select()->exclude_from_table_unique_test || derived->outer_select()-> exclude_from_table_unique_test' failed in TABLE_LIST::set_check_merged()
      
      Mark and check excluded because of merging derived tables and views.
      ae3072c0
    • Oleksandr Byelkin's avatar
      ee51f582
    • Igor Babaev's avatar
      Fixed bug mdev-11745. · 78b5e8d6
      Igor Babaev authored
      Due to this bug many queries that contained a window function
      with MIN/MAX aggregation returned wrong results.
      
      Calculation of a MIN/MAX aggregate function uses cache objects
      and a comparator object that are created and set up in
      Item_sum_hybrid::fix_fields () by a call of Item_sum_hybrid::setup_hybrid().
      The latter binds the objects to the first argument of the
      MIN/MAX function. Meanwhile window function perform aggregation
      over fields of a temporary table. So binding must be done rather to
      these fields. The earliest moment when setup the objects used in
      MIN/max functions can be done is after all calls of the method
      split_sum_func().
      
      This patch introduces this late setup, but only for aggregate
      functions used in window functions.
      Probably it makes sense to use this late setup for all MIN/MAX
      objects.
      78b5e8d6
  2. 09 Feb, 2017 8 commits
  3. 08 Feb, 2017 7 commits
    • Marko Mäkelä's avatar
      MDEV-12024 InnoDB startup fails to wait for recv_writer_thread to finish · 070a8754
      Marko Mäkelä authored
      recv_writer_thread(): Do not assign recv_writer_thread_active=true
      in order to avoid a race condition with
      recv_recovery_from_checkpoint_finish().
      
      recv_init_crash_recovery_spaces(): Assign recv_writer_thread_active=true
      before creating recv_writer_thread.
      070a8754
    • Vladislav Vaintroub's avatar
      More verbose output for the Wix linker (light.exe) · bae2fc1f
      Vladislav Vaintroub authored
      This is an attempt to workaround buildbot
      "1200 seconds without output, killing process"
      bae2fc1f
    • Marko Mäkelä's avatar
      Test fix for MDEV-6076 Persistent AUTO_INCREMENT for InnoDB · 3c411e3a
      Marko Mäkelä authored
      Before killing the server, ensure that the redo log for the
      incomplete transaction is flushed, so that the AUTO_INCREMENT
      sequence will always be updated. Usually the INSERT
      transaction would not have persisted the sequence before the
      server was killed, but sometimes it could happen, causing
      result mismatch.
      
      Note: This test used to be called innodb_fts.innodb_fts_misc_debug.
      3c411e3a
    • Marko Mäkelä's avatar
      Remove some more error log spam. · 9fa20716
      Marko Mäkelä authored
      Do not effectively set DEBUG_DBUG='d' by setting DEBUG_DBUG='-d,...'.
      Instead, restore the saved value of DEBUG_DBUG.
      
      Also, split the test innodb_fts.innodb_fts_misc_debug into
      innodb_fts.crash_recovery and innodb_fts.misc_debug, and enable
      these tests for --valgrind, the latter test for --embedded,
      and the former tests for the non-debug server.
      9fa20716
    • Oleksandr Byelkin's avatar
      MDEV-11681: PARTITION BY LIST COLUMNS with default partition: Assertion... · a75633b5
      Oleksandr Byelkin authored
      MDEV-11681: PARTITION BY LIST COLUMNS with default partition: Assertion `part_info->num_list_values' failed in get_part_iter_for_interval_cols_via_map
      
      process adge case with only default partition
      a75633b5
    • Jan Lindström's avatar
      MDEV-11974: MariaDB 10.2 encryption does not support spatial indexes · 7b27465e
      Jan Lindström authored
      Encryption stores used key_version to
      FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION (offset 26)
      field. Spatial indexes store RTREE Split Sequence Number
      (FIL_RTREE_SPLIT_SEQ_NUM) in the same field. Both values
      can't be stored in same field. Thus, current encryption
      implementation does not support encrypting spatial indexes.
      
      fil_space_encrypt(): Do not encrypt page if page type is
      FIL_PAGE_RTREE (this is required for background
      encryption innodb-encrypt-tables=ON).
      
      create_table_info_t::check_table_options() Do not allow creating
      table with ENCRYPTED=YES if table contains spatial index.
      7b27465e
    • Alexander Barkov's avatar
  4. 07 Feb, 2017 6 commits
    • Alexey Botchkov's avatar
      MDEV-11554 innodb_gis.precise fails in buildbot on Power. · abe6aca8
      Alexey Botchkov authored
              Usual '8' turns into 7.9999999 on Power. Test case fixed.
      abe6aca8
    • Marko Mäkelä's avatar
      MDEV-11782 WIP: Support upgrade from MariaDB 10.1. · 92bbf4ad
      Marko Mäkelä authored
      recv_log_format_0_recover(): Invoke log_decrypt_after_read() after
      reading the old-format redo log buffer.
      
      With this change, we will upgrade to an encrypted redo log that
      is misleadingly carrying a MySQL 5.7.9 compatible format tag while
      the log blocks (other than the header and the checkpoint blocks)
      are in an incompatible, encrypted format.
      That needs to be fixed by introducing a new redo log format tag that
      indicates that the entire redo log is encrypted.
      92bbf4ad
    • Marko Mäkelä's avatar
      MDEV-11782 WIP: Clean up the code, and add a test. · b40a1fbc
      Marko Mäkelä authored
      LOG_CHECKPOINT_ARRAY_END, LOG_CHECKPOINT_SIZE: Remove.
      
      Change some error messages to refer to MariaDB 10.2.2 instead of
      MySQL 5.7.9.
      
      recv_find_max_checkpoint_0(): Do not abort when decrypting one of the
      checkpoint pages fails.
      b40a1fbc
    • Marko Mäkelä's avatar
      MDEV-12004 InnoDB wrongly thinks that a column is indexed · c5fc3a90
      Marko Mäkelä authored
      after failed ADD UNIQUE INDEX
      
      check_col_exists_in_indexes(): Add the parameter only_committed.
      When considering committed indexes, evaluate index->is_committed().
      Else, evaluate index->to_be_dropped.
      
      rollback_inplace_alter_table(): Invoke check_col_exists_in_indexes()
      with only_committed=true.
      c5fc3a90
    • Jan Lindström's avatar
      MDEV-11035: Restore removed disallow-writes for Galera · 2aa47d98
      Jan Lindström authored
      Galera disallow-writes feature was lost in InnoDB 5.7 merge
      to 10.2. This patch restores this feature and fixes test
      failure on test galera.galera_var_innodb_disallow_writes.
      2aa47d98
    • Igor Babaev's avatar
      Fixed bug mdev-11999. · c16c9e8e
      Igor Babaev authored
      This patch complements the patch for bug 11138.
      Without this patch some table-less queries with window functions
      could cause crashes due to a memory overwrite.
      c16c9e8e
  5. 06 Feb, 2017 5 commits
    • Marko Mäkelä's avatar
      MDEV-11985 Make innodb_read_only shutdown more robust · 2f00b73a
      Marko Mäkelä authored
      If InnoDB is started in innodb_read_only mode such that
      recovered incomplete transactions exist at startup
      (but the redo logs are clean), an assertion will fail at shutdown,
      because there would exist some non-prepared transactions.
      
      logs_empty_and_mark_files_at_shutdown(): Do not wait for incomplete
      transactions to finish if innodb_read_only or innodb_force_recovery>=3.
      Wait for purge to finish in only one place.
      
      trx_sys_close(): Relax the assertion that would fail first.
      
      trx_free_prepared(): Also free recovered TRX_STATE_ACTIVE transactions
      if innodb_read_only or innodb_force_recovery>=3.
      
      Also, revert my earlier fix to MySQL 5.7 because this fix is more generic:
      
      Bug#20874411 INNODB SHUTDOWN HANGS IF INNODB_FORCE_RECOVERY>=3
      SKIPPED ANY ROLLBACK
      
      trx_undo_fake_prepared(): Remove.
      
      trx_sys_any_active_transactions(): Revert the changes.
      2f00b73a
    • Marko Mäkelä's avatar
      MDEV-11948 innodb.log_file fails in buildbot on CentOS 5 · a440d6ed
      Marko Mäkelä authored
      Rewrite the test so that the main server is restarted, instead of
      --exec $MYSQLD_CMD. In this way, the test can be run with Valgrind
      and with any --mysqld=--innodb-page-size.
      
      Also remove the workaround --skip-innodb-use-native-aio. It should
      not be needed when we are inheriting the server parameters from
      the test environment.
      a440d6ed
    • Marko Mäkelä's avatar
      Test recovery when a .ibd file is a directory. · 3534500b
      Marko Mäkelä authored
      Datafile::validate_for_recovery(): Remove a redundant error message.
      An error is already reported by Datafile::open_read_write() if the
      file cannot be opened.
      
      Also, do not assign SEARCH_ABORT, so that the full test will be executed
      even if one step fails.
      3534500b
    • Marko Mäkelä's avatar
      Simplify innodb.innochecksum test. · 5a21094a
      Marko Mäkelä authored
      There already are ROW_FORMAT=COMPRESSED tests in innodb_zip.innochecksum_2.
      
      Use shutdown_mysqld.inc and start_mysqld.inc.
      5a21094a
    • Alexey Botchkov's avatar
      MDEV-11557 port MySQL-5.7 JSON tests to MariaDB. · abf75821
      Alexey Botchkov authored
              Fixes for issues found.
      abf75821
  6. 05 Feb, 2017 1 commit
  7. 03 Feb, 2017 6 commits
    • Igor Babaev's avatar
      Fixed bug mdev-10660. · 20aae56e
      Igor Babaev authored
      The method Item_sum::print did not print opening '(' after the name
      of simple window functions (like rank, dense_rank etc).
      As a result the view definitions with such window functions
      were formed invalid in .frm files.
      20aae56e
    • Marko Mäkelä's avatar
      MDEV-11947 InnoDB purge workers fail to shut down · bc12d993
      Marko Mäkelä authored
      srv_release_threads(): Actually wait for the threads to resume
      from suspension. On CentOS 5 and possibly other platforms,
      os_event_set() may be lost.
      
      srv_resume_thread(): A counterpart of srv_suspend_thread().
      Optionally wait for the event to be set, optionally with a timeout,
      and then release the thread from suspension.
      
      srv_free_slot(): Unconditionally suspend the thread. It is always
      in resumed state when this function is entered.
      
      srv_active_wake_master_thread_low(): Only call os_event_set().
      
      srv_purge_coordinator_suspend(): Use srv_resume_thread() instead
      of the complicated logic.
      bc12d993
    • Marko Mäkelä's avatar
      MDEV-11782 Work-in-progress (test only). · 3ebe0820
      Marko Mäkelä authored
      Test server startup with an empty encrypted redo log from 10.1.21.
      FIXME: Pass the encryption parameters. Currently we only test startup
      without properly set up encryption.
      3ebe0820
    • Marko Mäkelä's avatar
      52855048
    • Igor Babaev's avatar
      Fixed bug mdev-9923. · fd7accab
      Igor Babaev authored
      Partition and order lists of a window specification cannot
      use constant integer to refer to select list elements.
      fd7accab
    • Igor Babaev's avatar
      Fixed bug mdev-11594. · 5606f878
      Igor Babaev authored
      Using window functions over results of implicit groupings
      required special handling in JOIN::make_aggr_tables_info.
      The patch made sure that the result of implicit grouping
      was written into a temporary table properly.
      5606f878
  8. 02 Feb, 2017 2 commits
    • Alexey Botchkov's avatar
      MDEV-11938 json.json_no_table crashes or fails with valgrind warnings in... · d123ed85
      Alexey Botchkov authored
      MDEV-11938 json.json_no_table crashes or fails with valgrind warnings in json_find_path / Item_func_json_length::val_int.
      
              Paths with quoted keynames handled improperly.
      d123ed85
    • Marko Mäkelä's avatar
      Extend the innodb.log_corruption test. · 650ffcd3
      Marko Mäkelä authored
      Remove the dependency on unzip. Instead, generate the InnoDB files
      with perl.
      
      log_block_checksum_is_ok(): Correct the error message.
      
      recv_scan_log_recs(): Remove the duplicated error message for
      log block checksum mismatch.
      
      innobase_start_or_create_for_mysql(): If the server is in read-only
      mode or if innodb_force_recovery>=3, do not try to modify the system
      tablespace. (If the doublewrite buffer or the non-core system tables
      do not exist, do not try to create them.)
      
      innodb_shutdown(): Relax a debug assertion. If the system tablespace
      did not contain a doublewrite buffer and if we started up in
      innodb_read_only mode or with innodb_force_recovery>=3, it will not
      be created.
      
      dict_create_or_check_sys_tablespace(): Set the flag
      srv_sys_tablespaces_open when the tables exist.
      650ffcd3