1. 06 Jun, 2022 1 commit
    • Monty's avatar
      Fixed crashing when using DBUG_PUSH_EMPTY · 392e744a
      Monty authored
      DBUG_PUSH_EMPTY is used by thr_mutex.cc.
      If there are 4G of DBUG_PUSH_EMPTY calls, then DBUG_POP_EMPTY will
      cause a crash when DBUGCloseFile() will try to free an object that
      was never allocated.
      392e744a
  2. 03 Jun, 2022 1 commit
  3. 01 Jun, 2022 2 commits
  4. 30 May, 2022 4 commits
    • Monty's avatar
      Fixed bug in ma_loghandler.cc that could cause an assert · 9d10b710
      Monty authored
      The assert happens in 10.6 with the following command:
      
      ./mtr --no-reorder --verbose-restart main.update_ignore_216 main.upgrade_MDEV-19650 main.upgrade_MDEV-23102-1 main.upgrade_MDEV-23102-2 main.upgrade_geometrycolumn_procedure_definer main.upgrade_mdev_24363 main.varbinary sys_vars.aria_log_file_size_basic
      
      Reviewer: Oleksandr Byelkin <sanja@mariadb.com>
      9d10b710
    • Monty's avatar
      Remove compiler warning about unused variables · 131c318b
      Monty authored
      131c318b
    • Marko Mäkelä's avatar
      MDEV-28689, MDEV-28690: Incorrect error handling for ctrl_mutex · 863c3eda
      Marko Mäkelä authored
      comp_thread_ctxt_t: Remove ctrl_mutex, ctrl_cond, started. We do not
      actually need them for anything.
      
      destroy_worker_thread(): Split from destroy_worker_threads().
      
      create_worker_threads(): We already initialize
      thd->data_avail=FALSE and thd->cancelled=FALSE before
      invoking pthread_create(). If any thread creation fails,
      clean up by destroy_worker_thread().
      
      compress_worker_thread_func(): Assume that thd->started and
      thd->data_avail are already initialized.
      
      Reviewed by: Vladislav Vaintroub
      863c3eda
    • Masashi Tomooka's avatar
      MDEV-28599 EXCHANGE PARTITION on view causes ER_CHECK_NO_SUCH_TABLE instead of ER_WRONG_OBJECT · f7137a61
      Masashi Tomooka authored
      ER_CHECK_NO_SUCH_TABLE was raised because a view does not have
      the corresponding TABLE instance connected to TABLE_LIST and the
      server interprets the absence as the absence of the table itself.
      
      To fix the problem, we add a check to ensure that the target table
      to be swapped with a partition is not a view.
      
      Reviewed by: Nayuta Yanagisawa
      f7137a61
  5. 27 May, 2022 1 commit
  6. 26 May, 2022 1 commit
    • Ting Nian's avatar
      Add option --enable-cleartext-plugin to the MariaDB client · 31e30329
      Ting Nian authored
      For compatibility reasons, add the option to the MariaDB client without
      any functional changes besides simply accepting the option and emitting
      a warning that it is obsolete.
      
      In MySQL this security related option is compulsory in certain use
      cases. When users switch to MariaDB, this client command that used to
      work starts failing without a sensible error message. In worst case
      users resort to re-installing the mysql client from MySQL.
      
      In MariaDB the option is obsolete and should simply be ignored. Users
      however don't have any opportunity to learn that unless the client
      program tells them so.
      
      Before:
      
          mysql --enable-cleartext-plugin ...
          mysql: unknown option '--enable-cleartext-plugin'
      
          (program terminates)
      
      After:
      
          mysql --enable-cleartext-plugin ...
          WARNING: option '--enable-cleartext-plugin' is obsolete.
      
          (program executes)
      
      All new code of the whole pull request, including one or several files
      that are either new files or modified ones, are contributed under the
      BSD-new license. I am contributing on behalf of my employer Amazon Web
      Services, Inc.
      31e30329
  7. 25 May, 2022 2 commits
  8. 23 May, 2022 1 commit
  9. 20 May, 2022 2 commits
  10. 19 May, 2022 1 commit
    • Oleg Smirnov's avatar
      MDEV-28246 Optimizer uses all partitions after upgrade to 10.3 · 40d9dbb2
      Oleg Smirnov authored
      Cause: a copy of the joined TABLE_LIST is created during multi_update::prepare
      and TABLE::pos_in_table_list of the tables are set to point to the new
      TABLE_LIST object. This prevents some optimization steps to perform correctly.
      Solution: do not update pos_in_table_list during multi_update::prepare
      40d9dbb2
  11. 18 May, 2022 1 commit
    • KiyoshiTakeda's avatar
      MDEV-14642 Assertion 'table->s->db_create_options ==... · 8881c010
      KiyoshiTakeda authored
      MDEV-14642 Assertion 'table->s->db_create_options == part_table->s->db_create_options' failed in compare_table_with_partition
      
      When trying to execute ALTER TABLE EXCHANGE PARTITION with different
      definitions, assertion
      
          table->s->db_create_options == part_table->s->db_create_options
      
      failed in compare_table_with_partition().
      
      However, this execution should not be allowed since executing
      'exchange partition' requires the identical structure of the two tables.
      
      To fix the problem, I deleted the assertion code and added code that
      returns an error that indicates tables have different definitions.
      
      Reviewed By: Nayuta Yanagisawa
      8881c010
  12. 17 May, 2022 8 commits
  13. 16 May, 2022 2 commits
  14. 15 May, 2022 1 commit
    • Sergei Petrunia's avatar
      Code cleanup in/around check_interleaving_with_nj() · 730eb1c4
      Sergei Petrunia authored
      - In best_extension_by_limited_search(), do not check for
        "(remaining_tables & real_table_bit)", it is guaranteed to be true.
        Make it an assert.
      - In (!idx || check_interleaving_with_nj())", remove the !idx part.
        This check made sense only in the original version of this function.
      - "micro optimization" in check_interleaving_with_nj().
      730eb1c4
  15. 13 May, 2022 3 commits
  16. 12 May, 2022 1 commit
  17. 09 May, 2022 1 commit
  18. 08 May, 2022 1 commit
  19. 07 May, 2022 2 commits
  20. 06 May, 2022 4 commits
    • Daniel Black's avatar
      MDEV-27816: Set sql_mode before DROP IF EXISTS already (postfix) · 0db27eff
      Daniel Black authored
      Test compat/oracle.sp-package-mysqldump needed re-record.
      0db27eff
    • Andrei's avatar
      MDEV-28310 Missing binlog data for INSERT .. ON DUPLICATE KEY UPDATE · a5dc12ee
      Andrei authored
      MDEV-21810 MBR: Unexpected "Unsafe statement" warning for unsafe IODKU
      
      MDEV-17614 fixes to replication unsafety for INSERT ON DUP KEY UPDATE
      on two or more unique key table left a flaw. The fixes checked the
      safety condition per each inserted record with the idea to catch a user-created
      value to an autoincrement column and when that succeeds the autoincrement column
      would become the source of unsafety too.
      It was not expected that after a duplicate error the next record's
      write_set may become different and the unsafe decision for that
      specific record will be computed to screw the Query's binlogging
      state and when @@binlog_format is MIXED nothing gets bin-logged.
      
      This case has been already fixed in 10.5.2 by 91ab42a8 that
      relocated/optimized THD::decide_logging_format_low() out of the record insert
      loop. The safety decision is computed once and at the right time.
      Pertinent parts of the commit are cherry-picked.
      
      Also a spurious warning about unsafety is removed when MIXED
      @@binlog_format; original MDEV-17614 test result corrected.
      The original test of MDEV-17614 is extended and made more readable.
      a5dc12ee
    • Daniel Black's avatar
      MDEV-4875 Can't restore a mysqldump if --add-drop-database meets general_log · 221ced92
      Daniel Black authored
      or slow query log when the log_output=TABLE.
      
      When this happens, we temporary disable by changing log_output until
      we've created the general_log and slow_log tables again.
      
      Move </database> in xml mode until after the transaction_registry.
      
      General_log and slow_log tables where moved to be first to be dumped so
      that the disabling of the general/slow queries is minimal.
      221ced92
    • Hartmut Holzgraefe's avatar
      MDEV-27816 Set sql_mode before DROP IF EXISTS already · 9fe3bc2a
      Hartmut Holzgraefe authored
      Previously the correct SQL mode for a stored routine or
      package was only set before doing the CREATE part, this
      worked out for PROCEDUREs and FUNCTIONs, but with ORACLE
      mode specific PACKAGEs the DROP also only works in ORACLE
      mode.
      
      Moving the setting of the sql_mode a few lines up to happen
      right before the DROP statement is writen fixes this.
      9fe3bc2a