postgresql/src/tools
Andres Freund 51bc271790 Add Bloom filter implementation.
A Bloom filter is a space-efficient, probabilistic data structure that
can be used to test set membership.  Callers will sometimes incur false
positives, but never false negatives.  The rate of false positives is a
function of the total number of elements and the amount of memory
available for the Bloom filter.

Two classic applications of Bloom filters are cache filtering, and data
synchronization testing.  Any user of Bloom filters must accept the
possibility of false positives as a cost worth paying for the benefit in
space efficiency.

This commit adds a test harness extension module, test_bloomfilter.  It
can be used to get a sense of how the Bloom filter implementation
performs under varying conditions.

This is infrastructure for the upcoming "heapallindexed" amcheck patch,
which verifies the consistency of a heap relation against one of its
indexes.

Author: Peter Geoghegan
Reviewed-By: Andrey Borodin, Michael Paquier, Thomas Munro, Andres Freund
Discussion: https://postgr.es/m/CAH2-Wzm5VmG7cu1N-H=nnS57wZThoSDQU+F5dewx3o84M+jY=g@mail.gmail.com
2018-03-31 17:49:41 -07:00
..
editors emacs: Set indent-tabs-mode in perl-mode 2015-04-12 23:53:23 -04:00
findoidjoins Empty search_path in Autovacuum and non-psql/pgbench clients. 2018-02-26 07:39:44 -08:00
ifaddrs Update copyright for 2018 2018-01-02 23:30:12 -05:00
make_diff Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
msvc Attempt to fix jsonb_plpython build on Windows 2018-03-28 11:49:23 -04:00
pginclude Clean up Perl code according to perlcritic 2017-03-27 08:18:22 -04:00
pgindent Add Bloom filter implementation. 2018-03-31 17:49:41 -07:00
ccsym tools/ccsym: update for modern versions of gcc 2015-01-20 13:02:58 -05:00
check_bison_recursion.pl Update copyright for 2018 2018-01-02 23:30:12 -05:00
codelines Fix remaining stray references to CVS. 2010-09-22 19:51:39 -04:00
copyright.pl Update copyright for 2018 2018-01-02 23:30:12 -05:00
FAQ2txt Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
find_badmacros Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
find_static Fix omission of -X (--no-psqlrc) in some psql invocations. 2015-12-28 11:46:43 -05:00
find_typedef Refer to OS X as "macOS", except for the port name which is still "darwin". 2016-09-25 15:40:57 -04:00
fix-old-flex-code.pl Update copyright for 2018 2018-01-02 23:30:12 -05:00
git-external-diff Add comment to tools/git-external-diff. 2011-03-11 05:06:31 -05:00
git_changelog Adjust git_changelog for new-style release tags. 2017-10-04 00:45:15 -04:00
make_ctags Mention original ctags option name. 2012-02-24 16:19:18 -05:00
make_etags Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
make_mkid Add another pgdefine path check, and a cvs-git change. 2011-08-26 21:52:35 -04:00
pgtest pgtest: allow passing parameters, e.g. -s/--silent 2013-08-05 19:59:52 -04:00
RELEASE_CHANGES Update RELEASE_CHANGES' example of branch name format. 2017-08-06 23:26:09 -04:00
testint128.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
valgrind.supp Copyedit comments and documentation. 2016-04-01 21:53:10 -04:00
version_stamp.pl Update copyright for 2018 2018-01-02 23:30:12 -05:00
win32tzlist.pl Update copyright for 2018 2018-01-02 23:30:12 -05:00