Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: postgresql-cfbot/postgresql
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: cf/5686~1
Choose a base ref
...
head repository: postgresql-cfbot/postgresql
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: cf/5686
Choose a head ref
  • 2 commits
  • 1 file changed
  • 2 contributors

Commits on Apr 15, 2025

  1. Fix an incorrect check in get_memoize_path

    Memoize typically marks cache entries as complete after fully scanning
    the inner side of a join.  However, in the case of unique joins, we
    skip to the next outer tuple as soon as the first matching inner tuple
    is found, leaving no opportunity to scan the inner side to completion.
    To work around that, we mark cache entries as complete after fetching
    the first matching inner tuple in unique joins.
    
    This approach is only safe when all of the join's restriction clauses
    are parameterized; otherwise, there is no guarantee that reading just
    one tuple from the inner side is sufficient.
    
    Currently, we check for this by verifying that the number of clauses
    in ppi_clauses is no less than the number of the join's restriction
    clauses.  However, this check isn't entirely reliable, as ppi_clauses
    includes join clauses available from all outer rels, not just the
    current outer rel.  This means the check could pass even if a
    restriction clause isn't parameterized, as long as another join
    clause, which doesn't belong to the current join, is included in
    ppi_clauses.
    
    To fix this, we explicitly check whether each restriction clause of
    the current join is present in ppi_clauses.
    
    While we're here, remove the XXX comment from the modified code, as
    it's not justified; in certain cases, it's not possible to move a join
    clause to the inner side.
    
    This is arguably a bugfix, but no backpatch given the lack of field
    reports.
    
    Author: Richard Guo <guofenglinux@gmail.com>
    Discussion: https://postgr.es/m/CAMbWs4-8JPouj=wBDj4DhK-WO4+Xdx=A2jbjvvyyTBQneJ1=BQ@mail.gmail.com
    guofengrichard authored and Commitfest Bot committed Apr 15, 2025
    Configuration menu
    Copy the full SHA
    c1aa2e6 View commit details
    Browse the repository at this point in the history
  2. [CF 5686] v2 - Fix an incorrect check in get_memoize_path

    This branch was automatically generated by a robot using patches from an
    email thread registered at:
    
    https://commitfest.postgresql.org/patch/5686
    
    The branch will be overwritten each time a new patch version is posted to
    the thread, and also periodically to check for bitrot caused by changes
    on the master branch.
    
    Patch(es): https://www.postgresql.org/message-id/CAMbWs49nbDOBo_0H6crjewDv=HxtA84rrv-70R+_yhAZom06gQ@mail.gmail.com
    Author(s): Richard Guo
    Commitfest Bot committed Apr 15, 2025
    Configuration menu
    Copy the full SHA
    4d76e30 View commit details
    Browse the repository at this point in the history
Loading