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/3733~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/3733
Choose a head ref
  • 7 commits
  • 17 files changed
  • 3 contributors

Commits on Mar 28, 2025

  1. Configuration menu
    Copy the full SHA
    a1dd9b3 View commit details
    Browse the repository at this point in the history
  2. amcheck: Move common routines into a separate module

    Before performing checks on an index, we need to take some safety
    measures that apply to all index AMs. This includes:
    
    * verifying that the index can be checked - Only selected AMs are
    supported by amcheck (right now only B-Tree). The index has to be
    valid and not a temporary index from another session.
    
    * changing (and then restoring) user's security context
    
    * obtaining proper locks on the index (and table, if needed)
    
    * discarding GUC changes from the index functions
    
    Until now this was implemented in the B-Tree amcheck module, but it's
    something every AM will have to do. So relocate the code into a new
    module verify_common for reuse.
    
    The shared steps are implemented by amcheck_lock_relation_and_check(),
    receiving the AM-specific verification as a callback. Custom parameters
    may be supplied using a pointer.
    
    Author: Andrey Borodin <[email protected]>
    Reviewed-By: José Villanova <[email protected]>
    Reviewed-By: Aleksander Alekseev <[email protected]>
    Reviewed-By: Nikolay Samokhvalov <[email protected]>
    Reviewed-By: Andres Freund <[email protected]>
    Reviewed-By: Tomas Vondra <[email protected]>
    Reviewed-By: Mark Dilger <[email protected]>
    Reviewed-By: Peter Geoghegan <[email protected]>
    Reviewed-By: Kirill Reshke <[email protected]>
    Discussion: https://postgr.es/m/45AC9B0A-2B45-40EE-B08F-BDCF5739D1E1%40yandex-team.ru
    tvondra authored and Commitfest Bot committed Mar 28, 2025
    Configuration menu
    Copy the full SHA
    43f209a View commit details
    Browse the repository at this point in the history
  3. amcheck: Add gin_index_check() to verify GIN index

    The new functions validates two kinds of invariants on a GIN index:
    
    - parent-child consistency: Paths in a GIN graph have to contain
      consistent keys: tuples on parent pages consistently include tuples
      from children pages. That is, parent tuples must not require any
      adjustments.
    
    - balanced-tree / graph: Each internal page has at least one downlink,
      and can reference either only leaf pages or only internal pages.
    
    The GIN verification is based on work by Grigory Kryachko, reworked by
    Heikki Linnakangas and with various improvements by Andrey Borodin.
    Investigation and fixes for a couple bugs by Kirill Reshke.
    
    Author: Grigory Kryachko <[email protected]>
    Author: Heikki Linnakangas <[email protected]>
    Author: Andrey Borodin <[email protected]>
    Reviewed-By: José Villanova <[email protected]>
    Reviewed-By: Aleksander Alekseev <[email protected]>
    Reviewed-By: Nikolay Samokhvalov <[email protected]>
    Reviewed-By: Andres Freund <[email protected]>
    Reviewed-By: Tomas Vondra <[email protected]>
    Reviewed-By: Kirill Reshke <[email protected]>
    Reviewed-By: Mark Dilger <[email protected]>
    Reviewed-By: Peter Geoghegan <[email protected]>
    Discussion: https://postgr.es/m/45AC9B0A-2B45-40EE-B08F-BDCF5739D1E1%40yandex-team.ru
    tvondra authored and Commitfest Bot committed Mar 28, 2025
    Configuration menu
    Copy the full SHA
    bf5e2a0 View commit details
    Browse the repository at this point in the history
  4. amcheck: Add a test with GIN index on JSONB data

    Extend the existing test of GIN checks to also include an index on JSONB
    data, using the jsonb_path_ops opclass. This is a common enough usage of
    GIN that it makes sense to have better test coverage for it.
    
    Author: Mark Dilger <[email protected]>
    Reviewed-By: Tomas Vondra <[email protected]>
    Reviewed-By: Kirill Reshke <[email protected]>
    Discussion: https://postgr.es/m/BC221A56-977C-418E-A1B8-9EFC881D80C5%40enterprisedb.com
    tvondra authored and Commitfest Bot committed Mar 28, 2025
    Configuration menu
    Copy the full SHA
    9cfeaa7 View commit details
    Browse the repository at this point in the history
  5. amcheck: Add a GIN index to the CREATE INDEX CONCURRENTLY tests

    The existing CREATE INDEX CONCURRENTLY tests checking only B-Tree, but
    can be cheaply extended to also check GIN. This helps increasing test
    coverage for GIN amcheck, especially related to handling concurrent page
    splits and posting list trees.
    
    This already helped to identify several issues during development of the
    GIN amcheck support.
    
    Author: Mark Dilger <[email protected]>
    Reviewed-By: Tomas Vondra <[email protected]>
    Reviewed-By: Kirill Reshke <[email protected]>
    Discussion: https://postgr.es/m/BC221A56-977C-418E-A1B8-9EFC881D80C5%40enterprisedb.com
    tvondra authored and Commitfest Bot committed Mar 28, 2025
    Configuration menu
    Copy the full SHA
    b43ee5a View commit details
    Browse the repository at this point in the history
  6. Stress test verify_gin() using pgbench

    Add a tap test which inserts, updates, deletes, and checks in
    parallel.  Like all pgbench based tap tests, this test contains race
    conditions between the operations, so Your Mileage May Vary.  For
    me, on my laptop, I got failures like:
    
    	index "ginidx" has wrong tuple order on entry tree page
    
    which I have not yet investigated.  The test is included here for
    anybody interested in debugging this failure.
    markdilger authored and Commitfest Bot committed Mar 28, 2025
    Configuration menu
    Copy the full SHA
    48143f4 View commit details
    Browse the repository at this point in the history
  7. [CF 3733] v20250328 - Amcheck verification of GiST and GIN

    This branch was automatically generated by a robot using patches from an
    email thread registered at:
    
    https://commitfest.postgresql.org/patch/3733
    
    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/[email protected]
    Author(s): Heikki Linnakangas, Andrey Borodin, Grigory Kryachko
    Commitfest Bot committed Mar 28, 2025
    Configuration menu
    Copy the full SHA
    218eb5c View commit details
    Browse the repository at this point in the history
Loading