1. 14 Jun, 2017 3 commits
    • Oleksandr Byelkin's avatar
      227bfe44
    • Oleksandr Byelkin's avatar
      MDEV-12471: BULK Command · 91ae1258
      Oleksandr Byelkin authored
      BULK execution moved to a new command.
      91ae1258
    • Marko Mäkelä's avatar
      MDEV-13084 MariaDB 10.2 crashes on corrupted SYS_TABLES.MIX_LEN field · e813fe86
      Marko Mäkelä authored
      innodb.row_format_redundant: Really corrupt the SYS_TABLES.MIX_LEN,
      and do not use any debug instrumentation. For tables created in the
      system tablespace, the contents of the column will be ignored.
      Only the table t1 will refuse to load.
      
      dict_load_table_one(): Remove the DBUG_EXECUTE_IF instrumentation.
      Omit a redundant error message "incorrect flags in SYS_TABLES".
      
      dict_sys_tables_rec_read(): Partially revert the Oracle Bug#21644827
      fix, and always report errors by the return value.
      
      fts_create_in_mem_aux_table(): Do not rely on dict_table_t::flags2,
      but instead evaluate the tablespace ID.
      
      DICT_TF2_BITS: Reduce to the correct value of 7. The two extra
      high-order bits were specific to MySQL 5.7.
      e813fe86
  2. 12 Jun, 2017 9 commits
  3. 10 Jun, 2017 2 commits
    • Igor Babaev's avatar
      Fixed the bug mdev12992. · 7a12894d
      Igor Babaev authored
      When the SELECT query from a trigger that used a subquery
      in its SELECT list was prepared the counter select_n_having_items
      was incremented in the constructor Item::Item(THD *thd).
      As a result each invocation of the trigger required more and more
      memory for the ref_pointer_array for this SELECT.
      Made sure that the counter st_select_lex::select_n_having_items
      would be incremented only at the first execution of such trigger.
      7a12894d
    • Sachin Setiya's avatar
      MDEV-9544 Fix test case for 10.2 · b175c41c
      Sachin Setiya authored
      b175c41c
  4. 09 Jun, 2017 3 commits
    • Marko Mäkelä's avatar
      MDEV-13039 innodb_fast_shutdown=0 may fail to purge all undo log · 417434f1
      Marko Mäkelä authored
      When a slow shutdown is performed soon after spawning some work for
      background threads that can create or commit transactions, it is possible
      that new transactions are started or committed after the purge has finished.
      This is violating the specification of innodb_fast_shutdown=0, namely that
      the purge must be completed. (None of the history of the recent transactions
      would be purged.)
      
      Also, it is possible that the purge threads would exit in slow shutdown
      while there exist active transactions, such as recovered incomplete
      transactions that are being rolled back. Thus, the slow shutdown could
      fail to purge some undo log that becomes purgeable after the transaction
      commit or rollback.
      
      srv_undo_sources: A flag that indicates if undo log can be generated
      or the persistent, whether by background threads or by user SQL.
      Even when this flag is clear, active transactions that already exist
      in the system may be committed or rolled back.
      
      innodb_shutdown(): Renamed from innobase_shutdown_for_mysql().
      Do not return an error code; the operation never fails.
      Clear the srv_undo_sources flag, and also ensure that the background
      DROP TABLE queue is empty.
      
      srv_purge_should_exit(): Do not allow the purge to exit if
      srv_undo_sources are active or the background DROP TABLE queue is not
      empty, or in slow shutdown, if any active transactions exist
      (and are being rolled back).
      
      srv_purge_coordinator_thread(): Remove some previous workarounds
      for this bug.
      
      innobase_start_or_create_for_mysql(): Set buf_page_cleaner_is_active
      and srv_dict_stats_thread_active directly. Set srv_undo_sources before
      starting the purge subsystem, to prevent immediate shutdown of the purge.
      Create dict_stats_thread and fts_optimize_thread immediately
      after setting srv_undo_sources, so that shutdown can use this flag to
      determine if these subsystems were started.
      
      dict_stats_shutdown(): Shut down dict_stats_thread. Backported from 10.2.
      
      srv_shutdown_table_bg_threads(): Remove (unused).
      417434f1
    • Marko Mäkelä's avatar
      Correct a merge error of MDEV-11626 · a9117c90
      Marko Mäkelä authored
      a9117c90
    • Jan Lindström's avatar
      MDEV-12610: MariaDB start is slow · 58c56dd7
      Jan Lindström authored
      Problem appears to be that the function fsp_flags_try_adjust()
      is being unconditionally invoked on every .ibd file on startup.
      Based on performance investigation also the top function
      fsp_header_get_crypt_offset() needs to addressed.
      
      Ported implementation of fsp_header_get_encryption_offset()
      function from 10.2 to fsp_header_get_crypt_offset().
      
      Introduced a new function fil_crypt_read_crypt_data()
      to read page 0 if it is not yet read.
      
      fil_crypt_find_space_to_rotate(): Now that page 0 for every .ibd
      file is not read on startup we need to check has page 0 read
      from space that we investigate for key rotation, if it is not read
      we read it.
      
      fil_space_crypt_get_status(): Now that page 0 for every .ibd
      file is not read on startup here also we need to read page 0
      if it is not yet read it. This is needed
      as tests use IS query to wait until background encryption
      or decryption has finished and this function is used to
      produce results.
      
      fil_crypt_thread(): Add is_stopping condition for tablespace
      so that we do not rotate pages if usage of tablespace should
      be stopped. This was needed for failure seen on regression
      testing.
      
      fil_space_create: Remove page_0_crypt_read and extra
      unnecessary info output.
      
      fil_open_single_table_tablespace(): We call fsp_flags_try_adjust
      only when when no errors has happened and server was not started
      on read only mode and tablespace validation was requested or
      flags contain other table options except low order bits to
      FSP_FLAGS_POS_PAGE_SSIZE position.
      
      fil_space_t::page_0_crypt_read removed.
      
      Added test case innodb-first-page-read to test startup when
      encryption is on and when encryption is off to check that not
      for all tables page 0 is read on startup.
      58c56dd7
  5. 08 Jun, 2017 9 commits
  6. 06 Jun, 2017 9 commits
  7. 05 Jun, 2017 2 commits
  8. 02 Jun, 2017 2 commits
  9. 01 Jun, 2017 1 commit