1. 17 Nov, 2023 3 commits
    • Yuchen Pei's avatar
      019b7efc
    • Yuchen Pei's avatar
      MDEV-26247 Clean up spider_fields · d91ca5e7
      Yuchen Pei authored
      Spider gbh query rewrite should get table for fields in a simple way.
      Add a method spider_fields::find_table that searches its table holders
      to find table for a given field. This way we will be able to get rid
      of the first pass during the gbh creation where field_chains and
      field_holders are created.
      
      We also check that the field belongs to a spider table while walking
      through the query, so we could remove
      all_query_fields_are_query_table_members(). However, this requires an
      earlier creation of the table_holder so that tables are added before
      checking. We do that, and in doing so, also decouple table_holder and
      spider_fields
      
      Remove unused methods and fields. Add comments.
      d91ca5e7
    • Yuchen Pei's avatar
      MDEV-26247 Remove some unused spider methods · d7969980
      Yuchen Pei authored
      Two methods from spider_fields. There are probably more of these
      conn_holder related methods that can be removed
      
      reappend_tables_part()
      reappend_tables()
      d7969980
  2. 14 Nov, 2023 2 commits
  3. 13 Nov, 2023 4 commits
  4. 08 Nov, 2023 10 commits
  5. 07 Nov, 2023 1 commit
  6. 06 Nov, 2023 1 commit
  7. 04 Nov, 2023 1 commit
  8. 02 Nov, 2023 1 commit
    • Rucha Deodhar's avatar
      MDEV-32007: JSON_VALUE and JSON_EXTRACT doesn't handle dash (-) · 9cc179cc
      Rucha Deodhar authored
      as first character in key
      
      Analysis:
      While parsing the path, if '-' is encountered as a part of the key,
      the state of the parser changes to error. Hence NULL is returned eventually.
      
      Fix:
      If '-' encountered as part of the key, change the state appropriately to
      continue scanning the key.
      9cc179cc
  9. 01 Nov, 2023 1 commit
  10. 31 Oct, 2023 1 commit
  11. 30 Oct, 2023 4 commits
  12. 28 Oct, 2023 3 commits
  13. 27 Oct, 2023 7 commits
    • Oleksandr Byelkin's avatar
      1cd8a5ef
    • Sergei Petrunia's avatar
      MDEV-32351: Significant slowdown with outer joins: Test coverage · 9bf2e5e3
      Sergei Petrunia authored
      Make ANALYZE FORMAT=JSON print block-nl-join.r_unpack_ops when
      analyze_print_r_unpack_ops debug flag is set.
      
      Then, add a testcase.
      9bf2e5e3
    • Sergei Petrunia's avatar
      ANALYZE FORMAT=JSON: Backport block-nl-join.r_unpack_time_ms from 11.0 +fix MDEV-30830. · 4ed59006
      Sergei Petrunia authored
      Also fix it to work with hashed join (MDEV-30830).
      
      Reviewed by: Monty <monty@mariadb.org>
      4ed59006
    • Igor Babaev's avatar
      MDEV-32351 Significant slowdown for query with many outer joins · 954a6dec
      Igor Babaev authored
      This patch fixes a performance regression introduced in the patch for the
      bug MDEV-21104. The performance regression could affect queries for which
      join buffer was used for an outer join such that its on expression from
      which a conjunctive condition depended only on outer tables can be
      extracted. If the number of records in the join buffer for which this
      condition was false greatly exceeded the number of other records the
      slowdown could be significant.
      
      If there is a conjunctive condition extracted from the ON expression
      depending only on outer tables this condition is evaluated when interesting
      fields of each survived record of outer tables are put into the join buffer.
      Each such set of fields for any join operation is supplied with a match
      flag field used to generate null complemented rows. If the result of the
      evaluation of the condition is false the flag is set to MATCH_IMPOSSIBLE.
      When looking in the join buffer for records matching a record of the
      right operand of the outer join operation the records with such flags
      are not needed to be unpacked into record buffers for evaluation of on
      expressions.
      
      The patch for MDEV-21104 fixing some problem of wrong results when
      'not exists' optimization by mistake broke the code that allowed to
      ignore records with the match flag set to MATCH_IMPOSSIBLE when looking
      for matching records. As a result such records were unpacked for each
      record of the right operand of the outer join operation. This caused
      significant execution penalty in some cases.
      
      One of the test cases added in the patch can be used only for demonstration
      of the restored performance for the reported query. The second test case is
      needed to demonstrate the validity of the fix.
      954a6dec
    • Oleksandr Byelkin's avatar
      fixed typo · 11abc219
      Oleksandr Byelkin authored
      11abc219
    • Marko Mäkelä's avatar
      MDEV-32578 row_merge_fts_doc_tokenize() handles parser plugin inconsistently · 15ae97b1
      Marko Mäkelä authored
      When mysql/mysql-server@0c954c2289a75d90d1088356b1092437ebf45a1d
      added a plugin interface for FULLTEXT INDEX tokenization to MySQL 5.7,
      fts_tokenize_ctx::processed_len got a second meaning, which is only
      partly implemented in row_merge_fts_doc_tokenize().
      
      This inconsistency could cause a crash when using FULLTEXT...WITH PARSER.
      A test case that would crash MySQL 8.0 when using an n-gram parser and
      single-character words would fail to crash in MySQL 5.7, because the
      buf_full condition in row_merge_fts_doc_tokenize() was not met.
      
      This change is inspired by
      mysql/mysql-server@38e9a0779aeea2d197c727e306a910c56b26a47c
      that appeared in MySQL 5.7.44.
      15ae97b1
    • Andrei's avatar
      MDEV-32593 Assertion failure upon CREATE SEQUENCE · 728bca44
      Andrei authored
      A recently added by MDEV-32593 assert conditions are corrected.
      728bca44
  14. 26 Oct, 2023 1 commit
    • Teemu Ollakka's avatar
      MDEV-32282: Galera node remains paused after interleaving FTWRLs · ef7fc586
      Teemu Ollakka authored
      After two concurrent FTWRL/UNLOCK TABLES, the node stays in paused state
      and the following CREATE TABLE fails with
      
        ER_UNKNOWN_COM_ERROR (1047): Aborting TOI: Replication paused on
        node for FTWRL/BACKUP STAGE.
      
      The cause is the use of global `wsrep_locked_seqno` to determine
      if the node should be resumed on UNLOCK TABLES. In some executions
      the `wsrep_locked_seqno` is cleared by the first UNLOCK TABLES
      after the second FTWRL gets past `make_global_read_lock_block_commit()`.
      
      As a fix, use `thd->wsrep_desynced_backup_stage` to determine
      if the thread should resume the node on UNLOCK TABLES.
      
      Add MTR test galera.galera_ftwrl_concurrent to reproduce the
      race. The test contains also cases for BACKUP STAGE which
      uses similar mechanism for desyncing and pausing the node.
      Signed-off-by: default avatarJulius Goryavsky <julius.goryavsky@mariadb.com>
      ef7fc586