[CBRD-26746] Histogram-based selectivity (L1/L2) + eqjoin/iscan NDV fixes - #30
[CBRD-26746] Histogram-based selectivity (L1/L2) + eqjoin/iscan NDV fixes#30soheejung-cs wants to merge 4 commits into
Conversation
Foundational layer of the histogram optimizer split (stacked PR 1/3): histogram read + planner modularization (query_planner_selectivity.c) + equality/range/MCV/ NULL selectivity. Excludes LIKE/pattern selectivity (PR L2) and join-cardinality cost (PR L3), which stack on top. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> (cherry picked from commit 009d070)
Stacked on L1 (PR 2/3). Adds histogram/pattern-based LIKE selectivity: histogram_get_like_selectivity (+like_match_string) and the qo_like_selectivity histogram path. query_planner.c (join-cardinality cost) stays at L1; that is PR L3. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> (cherry picked from commit e2a610a)
L1 moved the planner cost constants into query_planner_constants.h, but the reservoir-sampling base still defined them locally in query_planner.c. Every value matched except ISCAN_OID_ACCESS_OVERHEAD, which the base had tuned 20 -> 5 (favor index scan when low/stale leading-column NDV inflates sel via 1/pkeys[0]) -> -Werror redefinition. Keep the single source of truth in query_planner_constants.h with the base's tuned value (5) + rationale, and drop the now-redundant local block from query_planner.c. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013RmtW1TAXJguQNWV4hT8Ww
- histogram_get_eqjoin_selectivity: read the MCV list (mcv_count/mcv_hi/mcv_freq) instead of buckets. The reservoir v2 blob stores MCVs in a separate list, so the old bucket-read missed them entirely (e.g. an all-MCV column like role_type.id gave join selectivity 0). Floor at 1/max(NDV) to avoid degenerate 0 collapse. - qo_iscan_cost: use the reservoir column NDV (QO_SEG_INFO(seg)->ndv) for the leading single index column instead of the sampled B+tree key count, which over-estimates distinct keys for low-NDV sorted indexes and under-costs the scan. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013RmtW1TAXJguQNWV4hT8Ww
There was a problem hiding this comment.
Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit
code-style (indent, astyle, google-java-format)
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| @@ -150,9 +134,9 @@ static void qo_follow_info (QO_PLAN *, FILE *, int); | |||
| static void qo_worst_info (QO_PLAN *, FILE *, int); | |||
|
|
|||
| void qo_plan_lite_print (QO_PLAN *, FILE *, int); | |||
| static void qo_plan_del_ref_func (QO_PLAN * plan, void *ignore); | |||
| static void qo_plan_del_ref_func (QO_PLAN *plan, void *ignore); | |||
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| static void qo_plan_del_ref_func (QO_PLAN *plan, void *ignore); | |
| static void qo_plan_del_ref_func (QO_PLAN * plan, void *ignore); |
|
|
||
| static void qo_generic_walk (QO_PLAN *, void (*)(QO_PLAN *, void *), void *, void (*)(QO_PLAN *, void *), void *); | ||
| static void qo_generic_walk (QO_PLAN *, void (*) (QO_PLAN *, void *), void *, void (*) (QO_PLAN *, void *), void *); |
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| static void qo_generic_walk (QO_PLAN *, void (*) (QO_PLAN *, void *), void *, void (*) (QO_PLAN *, void *), void *); | |
| static void qo_generic_walk (QO_PLAN *, void (*)(QO_PLAN *, void *), void *, void (*)(QO_PLAN *, void *), void *); |
| static void qo_sort_walk (QO_PLAN *, void (*) (QO_PLAN *, void *), void *, void (*) (QO_PLAN *, void *), void *); | ||
| static void qo_join_walk (QO_PLAN *, void (*) (QO_PLAN *, void *), void *, void (*) (QO_PLAN *, void *), void *); | ||
| static void qo_follow_walk (QO_PLAN *, void (*) (QO_PLAN *, void *), void *, void (*) (QO_PLAN *, void *), void *); |
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| static void qo_sort_walk (QO_PLAN *, void (*) (QO_PLAN *, void *), void *, void (*) (QO_PLAN *, void *), void *); | |
| static void qo_join_walk (QO_PLAN *, void (*) (QO_PLAN *, void *), void *, void (*) (QO_PLAN *, void *), void *); | |
| static void qo_follow_walk (QO_PLAN *, void (*) (QO_PLAN *, void *), void *, void (*) (QO_PLAN *, void *), void *); | |
| static void qo_sort_walk (QO_PLAN *, void (*)(QO_PLAN *, void *), void *, void (*)(QO_PLAN *, void *), void *); | |
| static void qo_join_walk (QO_PLAN *, void (*)(QO_PLAN *, void *), void *, void (*)(QO_PLAN *, void *), void *); | |
| static void qo_follow_walk (QO_PLAN *, void (*)(QO_PLAN *, void *), void *, void (*)(QO_PLAN *, void *), void *); |
| @@ -199,15 +194,16 @@ static void qo_dump_planvec (QO_PLANVEC *, FILE *, int); | |||
| static void qo_dump_info (QO_INFO *, FILE *); | |||
| static void qo_dump_planner_info (QO_PLANNER *, QO_PARTITION *, FILE *); | |||
|
|
|||
| static void qo_get_term_hit_prob (QO_TERM * term, QO_INFO * head_info, QO_INFO * tail_info, QO_ENV * env, | |||
| static void qo_get_term_hit_prob (QO_TERM *term, QO_INFO *head_info, QO_INFO *tail_info, QO_ENV *env, | |||
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| static void qo_get_term_hit_prob (QO_TERM *term, QO_INFO *head_info, QO_INFO *tail_info, QO_ENV *env, | |
| static void qo_get_term_hit_prob (QO_TERM * term, QO_INFO * head_info, QO_INFO * tail_info, QO_ENV * env, |
| double *out_head_factor, double *out_tail_factor); | ||
| static void planner_visit_node (QO_PLANNER *, QO_PARTITION *, PT_HINT_ENUM, QO_NODE *, QO_NODE *, BITSET *, BITSET *, | ||
| BITSET *, BITSET *, BITSET *, BITSET *, BITSET *, int); | ||
| static double planner_nodeset_join_cost (QO_PLANNER *, BITSET *); | ||
| static void planner_permutate (QO_PLANNER *, QO_PARTITION *, PT_HINT_ENUM, QO_NODE *, BITSET *, BITSET *, BITSET *, | ||
| BITSET *, BITSET *, BITSET *, BITSET *, int, int *); | ||
|
|
||
| static QO_PLAN *qo_find_best_nljoin_inner_plan_on_info (QO_PLAN *, QO_INFO *, JOIN_TYPE, int); | ||
| static QO_PLAN *qo_find_best_nljoin_inner_plan_on_info (QO_PLAN *, QO_INFO *, JOIN_TYPE, BITSET *, BITSET *, | ||
| BITSET *, int); |
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| BITSET *, int); | |
| BITSET *, int); |
| @@ -728,7 +711,7 @@ qo_get_group_ndv (QO_PLAN * plan, SORT_TYPE sort_type) | |||
| * plan(in): | |||
| */ | |||
| static void | |||
| qo_plan_compute_cost (QO_PLAN * plan) | |||
| qo_plan_compute_cost (QO_PLAN *plan) | |||
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| qo_plan_compute_cost (QO_PLAN *plan) | |
| qo_plan_compute_cost (QO_PLAN * plan) |
| @@ -752,7 +735,7 @@ qo_plan_compute_cost (QO_PLAN * plan) | |||
| * original select node. | |||
| */ | |||
|
|
|||
| for (i = bitset_iterate (&(plan->subqueries), &iter); i != -1; i = bitset_next_member (&iter)) | |||
| for (i = bitset_iterate (& (plan->subqueries), &iter); i != -1; i = bitset_next_member (&iter)) | |||
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| for (i = bitset_iterate (& (plan->subqueries), &iter); i != -1; i = bitset_next_member (&iter)) | |
| for (i = bitset_iterate (&(plan->subqueries), &iter); i != -1; i = bitset_next_member (&iter)) |
| @@ -762,7 +745,7 @@ qo_plan_compute_cost (QO_PLAN * plan) | |||
| } | |||
|
|
|||
| /* This computes the specific cost characteristics for each plan. */ | |||
| (*(plan->vtbl)->cost_fn) (plan); | |||
| (* (plan->vtbl)->cost_fn) (plan); | |||
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| (* (plan->vtbl)->cost_fn) (plan); | |
| (*(plan->vtbl)->cost_fn) (plan); |
| @@ -782,7 +765,7 @@ qo_plan_compute_cost (QO_PLAN * plan) | |||
| * subq_io_cost(in): | |||
| */ | |||
| static void | |||
| qo_plan_compute_subquery_cost (PT_NODE * subquery, double *subq_cpu_cost, double *subq_io_cost) | |||
| qo_plan_compute_subquery_cost (PT_NODE *subquery, double *subq_cpu_cost, double *subq_io_cost) | |||
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| qo_plan_compute_subquery_cost (PT_NODE *subquery, double *subq_cpu_cost, double *subq_io_cost) | |
| qo_plan_compute_subquery_cost (PT_NODE * subquery, double *subq_cpu_cost, double *subq_io_cost) |
| @@ -842,6 +825,22 @@ qo_plan_compute_subquery_cost (PT_NODE * subquery, double *subq_cpu_cost, double | |||
| return; | |||
| } | |||
|
|
|||
| static double | |||
| qo_sum_bitset_term_cost_weights (QO_ENV *env, BITSET *terms) | |||
There was a problem hiding this comment.
[code-style (indent, astyle, google-java-format)] reported by reviewdog 🐶
| qo_sum_bitset_term_cost_weights (QO_ENV *env, BITSET *terms) | |
| qo_sum_bitset_term_cost_weights (QO_ENV * env, BITSET * terms) |
Draft (demo/review). Built on
feature/reservoir-sampling.Adds vs reservoir-sampling (4 commits):
query_planner_selectivity.c).histogram_get_eqjoin_selectivityreads the MCV list (not buckets): reservoir v2 stores MCVs separately, so the old bucket-read gave join selectivity 0 for all-MCV columns (e.g. role_type.id). Floored at 1/max(NDV).qo_iscan_costuses reservoir column NDV (QO_SEG_INFO->ndv) for the leading index column instead of the sampled B+tree key count (JOB 29a: role_id stored NDV 587K vs actual 11).JOB: large execution-time gains; remaining plan-time items under investigation.