1. 19 Mar, 2017 1 commit
  2. 18 Mar, 2017 1 commit
  3. 17 Mar, 2017 6 commits
  4. 16 Mar, 2017 4 commits
    • Oleksandr Byelkin's avatar
    • Marko Mäkelä's avatar
      MDEV-12269 Port Bug#22996442 INNODB: MAKE UNIV_DEBUG DEPEND ON DBUG_OFF · 7668a79a
      Marko Mäkelä authored
      This is a partial port of my patch in MySQL 8.0.
      In MySQL 8.0, all InnoDB references to DBUG_OFF were replaced
      with UNIV_DEBUG. We will not do that in MariaDB.
      
      InnoDB used two independent compile-time flags that distinguish
      debug and non-debug builds, which is confusing.
      
      Also, make ut_ad() and alias of DBUG_ASSERT().
      7668a79a
    • Marko Mäkelä's avatar
      MDEV-12273 Remove dict_table_t::does_not_fit_in_memory · 105f46ff
      Marko Mäkelä authored
      In the InnoDB internal SQL parser, there is the keyword
      DOES_NOT_FIT_IN_MEMORY that is never specified in any CREATE TABLE
      statement that is passed to the InnoDB SQL parser
      (que_eval_sql() or pars_sql() or yyparse()). If this keyword were
      ever present, it would set the flag dict_table_t::does_not_fit_in_memory
      which is only present in debug builds.
      
      Let us remove all traces of this.
      
      Also, fix storage/innobase/pars/make_flex.sh so that no the generated
      file storage/innobase/pars/lexyy.cc works as is.
      
      FIXME: Always generate the InnoDB Bison files at build time, similar
      to how sql/sql_yacc.yy is handled. (This would still leave the
      generated scanner files, unless we want to add a build-time dependency
      for Flex.)
      105f46ff
    • Varun Gupta's avatar
      Test result for MDEV-10766 fixed · aad15eae
      Varun Gupta authored
      aad15eae
  5. 15 Mar, 2017 4 commits
  6. 14 Mar, 2017 6 commits
  7. 13 Mar, 2017 11 commits
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
      MDEV-11903 Windows : Support innodb page sizes in the installer/mysql_install_db.exe · a8715884
      Vladislav Vaintroub authored
      - add PAGESIZE property to the MSI installer
      - add combobox  to the MSI UI to select innodb page size
      - add new parameter --innodb_page_size for mysql_install_db.exe.
      this is passed down to bootstrap and also stored in my.ini.
      
      MSI will call mysql_install_db.exe with --innodb_page_size set to the
      PAGESIZE property
      a8715884
    • Oleksandr Byelkin's avatar
      MDEV-12244: C API header file contains C++ comment for COM_BINLOG_DUMP_GTID · bfef611a
      Oleksandr Byelkin authored
      fixed C++ comment in C code
      bfef611a
    • Marko Mäkelä's avatar
      MDEV-12219 Discard temporary undo logs at transaction commit · 13e5c9de
      Marko Mäkelä authored
      Starting with MySQL 5.7, temporary tables in InnoDB are handled
      differently from persistent tables. Because temporary tables are
      private to a connection, concurrency control and multi-versioning
      (MVCC) are not applicable. For performance reasons, purge is
      disabled as well. Rollback is supported for temporary tables;
      that is why we have the temporary undo logs in the first place.
      
      Because MVCC and purge are disabled for temporary tables, we should
      discard all temporary undo logs already at transaction commit,
      just like we discard the persistent insert_undo logs. Before this
      change, update_undo logs were being preserved.
      
      trx_temp_undo_t: A wrapper for temporary undo logs, comprising
      a rollback segment and a single temporary undo log.
      
      trx_rsegs_t::m_noredo: Use trx_temp_undo_t.
      (Instead of insert_undo, update_undo, there will be a single undo.)
      
      trx_is_noredo_rseg_updated(), trx_is_rseg_assigned(): Remove.
      
      trx_undo_add_page(): Remove the parameter undo_ptr.
      Acquire and release the rollback segment mutex inside the function.
      
      trx_undo_free_last_page(): Remove the parameter trx.
      
      trx_undo_truncate_end(): Remove the parameter trx, and add the
      parameter is_temp. Clean up the code a bit.
      
      trx_undo_assign_undo(): Split the parameter undo_ptr into rseg, undo.
      
      trx_undo_commit_cleanup(): Renamed from trx_undo_insert_cleanup().
      Replace the parameter undo_ptr with undo.
      This will discard the temporary undo or insert_undo log at
      commit/rollback.
      
      trx_purge_add_update_undo_to_history(), trx_undo_update_cleanup():
      Remove 3 parameters. Always operate on the persistent update_undo.
      
      trx_serialise(): Renamed from trx_serialisation_number_get().
      
      trx_write_serialisation_history(): Simplify the code flow.
      If there are no persistent changes, do not update MONITOR_TRX_COMMIT_UNDO.
      
      trx_commit_in_memory(): Simplify the logic, and add assertions.
      
      trx_undo_page_report_modify(): Keep a direct reference to the
      persistent update_undo log.
      
      trx_undo_report_row_operation(): Simplify some code.
      Always assign TRX_UNDO_INSERT for temporary undo logs.
      
      trx_prepare_low(): Keep only one parameter. Prepare all 3 undo logs.
      
      trx_roll_try_truncate(): Remove the parameter undo_ptr.
      Try to truncate all 3 undo logs of the transaction.
      
      trx_roll_pop_top_rec_of_trx_low(): Remove.
      
      trx_roll_pop_top_rec_of_trx(): Remove the redundant parameter
      trx->roll_limit. Clear roll_limit when exhausting the undo logs.
      Consider all 3 undo logs at once, prioritizing the persistent
      undo logs.
      
      row_undo(): Minor cleanup. Let trx_roll_pop_top_rec_of_trx()
      reset the trx->roll_limit.
      13e5c9de
    • Marko Mäkelä's avatar
      Fix some compilation warnings. · 056ec4ab
      Marko Mäkelä authored
      056ec4ab
    • Marko Mäkelä's avatar
      MDEV-12091 Shutdown fails to wait for rollback of recovered transactions to finish · e5b155a4
      Marko Mäkelä authored
      In the 10.1 InnoDB Plugin, a call os_event_free(buf_flush_event) was
      misplaced. The event could be triggered by rollback of resurrected
      transactions while shutdown was in progress. This bug was caught
      by cmake -DWITH_ASAN testing. This call was only present in the
      10.1 InnoDB Plugin, not in other versions, or in XtraDB.
      
      That said, the bug affects all InnoDB versions. Shutdown assumes the
      cessation of any page-dirtying activity, including the activity of
      the background rollback thread. InnoDB only waited for the background
      rollback to finish as part of a slow shutdown (innodb_fast_shutdown=0).
      The default is a clean shutdown (innodb_fast_shutdown=1). In a scenario
      where InnoDB is killed, restarted, and shut down soon enough, the data
      files could become corrupted.
      
      logs_empty_and_mark_files_at_shutdown(): Wait for the
      rollback to finish, except if innodb_fast_shutdown=2
      (crash-like shutdown) was requested.
      
      trx_rollback_or_clean_recovered(): Before choosing the next
      recovered transaction to roll back, terminate early if non-slow
      shutdown was initiated. Roll back everything on slow shutdown
      (innodb_fast_shutdown=0).
      
      srv_innodb_monitor_mutex: Declare as static, because the mutex
      is only used within one module.
      
      In 10.2, os_event_destroy() sets the event to a NULL pointer,
      while os_event_free() in earlier versions did not do that.
      e5b155a4
    • Marko Mäkelä's avatar
      Define a mtr_t::start() wrapper inline. · ff8bf6e9
      Marko Mäkelä authored
      ff8bf6e9
    • Marko Mäkelä's avatar
      Adjust an outdated comment. · c32dcae6
      Marko Mäkelä authored
      os_sync_free(), which hid resource leaks, was removed in MySQL 5.7.
      c32dcae6
    • Oleksandr Byelkin's avatar
      MDEV-10555: Server crashes in mysql_admin_table upon killing ANALYZE · c0fb7b45
      Oleksandr Byelkin authored
      Take into acount result of open table operation in mysql_admin_table.
      c0fb7b45
    • Alexander Barkov's avatar
      Removing the duplicate copy of char_to_byte_length_safe(). · e43156e1
      Alexander Barkov authored
      It appeared during a merge from 10.2 to bb-10.2-ext.
      e43156e1
  8. 11 Mar, 2017 1 commit
  9. 10 Mar, 2017 6 commits