Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release-23.2: opt: fix inverted index constrained scans for equality filters #112791

Merged
merged 2 commits into from
Oct 20, 2023

Commits on Oct 18, 2023

  1. opt: fix inverted index constrained scans for equality filters

    This commit fixes a bug introduced in #101178 that allows the optimizer
    to generated inverted index scans on columns that are not filtered by
    the query. For example, an inverted index over the column `j1` could be
    scanned for a filter involving a different column, like `j2 = '5'`. The
    bug is caused by a simple omission of code that must check that the
    column in the filter is an indexed column.
    
    Fixes #111963
    
    There is no release note because this bug is not present in any
    releases.
    
    Release note: None
    mgartner committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    b7c629a View commit details
    Browse the repository at this point in the history
  2. randgen: generate single-column indexes more often

    This commit makes `randgen` more likely to generate single-column
    indexes. It is motivated by the bug #111963, which surprisingly lived on
    the master branch for sixth months without being detected. It's not
    entirely clear why TLP or other randomized tests did not catch the bug,
    which has such a simple reproduction.
    
    One theory is that indexes tend to be multi-column and constrained scans
    on multi-column inverted indexes are not commonly planned for randomly
    generated queries because the set of requirements to generate the scan
    are very specific: the query must hold each prefix column constant, e.g.
    `a=1 AND b=2 AND j='5'::JSON`. The likelihood of randomly generating
    such an expression may be so low that the bug was not caught.
    
    By making 50% of indexes single-column, this bug may have been more
    likely to be caught because only the inverted index column needs to be
    constrained by an equality filter.
    
    Release note: None
    mgartner committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    99f5f57 View commit details
    Browse the repository at this point in the history