1. 28 Apr, 2022 1 commit
  2. 27 Apr, 2022 1 commit
  3. 25 Apr, 2022 5 commits
  4. 22 Apr, 2022 1 commit
    • Marko Mäkelä's avatar
      MDEV-27094 Debug builds include useless InnoDB "disabled" options · c009ce7d
      Marko Mäkelä authored
      This is a backport of commit 4489a89c
      in order to remove the test innodb.redo_log_during_checkpoint
      that would cause trouble in the DBUG subsystem invoked by
      safe_mutex_lock() via log_checkpoint(). Before
      commit 7cffb5f6
      these mutexes were of different type.
      
      The following options were introduced in
      commit 2e814d47 (mariadb-10.2.2)
      and have little use:
      
      innodb_disable_resize_buffer_pool_debug had no effect even in
      MariaDB 10.2.2 or MySQL 5.7.9. It was introduced in
      mysql/mysql-server@5c4094cf4971eebab89da4ee4ae92c71f69cd524
      to work around a problem that was fixed in
      mysql/mysql-server@2957ae4f990bf3aed25822b0ce15d3ccad0b54b6
      (but the parameter was not removed).
      
      innodb_page_cleaner_disabled_debug and innodb_master_thread_disabled_debug
      are only used by the test innodb.redo_log_during_checkpoint
      that will be removed as part of this commit.
      
      innodb_dict_stats_disabled_debug is only used by that test,
      and it is redundant because one could simply use
      innodb_stats_persistent=OFF or the STATS_PERSISTENT=0 attribute
      of the table in the test to achieve the same effect.
      c009ce7d
  5. 21 Apr, 2022 8 commits
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 620c55e7
      Marko Mäkelä authored
      620c55e7
    • Marko Mäkelä's avatar
      MDEV-28371 Assertion fold == id.fold() failed in buf_flush_check_neighbor() · fdec842f
      Marko Mäkelä authored
      Due to 32-bit arithmetics, SRV_TMP_SPACE_ID page number 0x200002 would be
      folded to 0, which is incompatible with the assumption that was made in
      commit 7cffb5f6 (MDEV-23399).
      
      page_id_t::fold(): Compute in the native word width instead of uint32_t.
      On 64-bit platforms, an alternative would be to return the 64-bit m_id
      directly, but that was measured to cause a performance regression.
      
      fil_space_t::open(): Invoke fil_node_t::find_metadata() when the
      tablespace is being created. In this way, we will actually detect
      that the temporary tablespace resides on SSD. (During database
      creation, also the system tablespace will correctly be detected as
      residing on SSD.)
      fdec842f
    • Marko Mäkelä's avatar
      WolfSSL v5.2.0-stable · aec85607
      Marko Mäkelä authored
      aec85607
    • Marko Mäkelä's avatar
      Fix clang -Wunused-but-set-variable · f84b5d78
      Marko Mäkelä authored
      f84b5d78
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 39478409
      Marko Mäkelä authored
      39478409
    • Marko Mäkelä's avatar
      MDEV-28369 ibuf_bitmap_mutex is an unnecessary contention point · 4730314a
      Marko Mäkelä authored
      The only purpose of ibuf_bitmap_mutex is to prevent a deadlock between
      two concurrent invocations of ibuf_update_free_bits_for_two_pages_low()
      on the same pair of bitmap pages, but in opposite order.
      The mutex is unnecessarily serializing the execution of the function
      even when it is being invoked on totally different tablespaces.
      To avoid deadlocks, it suffices to ensure that the two page latches
      are being acquired in a deterministic (sorted) order.
      4730314a
    • Daniel Black's avatar
      Merge branch 10.4 into 10.5 · 580cbd18
      Daniel Black authored
      A few of constaint -> constraint
      580cbd18
    • Haidong Ji's avatar
      MDEV-28227 Error message Chinese translation · d7189fbc
      Haidong Ji authored
      - Simplified Chinese translation added
      - Character encoding is gdk
      -- gdk covers more characters
      -- gdk includes both Simplified and Traditional
      -- best option I think, may need to work along with other locale
      settings
      - Other cleanup
      -- Within each error, messages are sorted according to language code
      -- More consistent formatting (8 spaces proceeding each translation)
      -- jps removed as duplicate of jpn translation
      
      This should be a good starting point. More refinement is appreciated,
      and needed down the road.
      
      English "containt" (sic) spelling fixes on ER_FK_NO_INDEX_{CHILD,PARENT}
      resulting in mtr test case adjustments.
      
      Edited/reviewed by Daniel Black
      d7189fbc
  6. 20 Apr, 2022 3 commits
  7. 19 Apr, 2022 2 commits
  8. 18 Apr, 2022 4 commits
    • Aleksey Midenkov's avatar
      MDEV-24176 Server crashes after insert in the table with virtual · 08c7ab40
      Aleksey Midenkov authored
      column generated using date_format() and if()
      
      vcol_info->expr is allocated on expr_arena at parsing stage. Since
      expr item is allocated on expr_arena all its containee items must be
      allocated on expr_arena too. Otherwise fix_session_expr() will
      encounter prematurely freed item.
      
      When table is reopened from cache vcol_info contains stale
      expression. We refresh expression via TABLE::vcol_fix_exprs() but
      first we must prepare a proper context (Vcol_expr_context) which meets
      some requirements:
      
      1. As noted above expr update must be done on expr_arena as there may
      be new items created. It was a bug in fix_session_expr_for_read() and
      was just not reproduced because of no second refix. Now refix is done
      for more cases so it does reproduce. Tests affected: vcol.binlog
      
      2. Also name resolution context must be narrowed to the single table.
      Tested by: vcol.update main.default vcol.vcol_syntax gcol.gcol_bugfixes
      
      3. sql_mode must be clean and not fail expr update.
      
      sql_mode such as MODE_NO_BACKSLASH_ESCAPES, MODE_NO_ZERO_IN_DATE, etc
      must not affect vcol expression update. If the table was created
      successfully any further evaluation must not fail. Tests affected:
      main.func_like
      
      Reviewed by: Sergei Golubchik <serg@mariadb.org>
      08c7ab40
    • Aleksey Midenkov's avatar
      MDEV-24176 Preparations · c02ebf35
      Aleksey Midenkov authored
      1. moved fix_vcol_exprs() call to open_table()
      
      mysql_alter_table() doesn't do lock_tables() so it cannot win from
      fix_vcol_exprs() from there. Tests affected: main.default_session
      
      2. Vanilla cleanups and comments.
      c02ebf35
    • Oleg Smirnov's avatar
      MDEV-24529 Assertion failed in vers_select_conds_t::print · 39cc2545
      Oleg Smirnov authored
      This commit adds processing of SYSTEM_TIME_BEFORE and SYSTEM_TIME_HISTORY
      to vers_select_conds_t::print().
      39cc2545
    • Oleg Smirnov's avatar
      MDEV-27699 ANALYZE FORMAT=JSON fields are incorrect for UNION ALL queries · 7498978e
      Oleg Smirnov authored
      UNION ALL queries are a subject of optimization introduced in MDEV-334
      when creation of a temporary table is skipped.
      While there is a check for this optimization in Explain_union::print_explain()
      there was no such in Explain_union::print_explain_json(). This resulted in
      printing irrelevant data like:
        "union_result": {
          "table_name": "<union2,3>",
          "access_type": "ALL",
          "r_loops": 0,
          "r_rows": null
      in case when creation of the temporary table was actually optimized out.
      This commits adds a check whether the temporary table was actually created
      during the UNION ALL processing and eliminates printing of the irrelevant data.
      7498978e
  9. 16 Apr, 2022 1 commit
  10. 15 Apr, 2022 2 commits
  11. 14 Apr, 2022 2 commits
  12. 13 Apr, 2022 2 commits
  13. 12 Apr, 2022 4 commits
  14. 11 Apr, 2022 4 commits
    • Shunpoco's avatar
      MDEV-27448 MTR returns success (zero) upon invalid option · 767d8d83
      Shunpoco authored
      I change from `exit;` to `exit(1);` on a function `usage()`.
      When we try to run mtr with a wrong option, a function `usage()` is called with the wrong option as its argument. In this case, because the function call `exit` in a first if statement, we get exit status 0.
      767d8d83
    • Rucha Deodhar's avatar
      MDEV-22266: Diagnostics_area::sql_errno() const: Assertion · 3327bb60
      Rucha Deodhar authored
      `m_status == DA_ERROR' failed on SELECT after setting tmp_disk_table_size.
      
      Analysis: Mismatch in number of warnings between "194 warnings" vs
      "64 rows in set" is because of max_error_count variable which has default
      value of 64.
      About the corrupted tables, the error that occurs because of insufficient
      tmp_disk_table_size variable is not reported correctly and we continue to
      execute the statement. But because the previous error (about table being
      full)is not reported correctly, this error moves up the stack and is
      wrongly reported as parsing error later on while parsing frm file of one
      of the information schema table. This parsing error gives corrupted table
      error.
      As for the innodb error, it occurs even when tmp_disk_table_size is not
      insufficient is default but the internal error handler takes care of it
      and the error doesn't show. But when tmp_disk_table_size is insufficient,
      the fatal error which wasn't reported correctly moves up the stack so
      internal error handler is not called. So it shows errors.
      Fix: Report the error correctly.
      3327bb60
    • Alexander Barkov's avatar
      MDEV-27690 Crash on `CHARACTER SET csname COLLATE DEFAULT` in column definition · 833f4486
      Alexander Barkov authored
      This is a temporary fix for 10.2.
      This problem was permanently fixed in 10.9 under terms of MDEV-27743.
      
      This patch should propagate up to 10.8 then null-merged to 10.9.
      833f4486
    • Monty's avatar
      MDEV-28269 Assertion `save_errno' in maria_write or ER_GET_ERRNO · 6891c487
      Monty authored
      The issue was that the value of MARIA_FOUND_WRONG_KEY was a value
      that could be returned by ha_key_cmp.
      
      This was already fixed in MyISAM, now using the same fix in Aria:
      Setting the value to INT_MAX32, which should be impossible in any
      normal cases.
      
      I also fixed so that if there is a wrong key, we now get a proper error
      message and not an assert.
      6891c487