1. 26 Aug, 2021 2 commits
    • Michael Widenius's avatar
      MDEV 22785 Crash with prepared statements and NEXTVAL() · b378ddb3
      Michael Widenius authored
      The problem was that a PREARE followed by a non prepared statement
      using DEFAULT NEXT_VALUE() could change table->next_local to point to
      a not persitent memory aria. The next EXECUTE would then try to use
      the wrong pointer, which could cause a crash.
      Fixed by reseting the pointer to it's old value when doing EXECUTE.
      b378ddb3
    • Michael Widenius's avatar
      Fixed failing maria.repair test · c9851d35
      Michael Widenius authored
      Backported patch from MariaDB 10.6
      The issue was that the using session_mem_used to break a test does not
      guarantee where the test breaks, which gives different results
      depending on the environment or how MariaDB is compield.
      c9851d35
  2. 25 Aug, 2021 1 commit
  3. 24 Aug, 2021 2 commits
  4. 23 Aug, 2021 8 commits
  5. 21 Aug, 2021 1 commit
  6. 20 Aug, 2021 2 commits
  7. 19 Aug, 2021 1 commit
  8. 18 Aug, 2021 8 commits
  9. 17 Aug, 2021 2 commits
    • Eugene Kosov's avatar
      MDEV-20931 ALTER...IMPORT can crash the server · 890f2ad7
      Eugene Kosov authored
      Main idea: don't log-and-crash but propogate error to the upper layers of stack
      to handle it and show to a user.
      890f2ad7
    • Vlad Lesin's avatar
      MDEV-26206 gap lock is not set if implicit lock exists · 2d259187
      Vlad Lesin authored
      If lock type is LOCK_GAP or LOCK_ORDINARY, and the transaction holds
      implicit lock for the record, then explicit gap-lock will not be set for
      the record, as lock_rec_convert_impl_to_expl() returns true and
      lock_rec_convert_impl_to_expl() bypasses lock_rec_lock() call.
      
      The fix converts explicit lock to implicit one if requested lock type is
      not LOCK_REC_NOT_GAP.
      
      innodb_information_schema test result is also changed as after the fix
      the following statements execution:
      
      SET autocommit=0;
      INSERT INTO t1 VALUES (5,10);
      SELECT * FROM t1 FOR UPDATE;
      
      leads to additional gap lock requests.
      2d259187
  10. 16 Aug, 2021 3 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-26131 SEGV in ha_innobase::discard_or_import_tablespace · 89445b64
      Thirunarayanan Balathandayuthapani authored
      Import operation without .cfg file fails when there is mismatch of index
      between metadata table and .ibd file. Moreover, MDEV-19022 shows
      that InnoDB can end up with index tree where non-leaf page has only
      one child page. So it is unsafe to find the secondary index root page.
      
      This patch does the following when importing the table without .cfg file:
      
      1) If the metadata contains more than one index then InnoDB stops
      the import operation and report the user to drop all secondary
      indexes before doing import operation.
      
      2) When the metadata contain only clustered index then InnoDB finds the
      index id by reading page 0 & page 3 instead of traversing the
      whole tablespace.
      89445b64
    • Marko Mäkelä's avatar
      MDEV-26376 pars_info_bind_id() unnecessarily copies strings · 4cd063b9
      Marko Mäkelä authored
      pars_info_bind_id(): Remove the parameter copy_name. It was always
      being passed as constant TRUE or true. It turns out that copying
      the string is completely unnecessary. In all calls except the one
      in fts_get_select_columns_str() and fts_doc_fetch_by_doc_id(),
      the parameter is being passed as a compile-time constant, and therefore
      the pointer cannot become stale. In that special call, the string
      that is being passed is allocated from the same memory heap that
      pars_info_bind_id() would have been using.
      
      pars_info_add_id(): Remove (unused declaration).
      4cd063b9
    • Julius Goryavsky's avatar
      MDEV-26101: Galera WSREP SST broken on 10.6 under FreeBSD · 50428b39
      Julius Goryavsky authored
      This commit fixes a call to the sockstat utility for FreeBSD,
      where this utility requires an extra "-s" parameter to display
      the connection status and prints one extra column.
      50428b39
  11. 15 Aug, 2021 2 commits
    • Julius Goryavsky's avatar
      MDEV-26340: rsync uses `--whole-file` only in wan mode · 094e0391
      Julius Goryavsky authored
      This commit fixes a mistake where the --whole-file option
      is used by rsync SST in WAN mode instead of LAN.
      094e0391
    • Julius Goryavsky's avatar
      MDEV-26211: Cluster joiner node is failed to start when using TLS · d1a948cf
      Julius Goryavsky authored
      This commit adds support for reading new SSL configuration
      options (ssl-ca, ssl-cert and ssl-key) if the [sst] section
      with old options (tca, tcert and tkey) is missing in the config
      file, even if not specified authentication mode via the ssl-mode
      option. Before this change, new parameters were read only if the
      ssl-mode option was present in the configuration file and it was
      not equal to the 'DISABLED' value.
      
      Also added diagnostics (information level) which warns the user
      that due to the presence of the tca, tcert and/or tkey parameters
      in the [sst] section, new SSL configuration options will be ignored
      (if their values do not match the old ones).
      d1a948cf
  12. 14 Aug, 2021 1 commit
    • Daniel Black's avatar
      mysql_client_test: test_bug40365 gcc-11.2.1 indentation complaint · 3b29315f
      Daniel Black authored
      Observed in 10.4 however same code in 10.2
      
      mariadb-server-10.4/tests/mysql_client_test.c:18209:5: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation]
      18209 |     if (!opt_silent)
            |     ^~
      In file included from mariadb-server-10.4/tests/mysql_client_test.c:38:
      mariadb-server-10.4/tests/mysql_client_fw.c:133:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
        133 |         ((void) ((expr) ? 0 : (die(__FILE__, __LINE__, #expr), 0)))
            |         ^
      mariadb-server-10.4/tests/mysql_client_test.c:18212:7: note: in expansion of macro ‘DIE_UNLESS’
      18212 |       DIE_UNLESS(tm[i].year == 0);
            |       ^~~~~~~~~~
      
      $ /usr/bin/cc --version
      cc (GCC) 11.2.1 20210728 (Red Hat 11.2.1-1)
      3b29315f
  13. 09 Aug, 2021 1 commit
    • Vladislav Vaintroub's avatar
      Fix cmake warning caused by 751ebe44 · f725020f
      Vladislav Vaintroub authored
      CMake Warning (dev) at cmake/plugin.cmake:288 (GET_TARGET_PROPERTY):
        Policy CMP0045 is not set: Error on non-existent target...
      
      Also, fix condition argument in ADD_FEATURE_INFO. It is not a string
      but boolean
      f725020f
  14. 05 Aug, 2021 4 commits
    • Aleksey Midenkov's avatar
      MDEV-18734 ASAN heap-use-after-free upon sorting by blob column from partitioned table · 160d97a4
      Aleksey Midenkov authored
      ha_partition stores records in array of m_ordered_rec_buffer and uses
      it for prio queue in ordered index scan. When the records are restored
      from the array the blob buffers may be already freed or rewritten.
      
      The solution is to take temporary ownership of cached blob buffers via
      String::swap(). When the record is restored from m_ordered_rec_buffer
      the ownership is returned to table fields.
      
      Cleanups:
      
      init_record_priority_queue(): removed needless !m_ordered_rec_buffer
      check as there is same assertion few lines before.
      
      dbug_print_row() for arbitrary row pointer
      160d97a4
    • Daniel Bartholomew's avatar
      bump the VERSION · d9526ae6
      Daniel Bartholomew authored
      d9526ae6
    • Daniel Bartholomew's avatar
      bump the VERSION · b8deb028
      Daniel Bartholomew authored
      b8deb028
    • Yongxin Xu's avatar
      MDEV-24523 Execution of JSON_REPLACE failed on Spider · fa6eaead
      Yongxin Xu authored
      JSON_REPLACE() function executed with an error on Spider SE.
      This patch fixes the problem, and it also fixes the MDEV-24541.
      
      The problem is that Item_func_json_insert::func_name() returns
      the wrong function name "json_update". 
      The Spider SE reconstructs a query based on the return value
      in some cases. Thus, if the return value is wrong, the Spider SE
      may generate a wrong query.
      fa6eaead
  15. 03 Aug, 2021 1 commit
    • Sergei Golubchik's avatar
      cleanup: specifying plugin dependencies in CMakeLists.txt · 175c9fe1
      Sergei Golubchik authored
      1. rename option DEPENDENCIES in MYSQL_ADD_PLUGIN() to DEPENDS
         to be consistent with other cmake commands and macros
      
      2. use this DEPENDS option in plugins
      
      3. add dependencies to the plugin embedded target too
      
      4. plugins don't need to add GenError dependency explicitly,
         all plugins depend on it automatically
      175c9fe1
  16. 02 Aug, 2021 1 commit