postgresql/src/include
Jeff Davis 3a232a3183 HashAgg: use better cardinality estimate for recursive spilling.
Use HyperLogLog to estimate the group cardinality in a spilled
partition. This estimate is used to choose the number of partitions if
we recurse.

The previous behavior was to use the number of tuples in a spilled
partition as the estimate for the number of groups, which lead to
overpartitioning. That could cause the number of batches to be much
higher than expected (with each batch being very small), which made it
harder to interpret EXPLAIN ANALYZE results.

Reviewed-by: Peter Geoghegan
Discussion: https://postgr.es/m/a856635f9284bc36f7a77d02f47bbb6aaf7b59b3.camel@j-davis.com
Backpatch-through: 13
2020-07-28 23:17:23 -07:00
..
access Rename wal_keep_segments to wal_keep_size. 2020-07-20 13:33:45 +09:00
bootstrap Update copyrights for 2020 2020-01-01 12:21:45 -05:00
catalog Correctly mark pg_subscription_rel.srsublsn as nullable. 2020-07-20 14:55:56 -04:00
commands Rename SLRU structures and associated LWLocks. 2020-05-15 14:28:25 -04:00
common Add hints about protocol-version-related SSL connection failures. 2020-06-27 12:47:58 -04:00
datatype Update copyrights for 2020 2020-01-01 12:21:45 -05:00
executor HashAgg: use better cardinality estimate for recursive spilling. 2020-07-28 23:17:23 -07:00
fe_utils Move frontend-side archive APIs from src/common/ to src/fe_utils/ 2020-06-11 15:48:56 +09:00
foreign Update copyrights for 2020 2020-01-01 12:21:45 -05:00
jit jit: Reference expression step functions via llvmjit_types. 2020-02-06 22:29:14 -08:00
lib Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
libpq Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
mb Allow Unicode escapes in any server encoding, not only UTF-8. 2020-03-06 14:17:43 -05:00
nodes HashAgg: before spilling tuples, set unneeded columns to NULL. 2020-07-12 23:08:16 -07:00
optimizer Remove hashagg_avoid_disk_plan GUC. 2020-07-27 17:53:17 -07:00
parser Revert 0f5ca02f53 2020-04-08 11:37:27 +03:00
partitioning Allow partitionwise joins in more cases. 2020-04-08 10:25:00 +09:00
port Avoid need for valgrind suppressions for pg_atomic_init_u64 on some platforms. 2020-06-08 20:02:49 -07:00
portability Update copyrights for 2020 2020-01-01 12:21:45 -05:00
postmaster Trigger autovacuum based on number of INSERTs 2020-03-28 19:20:12 +13:00
regex Assume that we have <wchar.h>. 2020-02-21 14:30:47 -05:00
replication Revert "Track statistics for spilling of changes from ReorderBuffer". 2020-07-13 08:46:56 +05:30
rewrite Update copyrights for 2020 2020-01-01 12:21:45 -05:00
snowball Update copyrights for 2020 2020-01-01 12:21:45 -05:00
statistics Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
storage Avoid potential spinlock in a signal handler as part of global barriers. 2020-06-17 12:47:13 -07:00
tcop Allow the planner-related functions and hook to accept the query string. 2020-03-30 13:51:05 +09:00
tsearch Replace TS_execute's TS_EXEC_CALC_NOT flag with TS_EXEC_SKIP_NOT. 2020-07-24 15:43:56 -04:00
utils Add missing extern keyword for a couple of numutils functions 2020-06-13 11:28:12 +12:00
.gitignore Refactor dlopen() support 2018-09-06 11:33:04 +02:00
c.h Enable Unix-domain sockets support on Windows 2020-03-28 15:01:01 +01:00
fmgr.h Fix minor violations of FunctionCallInvoke usage protocol. 2020-04-21 14:23:53 -04:00
funcapi.h Avoid holding a directory FD open across assorted SRF calls. 2020-03-16 21:05:52 -04:00
getaddrinfo.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
getopt_long.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
Makefile Get rid of jsonpath_gram.h and jsonpath_scanner.h 2019-03-20 11:13:34 +03:00
miscadmin.h Add unlikely() to CHECK_FOR_INTERRUPTS() 2020-06-05 16:49:25 -04:00
pg_config.h.in Enable Unix-domain sockets support on Windows 2020-03-28 15:01:01 +01:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Remove ACLDEBUG #define and associated code. 2020-04-23 15:38:04 -04:00
pg_getopt.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pg_trace.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pgstat.h Mop-up for wait event naming issues. 2020-05-16 21:00:11 -04:00
pgtar.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pgtime.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
port.h Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
postgres.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
postgres_ext.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
postgres_fe.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
rusagestub.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
windowapi.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00