1. 10 Jun, 2020 1 commit
  2. 09 Jun, 2020 7 commits
  3. 08 Jun, 2020 6 commits
  4. 07 Jun, 2020 8 commits
  5. 06 Jun, 2020 14 commits
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · c7a2fb1e
      Marko Mäkelä authored
      c7a2fb1e
    • Igor Babaev's avatar
      MDEV-22748 MariaDB crash on WITH RECURSIVE large query · e9dbbf11
      Igor Babaev authored
      This bug is the same as the bug MDEV-17024. The crashes caused by these
      bugs were due to premature cleanups of the unit specifying recursive CTEs
      that happened in some cases when there were several outer references the
      same recursive CTE.
      The problem of premature cleanups for recursive CTEs could be already
      resolved by the correction in TABLE_LIST::set_as_with_table() introduced
      in this patch. ALL other changes introduced by the patches for MDEV-17024
      and MDEV-22748 guarantee that this clean-ups are performed as soon as
      possible: when the select containing the last outer reference to a
      recursive CTE is being cleaned up the specification of the recursive CTE
      should be cleaned up as well.
      e9dbbf11
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 4612cb88
      Marko Mäkelä authored
      4612cb88
    • Marko Mäkelä's avatar
      MDEV-22817: Skip the test in --embedded · be0c46eb
      Marko Mäkelä authored
      be0c46eb
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · b3e395a1
      Marko Mäkelä authored
      b3e395a1
    • Marko Mäkelä's avatar
      MDEV-22721 fixup for 32-bit GCC · e14ffd85
      Marko Mäkelä authored
      lock_check_trx_id_sanity(): Because the argument of UNIV_LIKELY
      or __builtin_expect() can be less than sizeof(trx_id_t) on 32-bit
      systems, it cannot reliably perform an implicit comparison to 0.
      e14ffd85
    • Marko Mäkelä's avatar
      MDEV-22817: Add a test case · 187b9c92
      Marko Mäkelä authored
      187b9c92
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 0df01ccb
      Marko Mäkelä authored
      0df01ccb
    • Marko Mäkelä's avatar
      MDEV-22721: Fix GCC 5.3.1 -Wconversion · a08a8bc1
      Marko Mäkelä authored
      a08a8bc1
    • Alexander Barkov's avatar
      MDEV-20305 Data loss on DOUBLE and DECIMAL conversion to INT · 79cdd7e7
      Alexander Barkov authored
      Bit operators (~ ^ | & << >>) and the function BIT_COUNT()
      always called val_int() for their arguments.
      It worked correctly only for INT type arguments.
      
      In case of DECIMAL and DOUBLE arguments it did not work well:
      the argument values were truncated to the maximum SIGNED BIGINT value
      of 9223372036854775807.
      
      Fixing the code as follows:
      
      - If the argument if of an integer data type,
        it works using val_int() as before.
      
      - If the argument if of some other data type, it gets the argument value
        using val_decimal(), to avoid truncation, and then converts the result
        to ulonglong.
      
      Using Item_handled_func to switch between the two approaches easier.
      
      As an additional advantage, with Item_handled_func it will be easier
      to implement overloading in the future, so data type plugings will be able
      to define their own behavioir of bit operators and BIT_COUNT().
      
      Moving the code from the former val_int() implementations
      as methods to Longlong_null, to avoid code duplication in the
      INT and DECIMAL branches.
      79cdd7e7
    • Marko Mäkelä's avatar
      MDEV-22818 Server crash on corrupted ROW_FORMAT=COMPRESSED page · 1bd5b75c
      Marko Mäkelä authored
      page_zip_fields_decode(): Do not dereference index=NULL.
      Instead, return NULL early. The only caller does not care
      about the values of output parameters in that case.
      
      This bug was introduced in MySQL 5.7.6 by
      mysql/mysql-server@9eae0edb7a8e4004328e61157f5f3b39cebe1b2b
      and in MariaDB 10.2.2 by
      commit 2e814d47.
      
      Thanks to my son for pointing this out after investigating
      the output of a static analysis tool.
      1bd5b75c
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · a793ae5b
      Marko Mäkelä authored
      a793ae5b
    • Marko Mäkelä's avatar
      MDEV-22816 Assertion `node->space == fil_system.sys_space' failed in fil_aio_callback · 62516c53
      Marko Mäkelä authored
      fil_aio_callback(): Remove a bogus assertion that was added in
      commit b1ab211d (MDEV-15053).
      We will have !bpage for any write by buf_flush_freed_page().
      62516c53
    • Marko Mäkelä's avatar
      MDEV-15053 fixup: MSAN use-of-uninitialized-value · 095d656d
      Marko Mäkelä authored
      buf_page_init_for_read(): Initialize the output parameter of
      buf_buddy_alloc().
      095d656d
  6. 05 Jun, 2020 4 commits
    • Eugene Kosov's avatar
      fix compilation with VS2019, preview of 16.7 version · 7a695d8a
      Eugene Kosov authored
      Compiler tells something about argument-dependent lookup. I do not
      understand how that ADL works. But I know that such operators should
      be free functions, instead of methods:
      http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Ro-symmetric
      
      Such syntax defines 'friend' free functions.
      7a695d8a
    • Igor Babaev's avatar
      MDEV-22042 Server crash in Item_field::print on ANALYZE FORMAT=JSON · a8c200c7
      Igor Babaev authored
      When processing a query with a recursive CTE a temporary table is used for
      each recursive reference of the CTE. As any temporary table it uses its own
      mem-root for table definition structures. Due to specifics of the current
      implementation of ANALYZE stmt command this mem-root can be freed only at
      the very of query processing. Such deallocation of mem-root memory happens
      in close_thread_tables(). The function looks through the list of the tmp
      tables rec_tables attached to the THD of the query and frees corresponding
      mem-roots. If the query uses a stored function then such list is created
      for each query of the function. When a new rec_list has to be created the
      old one has to be saved and then restored at the proper moment.
      The bug occurred because only one rec_list for the query containing CTE was
      created. As a result close_thread_tables() freed tmp mem-roots used for
      rec_tables prematurely destroying some data needed for the output produced
      by the ANALYZE command.
      a8c200c7
    • Julius Goryavsky's avatar
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 6877ef9a
      Marko Mäkelä authored
      6877ef9a