1. 28 Mar, 2017 3 commits
  2. 27 Mar, 2017 5 commits
    • Igor Babaev's avatar
      Fixed bug mdev-12375. · 93dd70ce
      Igor Babaev authored
      The function st_select_lex_unit::exec_recursive() incorrectly determined
      that a CTE mutually recursive with some others was stabilized in the case
      when the non-recursive part of the CTE returned an empty set. As a result
      the server fell into an infinite loop when executing a query using
      this CTE.
      93dd70ce
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
      Fix connect engine crashes in buildbot tests on Win64. · d3f82e3a
      Vladislav Vaintroub authored
      Do not truncate pointers returned by _findfirst to int.
      d3f82e3a
    • Igor Babaev's avatar
      Fixed bug mdev-12368. · ad7da60d
      Igor Babaev authored
      Mutually recursive CTE could cause a crash of the server in the case
      when they were not Standard compliant. The crash happened in
      mysql_derived_prepare(), because the destructor the derived_result
      object created for a CTE that was mutually recursive with some others
      was called twice. Yet this destructor should not be called for resursive
      references.
      ad7da60d
    • Igor Babaev's avatar
      Fixed bug mdev-12360. · 5a4537f0
      Igor Babaev authored
      The method With_element::check_unrestricted_recursive() icorrectly performed
      the check that no recursive reference is not encountered in inner parts of
      outer joins. As a result the server reported errors for valid specifications
      with outer joins.
      5a4537f0
  3. 26 Mar, 2017 1 commit
  4. 24 Mar, 2017 4 commits
  5. 21 Mar, 2017 1 commit
  6. 20 Mar, 2017 2 commits
  7. 18 Mar, 2017 1 commit
  8. 17 Mar, 2017 6 commits
  9. 16 Mar, 2017 3 commits
    • 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
  10. 15 Mar, 2017 4 commits
  11. 14 Mar, 2017 5 commits
  12. 13 Mar, 2017 5 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