Add a new scheduling heuristic: don't end the ongoing primitive index scan immediately (at the point where _bt_advance_array_keys notices that the next set of matching tuples must be on a later page) if the primscan already managed to step right/left from its first leaf page. Schedule a recheck against the next sibling leaf page's finaltup instead. The new heuristic tends to avoid scenarios where the top-level scan repeatedly starts and ends primitive index scans that each read only one leaf page from a group of neighboring leaf pages. Affected top-level scans will now tend to step forward (or backward) through the index instead, without wasting cycles on descending the index anew. The recheck mechanism isn't exactly new. But up until now it has only been used to deal with edge cases involving high key finaltups with one or more truncated -inf attributes that _bt_advance_array_keys deemed "provisionally satisfied" (satisfied for the purposes of allowing the scan to step onto the next page, subject to recheck once on that page). The mechanism was added by commit |
12 months ago | |
|---|---|---|
| .github | Add CODE_OF_CONDUCT.md, CONTRIBUTING.md, and SECURITY.md. | 2 years ago |
| config | Be more paranoid in configure's checks for CRC and POPCNT intrinsics. | 12 months ago |
| contrib | Revert workarounds for -Wmissing-braces false positives on old GCC | 12 months ago |
| doc | Add GUC option to control maximum active replication origins. | 12 months ago |
| src | Improve nbtree array primitive scan scheduling. | 12 months ago |
| .cirrus.star | Remove duplicate words in docs and code comments. | 2 years ago |
| .cirrus.tasks.yml | ci: Remove installation of libcurl | 1 year ago |
| .cirrus.yml | ci: Test NetBSD and OpenBSD | 1 year ago |
| .dir-locals.el | Make Emacs perl-mode indent more like perltidy. | 7 years ago |
| .editorconfig | Add script to keep .editorconfig in sync with .gitattributes | 1 year ago |
| .git-blame-ignore-revs |
Add commit 796bdda484 to .git-blame-ignore-revs.
|
12 months ago |
| .gitattributes | Add script to keep .editorconfig in sync with .gitattributes | 1 year ago |
| .gitignore | Update top-level .gitignore. | 3 years ago |
| .mailmap | Add a Git .mailmap file | 1 year ago |
| COPYRIGHT | Update copyright for 2025 | 1 year ago |
| GNUmakefile.in | Allow selecting the git revision to be packaged by "make dist". | 2 years ago |
| HISTORY | Canonicalize some URLs | 6 years ago |
| 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 | Be more paranoid in configure's checks for CRC and POPCNT intrinsics. | 12 months ago |
| configure.ac | Add support for OAUTHBEARER SASL mechanism | 1 year ago |
| meson.build | Show plperl version in the meson setup summary. | 12 months ago |
| meson_options.txt | Add support for OAUTHBEARER SASL mechanism | 1 year 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/.