These changes don't actually fix any leaks. They just make sure that
Valgrind will find pointers to data structures that remain allocated
at process exit, and thus not falsely complain about leaks. In
particular, we are trying to avoid situations where there is no
pointer to the beginning of an allocated block (except possibly
within the block itself, which Valgrind won't count).
* Because dynahash.c never frees hashtable storage except by deleting
the whole hashtable context, it doesn't bother to track the individual
blocks of elements allocated by element_alloc(). This results in
"possibly lost" complaints from Valgrind except when the first element
of each block is actively in use. (Otherwise it'll be on a freelist,
but very likely only reachable via "interior pointers" within element
blocks, which doesn't satisfy Valgrind.)
To fix, if we're building with USE_VALGRIND, expend an extra pointer's
worth of space in each element block so that we can chain them all
together from the HTAB header. Skip this in shared hashtables though:
Valgrind doesn't track those, and we'd need additional locking to make
it safe to manipulate a shared chain.
While here, update a comment obsoleted by
|
10 months ago | |
|---|---|---|
| .github | Add CODE_OF_CONDUCT.md, CONTRIBUTING.md, and SECURITY.md. | 2 years ago |
| config | Don't put library-supplied -L/-I switches before user-supplied ones. | 10 months ago |
| contrib | Allow resetting unknown custom GUCs with reserved prefixes. | 10 months ago |
| doc | Simplify options in pg_dump and pg_restore. | 10 months ago |
| src | Silence Valgrind leakage complaints in more-or-less-hackish ways. | 10 months ago |
| .cirrus.star | Remove duplicate words in docs and code comments. | 3 years ago |
| .cirrus.tasks.yml | Hide ICU C++ APIs from pg_locale.h | 11 months ago |
| .cirrus.yml | ci: Test NetBSD and OpenBSD | 1 year ago |
| .dir-locals.el |
…
|
|
| .editorconfig | Add script to keep .editorconfig in sync with .gitattributes | 1 year ago |
| .git-blame-ignore-revs |
Add commit 1d1612aec7 to .git-blame-ignore-revs.
|
10 months ago |
| .gitattributes | Add script to keep .editorconfig in sync with .gitattributes | 1 year ago |
| .gitignore | Update top-level .gitignore. | 4 years ago |
| .mailmap | Add a Git .mailmap file | 2 years ago |
| COPYRIGHT | Align organization wording in copyright statement | 1 year 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 | 4 years ago |
| configure | Fix ./configure checks with __cpuidex() and __cpuid() | 10 months ago |
| configure.ac | Fix ./configure checks with __cpuidex() and __cpuid() | 10 months ago |
| meson.build | Fix ./configure checks with __cpuidex() and __cpuid() | 10 months ago |
| meson_options.txt | Add support for basic NUMA awareness | 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/.