aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/ruleutils.c
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2017-07-12 22:03:38 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2017-07-12 22:06:10 +0300
commitbbeec3c749bcbd9b75fc1f036979fed516f9a2c8 (patch)
tree9d6fc34463baa7a5a5f4f106f0dac25dbda59384 /src/backend/utils/adt/ruleutils.c
parent832d3dce5a3a5ca35f6861cb573bff7a6a8835dc (diff)
downloadpostgresql-bbeec3c749bcbd9b75fc1f036979fed516f9a2c8.tar.gz
postgresql-bbeec3c749bcbd9b75fc1f036979fed516f9a2c8.zip
Reduce memory usage of tsvector type analyze function.
compute_tsvector_stats() detoasted and kept in memory every tsvector value in the sample, but that can be a lot of memory. The original bug report described a case using over 10 gigabytes, with statistics target of 10000 (the maximum). To fix, allocate a separate copy of just the lexemes that we keep around, and free the detoasted tsvector values as we go. This adds some palloc/pfree overhead, when you have a lot of distinct lexemes in the sample, but it's better than running out of memory. Fixes bug #14654 reported by James C. Reviewed by Tom Lane. Backport to all supported versions. Discussion: https://www.postgresql.org/message-id/20170514200602.1451.46797@wrigleys.postgresql.org
Diffstat (limited to 'src/backend/utils/adt/ruleutils.c')
0 files changed, 0 insertions, 0 deletions