1. 16 Feb, 2022 1 commit
    • Marko Mäkelä's avatar
      MDEV-27634 innodb_zip tests failing on s390x · cf574cf5
      Marko Mäkelä authored
      Some GNU/Linux distributions ship a zlib that is modified to use
      the s390x DFLTCC instruction. That modification would essentially
      redefine compressBound(sourceLen) as (sourceLen * 16 + 2308) / 8 + 6.
      
      Let us relax the tests for InnoDB ROW_FORMAT=COMPRESSED to cope with
      such a weaker compression guarantee.
      
      create_table_info_t::row_size_is_acceptable(): Remove a bogus debug-only
      assertion that would fail to hold for the test innodb_zip.bug36169.
      The function page_zip_empty_size() may indeed return 0.
      cf574cf5
  2. 15 Feb, 2022 2 commits
    • Brandon Nesterenko's avatar
      MDEV-16091: Seconds_Behind_Master spikes to millions of seconds · cdf19cd6
      Brandon Nesterenko authored
      The rpl.rpl_seconds_behind_master_spike test would sometimes
      timeout or take a very long time to complete. This happened
      because an MTR DEBUG_SYNC signal would be lost due to a
      subsequent call to RESET. I.e., the slave SQL thread would
      be paused due to the WAIT_FOR signal being lost, resulting in
      either a failed test if the `select master_pos_wait` timeout
      occurs first, or a very long run-time if the DBUG_SYNC timeout
      occurs first.
      
      The fix ensures that the MTR signal is processed by the slave
      SQL thread before issuing the call to RESET
      
      Reviewed By:
      ============
      Andrei Elkin <andrei.elkin@mariadb.com>
      cdf19cd6
    • Ustun Ozgur's avatar
      Fix typo in mysqadmin manpage · b557f263
      Ustun Ozgur authored
      b557f263
  3. 12 Feb, 2022 1 commit
  4. 11 Feb, 2022 2 commits
    • Marko Mäkelä's avatar
      Disable innodb_gis.rtree_compress2 · 1a7573d5
      Marko Mäkelä authored
      1a7573d5
    • Vlad Lesin's avatar
      MDEV-27746 Wrong comparision of BLOB's empty preffix with non-preffixed BLOB... · 3b10e8f8
      Vlad Lesin authored
      MDEV-27746 Wrong comparision of BLOB's empty preffix with non-preffixed BLOB causes rows count mismatch for clustered and secondary indexes during non-locking read
      
      row_sel_sec_rec_is_for_clust_rec() treats empty BLOB prefix field in
      secondary index as a field equal to any external BLOB field in clustered
      index. Row_sel_get_clust_rec_for_mysql::operator() doesn't zerro out
      clustered record pointer in row_search_mvcc(), and row_search_mvcc()
      thinks that delete-marked secondary index record has visible for
      "CHECK TABLE"'s read view old-versioned clustered index record, and
      row_scan_index_for_mysql() counts it as a row.
      
      The fix is to execute row_sel_sec_rec_is_for_blob() in
      row_sel_sec_rec_is_for_clust_rec() if clustered field contains BLOB's
      reference.
      3b10e8f8
  5. 10 Feb, 2022 5 commits
    • Sergei Petrunia's avatar
      MDEV-25636: Bug report: abortion in sql/sql_parse.cc:6294 · 3a525694
      Sergei Petrunia authored
      The asserion failure was caused by this query
      
        select /*id=1*/ from t1
        where
         col= ( select /*id=2*/ from ... where corr_cond1
                union
                select /*id=4*/ from ... where corr_cond2)
      
      Here,
      - select with id=2 was correlated due to corr_cond1.
      - select with id=4 was initially correlated due to corr_cond2, but then
        the optimizer optimized away the correlation, making the select with id=4
        uncorrelated.
      
      However, since select with id=2 remained correlated, the execution had to
      re-compute the whole UNION. When it tried to execute select with id=4, it
      hit an assertion  (join buffer already free'd).
      
      This is because select with id=4 has freed its execution structures after
      it has been executed once. The select is uncorrelated, so it did not expect
      it would need to be executed for the second time.
      
      Fixed this by adding this logic in
      st_select_lex::optimize_unflattened_subqueries():
      
        If a member of a UNION is correlated, mark all its members as
        correlated, so that they are prepared to be executed multiple times.
      3a525694
    • Sergei Golubchik's avatar
      MDEV-26351 segfault - (MARIA_HA *) 0x0 in ha_maria::extra · 9e2c26b0
      Sergei Golubchik authored
      don't let Aria create a table that it cannot open
      9e2c26b0
    • Sergei Golubchik's avatar
      MDEV-26351 segfault - (MARIA_HA *) 0x0 in ha_maria::extra · 1b8bb441
      Sergei Golubchik authored
      use the correct check. before invoking handler methods we
      need to know that the table was opened, not only created.
      1b8bb441
    • Oleksandr Byelkin's avatar
      MDEV-25766 Unused CTE lead to a crash in find_field_in_tables/find_order_in_list · 0168d1ed
      Oleksandr Byelkin authored
      Do not assume that subquery Item always present.
      0168d1ed
    • Monty's avatar
      MDEV-27789 mysql_upgrade / mariadb-upgrade in 10.6.6 is putting password in host argument · ad1fb069
      Monty authored
      Removed all dependencies of command line arguments based on positions in
      an array (this kind of code should never have been written).
      Instead use option names, which are stable.
      
      Reviewer: Sergei Golubchik
      ad1fb069
  6. 09 Feb, 2022 1 commit
  7. 08 Feb, 2022 3 commits
  8. 07 Feb, 2022 1 commit
    • Sergei Petrunia's avatar
      MDEV-17785: Window functions not working in ONLY_FULL_GROUP_BY mode · 5c89386f
      Sergei Petrunia authored
      (Backport Varun Gupta's patch + edit the commit comment)
      
      Name resolution code produced errors for valid queries with window
      functions (but not for queries which used aggregate functions as
      window functions).
      
      Name resolution code worked incorrectly, because window function
      objects had is_window_func_sum_expr()=false. This was so, because
      mark_as_window_func_sum_expr() was only called for aggregate functions
      used as window functions.
      
      The fix is to call it for any window function.
      5c89386f
  9. 02 Feb, 2022 1 commit
  10. 29 Jan, 2022 2 commits
    • Sergei Golubchik's avatar
      e2b50213
    • Sergei Golubchik's avatar
      ASAN/valgrind errors in connect.misc test · 8afcda93
      Sergei Golubchik authored
      accessing freed memory.
      Before XMLCOL::WriteColumn() Tdbp->Clist gets assigned
      a nodelist in
      
            Clist = RowNode->SelectNodes(g, Colname, Clist);
      
      which is RowNode->Doc->Xop->nodesetval.
      
      In XMLCOL::WriteColumn()
      
              ValNode = ColNode->SelectSingleNode(g, Xname, Vxnp);
      
      calls LIBXMLDOC::GetNodeList() again, which frees the previous
      XPath object Xop and replaces it with a new one.
      
      In this case RowNode->Doc == ColNode->Doc, so Clist->Listp
      points to a freed memory now.
      8afcda93
  11. 28 Jan, 2022 3 commits
    • Sergei Golubchik's avatar
    • Monty's avatar
      Fixed result for embedded server · a1f630cc
      Monty authored
      - Revert wrongly record embedded result files. These were either
        recorded with normal server (not embedded) or an embedded server
        with not default compile option. This can be seen that the committed
        result file had replication variables which should never happen.
      
      - Reverted back change of include/is_embedded.inc. One cannot check for
        $MYSQL_EMBEDDED as this only tells if there exists an embedded
        server, not if the current server we are testing is the embedded
        server. This could easily be verified by doing
        'mtr sys_vars.sysvars_server_embedded'. This would fail with a wrong
        result instead of being marked as skipped as --embedded was not
        used.
      a1f630cc
    • Monty's avatar
      Fixed wrong function call in embedded server · 7045ec27
      Monty authored
      This happens when compiled with HAVE_EMBEDDED_PRIVILEGE_CONTROL.
      There is a lot of other problems with the above option that should
      be fixed at some point
      7045ec27
  12. 27 Jan, 2022 6 commits
  13. 26 Jan, 2022 7 commits
  14. 25 Jan, 2022 2 commits
    • Brandon Nesterenko's avatar
      MDEV-16091: Seconds_Behind_Master spikes to millions of seconds · 8b15d0d4
      Brandon Nesterenko authored
      This patch addresses two problems with
      rpl.rpl_seconds_behind_master_spike
      
      First, --sync_slave_with_master / select master_pos_wait
      seems to have a bug where it will hang after all master
      events have been executed.
      
      This patch removes the sync_slave_with_master command from
      the test, where it not required anyway as it is used to
      declare explicit cleanup
      
      Second, the test uses timestamps to ensure that the
      Seconds_Behind_Master value does not point to a time too
      far in the past. The checks of these timestamps were
      too strict, because they could be slightly inconsistent
      with the master and the SBM would be counted as invalid
      when it was actually correct.
      
      To fix this, a slight buffer was added to the check
      to ensure the value is valid but still does not point
      too far in the past
      
      Reviewed By:
      ===========
      Andrei Elkin <andrei.elkin@mariadb.com>
      8b15d0d4
    • Alexey Botchkov's avatar
      MDEV-25917 create table like fails if source table is partitioned and engine... · 50e66db0
      Alexey Botchkov authored
      MDEV-25917 create table like fails if source table is partitioned and engine is myisam or aria with data directory.
      
      Create table like removes data_file_path/index_file_path from the
      thd->work_partition_info.
      50e66db0
  15. 24 Jan, 2022 2 commits
  16. 22 Jan, 2022 1 commit