1. 14 Mar, 2024 2 commits
    • Dave Gosselin's avatar
      MDEV-12404 Index condition pushdown on partitioned tables · 817b8d49
      Dave Gosselin authored
      Support index condition pushdown within partitioned tables.
      - ha_partition will pass the pushed index condition into all of the used
        partitions.
        - We require that all of the partitions to handle the pushed index
          condition in the same way.
      - When using ICP, one may read rows (e.g. call h->index_read_map(buf, ...)
        only to buf= table->record[0], for two reasons:
        * Pushed index condition's Item_field objects point into record[0]
        * InnoDB requires this: it calls offset() which assumes record[0].
        So, when using ICP, ha_partition will read partition records to
        table->record[0] and then will copy record away if it needs it to be
        elsewhere.
      817b8d49
    • Sergei Petrunia's avatar
  2. 13 Mar, 2024 1 commit
    • Sergei Petrunia's avatar
      MDEV-18478 ANALYZE for statement should show selectivity of pushed index condition · 01df0496
      Sergei Petrunia authored
      Part#2, variant 2: Make the printed r_ values in JSON output consistent.
      After this patch, ANALYZE output has:
      
      - r_index_rows (NEW) - Observed number of rows before ICP or Rowid Filtering
        checks. This is a per-scan average. like r_rows and "rows" are.
      
      - r_rows (AS BEFORE) - Observed number of rows after ICP and Rowid Filtering.
      
      - r_icp_filtered (NEW) - Observed selectivity of ICP condition.
      
      - (AS BEFORE) observed selectivity of Rowid Filter is in
        $.rowid_filter.r_selectivity_pct
      
      - r_total_filtered - Observed combined selectivity: fraction of rows left
        after applying ICP condition, Rowid Filter, and attached_condition.
        This is now comparable with "filtered" and is printed right after it.
      
      - r_filtered (AS BEFORE) - Observed selectivity of "attached_condition".
      
      Tabular ANALYZE output is not changed. Note that JSON's r_filtered and
      r_rows have the same meanings as before and have the same meaning as in
      tabular output.
      01df0496
  3. 30 Dec, 2023 1 commit
  4. 22 Dec, 2023 1 commit
  5. 21 Dec, 2023 4 commits
  6. 20 Dec, 2023 7 commits
  7. 19 Dec, 2023 11 commits
  8. 18 Dec, 2023 10 commits
  9. 17 Dec, 2023 3 commits
    • Sergei Golubchik's avatar
      MDEV-33046 race condition in InnoDB dict_stats_schedule() · aff5ed39
      Sergei Golubchik authored
      it can be invoked with ms=0. In that case dict_stats_func is
      invoked immediately, it calls dict_stats_process_entry_from_recalc_pool()
      which at the end might try to call dict_stats_schedule() again to
      queue another recalc. And it can happen that the first
      dict_stats_schedule(0) call didn't release dict_stats_mutex yet,
      so the second dict_stats_schedule() won't queue a recalc. And as a
      result the table won't have its stats recalculated at all, not now,
      not later.
      
      This causes innodb.innodb_stats_auto_recalc to fail sporadically.
      
      This commit doesn't fix it but makes it less likely to occur which happens
      to be enough for the test to pass. Proper fix is coming soon.
      aff5ed39
    • Sergei Golubchik's avatar
      Spider cannot run DDL (e.g. create tables) before ddl recovery · 0930eb86
      Sergei Golubchik authored
      use signal_ddl_recovery_done callback for that.
      
      also make the server to call signal_ddl_recovery_done() when loading
      plugins at run-time (so that plugins would't need to detect that
      on their own)
      0930eb86
    • Sergei Golubchik's avatar
      Merge branch '10.5' into 10.6 · e95bba9c
      Sergei Golubchik authored
      e95bba9c