1. 05 Oct, 2022 1 commit
    • Marko Mäkelä's avatar
      Remove HAVE_SNPRINTF · df97eb14
      Marko Mäkelä authored
      This fixes up commit 77c184df
      which explicitly specifies that we use ISO/IEC 9899:1999 (C99),
      which includes the snprintf() function.
      df97eb14
  2. 04 Oct, 2022 1 commit
  3. 01 Oct, 2022 3 commits
  4. 30 Sep, 2022 5 commits
  5. 29 Sep, 2022 2 commits
    • Sergei Golubchik's avatar
      fix sporadic failures on main.kill · f9605eb2
      Sergei Golubchik authored
      KILL QUERY ID 0 was sometimes finding con3 that was still in the process
      of disconnecting and had query_id==0 (as it didn't run any queries)
      f9605eb2
    • Igor Babaev's avatar
      MDEV-29361 Infinite recursive calls when detecting CTE dependencies · 28ae3618
      Igor Babaev authored
      This patch resolves the problem of improper name resolution of table
      references to embedded CTEs for some queries. This improper binding could
      lead to
        - infinite sequence of calls of recursive functions
        - crashes due to resolution of null pointers
        - wrong result sets returned by queries
        - bogus error messages
      
      If the definition of a CTE contains with clauses then such CTE is called
      embedding CTE while CTEs from the with clauses are called embedded CTEs.
      If a table reference used in the definition of an embedded CTE cannot be
      resolved within the unit that contains this reference it still may be
      resolved against a CTE definition from the with clause with one of the
      embedding CTEs.
      A table reference can be resolved against a CTE definition if it used in
      the the scope of this definition and it refers to the name of the CTE.
      Table reference t is in the scope of the CTE definition of CTE cte if
      - the definition of cte is an element of a with clause declared as
        RECURSIVE and the reference t belongs either to the unit to which
        this with clause is attached or to one of the elements of this clause
      - the definition of cte is an element of a with clause without RECURSIVE
        specifier and the reference t belongs either to the unit to which this
        with clause is attached or to one of the elements from this clause that
        are placed before the definition of cte.
      If a table reference can be resolved against several CTE definitions then
      it is bound to the most embedded.
      
      The code before this patch not always resolved table references used in
      embedded CTE according to the above rules.
      
      Approved by Oleksandr Byelkin <sanja@mariadb.com>
      28ae3618
  6. 28 Sep, 2022 1 commit
    • Mikhail Chalov's avatar
      Use memory safe snprintf() in Connect Engine and elsewhere (#2210) · 9de9f105
      Mikhail Chalov authored
      Continue with similar changes as done in 19af1890 to replace sprintf(buf, ...)
      with snprintf(buf, sizeof(buf), ...), specifically in the "easy" cases where buf
      is allocated with a size known at compile time.
      
      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.
      9de9f105
  7. 27 Sep, 2022 2 commits
  8. 26 Sep, 2022 7 commits
  9. 23 Sep, 2022 4 commits
    • Marko Mäkelä's avatar
      Fix build without either ENABLED_DEBUG_SYNC or DBUG_OFF · 3c92050d
      Marko Mäkelä authored
      There are separate flags DBUG_OFF for disabling the DBUG facility
      and ENABLED_DEBUG_SYNC for enabling the DEBUG_SYNC facility.
      Let us allow debug builds without DEBUG_SYNC.
      
      Note: For CMAKE_BUILD_TYPE=Debug, CMakeLists.txt will continue to
      define ENABLED_DEBUG_SYNC.
      3c92050d
    • Andrew Hutchings's avatar
      MDEV-25767 Fix CONNECT ODBC WHERE condition crash (#2243) · 66cd1c33
      Andrew Hutchings authored
      When an UPDATE or DELETE was executed with a WHERE condition it would
      crash the MariaDB server. This is because the code expects the WHERE
      condition to have generated a query string but it hasn't.
      
      Also updates the ODBC test results for current MariaDB version.
      66cd1c33
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 13eae188
      Marko Mäkelä authored
      13eae188
    • Marko Mäkelä's avatar
      MDEV-29613 Improve WITH_DBUG_TRACE=OFF · a69cf6f0
      Marko Mäkelä authored
      In commit 28325b08
      a compile-time option was introduced to disable the macros
      DBUG_ENTER and DBUG_RETURN or DBUG_VOID_RETURN.
      
      The parameter name WITH_DBUG_TRACE would hint that it also
      covers DBUG_PRINT statements. Let us do that: WITH_DBUG_TRACE=OFF
      shall disable DBUG_PRINT() as well.
      
      A few InnoDB recovery tests used to check that some output from
      DBUG_PRINT("ib_log", ...) is present. We can live without those checks.
      
      Reviewed by: Vladislav Vaintroub
      a69cf6f0
  10. 22 Sep, 2022 3 commits
  11. 21 Sep, 2022 2 commits
    • Alexey Botchkov's avatar
      Backport fix for MDEV-29352 to 10.3-10.5 · f5e4e154
      Alexey Botchkov authored
      The fix for MDEV-29352 was pushed to 10.6+ but the code causing the
      bug is old and the bug is unlikely to be a recent regression in 10.6.
      So, we apply the fix also to older versions, 10.3-10.5.
      
      The original commit message:
      
      MDEV-29352 SIGSEGV's in strlen and unknown location on optimized builds at SHUTDOWN
      
      When the UDF creation frails to write the newly created UDF into
      the related system table, the UDF is still created in memory.
      
      However, as it is now, the related DLL is unloaded in this case right
      in the mysql_create_function. And failure happens when the UDF handle
      is freed and tries to unload the respective DLL which is still unloaded.
      f5e4e154
    • Ian Gilfillan's avatar
      MDEV-29275 Fix server/Docs typos · b9c1c07f
      Ian Gilfillan authored
      b9c1c07f
  12. 20 Sep, 2022 4 commits
    • Brandon Nesterenko's avatar
      MDEV-28986: rpl tests sometimes failing on freebsd builders · b6bf7cd1
      Brandon Nesterenko authored
      The rpl_row_img_sequence test can fail on resource
      constrained buildbot machines due to its high
      space consumption. To reduce this footprint, the
      test is split into three parts, one for each value
      of the binlog_row_img variable.
      b6bf7cd1
    • Sergei Golubchik's avatar
      MDEV-29480 spider group by handler wrong result on order by aggregate alias · fc8a7655
      Sergei Golubchik authored
      when generating a query to send to a remote server, spider generates
      new aliases for all tables in the query (at least in the group_by handler).
      First it walks all the expressions and create a list of new table aliases
      to use for each field. Then - in init_scan() - it actually generates the
      query, taking for each field the next alias from the list.
      
      It dives recursively into functions, for example, for func(f1) it'll
      go in, will see the field f1 and append to the list the new name for
      the table of f1. This works fine for non-aggregate functions and
      for aggregate functions in the SELECT list. But aggregate functions
      in the ORDER BY are always references to the select list, they never
      need to be qualified with a table name. That is, even if there is a
      field name as an argument of an aggregate function in the ORDER BY
      it must not append a table alias to the list. Let's just skip
      aggregate functions when analyzing ORDER BY for table aliases.
      
      This fixes spider/bugfix.mdev_29008
      (was observed on aarch64, x86, ppc64le, and amd64 --rr)
      fc8a7655
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 0c0a5690
      Marko Mäkelä authored
      0c0a5690
    • Alexander Barkov's avatar
  13. 19 Sep, 2022 5 commits