_bt_advance_array_keys didn't take sufficient care at the point where it decides whether to start a new primitive index scan based on a call to _bt_check_compare against finaltup (a call with the scan direction flipped around). The final decision was conditioned on rules about how the scan key offset sktrig that initially triggered array advancement (passed to _bt_advance_array_keys from its _bt_checkkeys caller) compared to the offset set by its own _bt_check_compare finaltup call. This approach was faulty, in that it allowed _bt_advance_array_keys to incorrectly start a new primitive index scan, that landed on the same leaf page (on assert-enabled builds it led to an assertion failure). In general, scans with array keys are expected to never have to read the same leaf page more than once (barring cases involving cursors, and cases where the scan restores a marked position for the inner side of a merge join). This principle was established by commit |
2 years ago | |
|---|---|---|
| config | jit: Remove {llvm-config,clang}-N configure probes. | 2 years ago |
| contrib | Unify some error messages | 2 years ago |
| doc | doc PG 17 relnotes: wording improvements, add links, merge item | 2 years ago |
| src | Fix nbtree array unsatisfied inequality check. | 2 years ago |
| .cirrus.star | Remove duplicate words in docs and code comments. | 2 years ago |
| .cirrus.tasks.yml | ci: windows: Use the same image for VS and MinGW tasks | 2 years ago |
| .cirrus.yml | ci: Make compute resources for CI configurable | 3 years ago |
| .dir-locals.el |
…
|
|
| .editorconfig |
…
|
|
| .git-blame-ignore-revs |
Add da256a4a7 to .git-blame-ignore-revs.
|
2 years ago |
| .gitattributes | Remove non-existing file from .gitattributes | 2 years ago |
| .gitignore |
…
|
|
| COPYRIGHT | Update copyright for 2024 | 2 years ago |
| GNUmakefile.in | Allow selecting the git revision to be packaged by "make dist". | 2 years ago |
| HISTORY |
…
|
|
| Makefile | Remove AIX support | 2 years ago |
| README.md | Revise the style of a paragraph in README.md. | 2 years ago |
| aclocal.m4 | autoconf: Move export_dynamic determination to configure | 3 years ago |
| configure | Stamp 17beta2. | 2 years ago |
| configure.ac | Stamp 17beta2. | 2 years ago |
| meson.build | Stamp 17beta2. | 2 years ago |
| meson_options.txt | Allow selecting the git revision to be packaged by "make dist". | 2 years ago |
README.md
PostgreSQL Database Management System
This directory contains the source code distribution of the PostgreSQL database management system.
PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. This distribution also contains C language bindings.
Copyright and license information can be found in the file COPYRIGHT.
General documentation about this version of PostgreSQL can be found at https://www.postgresql.org/docs/devel/. In particular, information about building PostgreSQL from the source code can be found at https://www.postgresql.org/docs/devel/installation.html.
The latest version of this software, and related software, may be obtained at https://www.postgresql.org/download/. For more information look at our web site located at https://www.postgresql.org/.