Commit 69fd82fe authored by Tomas Vondra's avatar Tomas Vondra

Update reference to sampling algorithm in analyze.c

Commit 83e176ec moved row sampling functions from analyze.c to
utils/misc/sampling.c, but failed to update comment referring to
the sampling algorithm from Jeff Vitter's paper. Correct the
comment by pointing to utils/misc/sampling.c.

Author: Etsuro Fujita
Discussion: https://postgr.es/m/CAPmGK154gp%2BQd%3DcorQOv%2BPmbyVyZBjp_%2Bhb766UJeD1e_ie6XQ%40mail.gmail.com
parent 050098b1
...@@ -1048,13 +1048,13 @@ acquire_sample_rows(Relation onerel, int elevel, ...@@ -1048,13 +1048,13 @@ acquire_sample_rows(Relation onerel, int elevel,
* The first targrows sample rows are simply copied into the * The first targrows sample rows are simply copied into the
* reservoir. Then we start replacing tuples in the sample until * reservoir. Then we start replacing tuples in the sample until
* we reach the end of the relation. This algorithm is from Jeff * we reach the end of the relation. This algorithm is from Jeff
* Vitter's paper (see full citation below). It works by * Vitter's paper (see full citation in utils/misc/sampling.c). It
* repeatedly computing the number of tuples to skip before * works by repeatedly computing the number of tuples to skip
* selecting a tuple, which replaces a randomly chosen element of * before selecting a tuple, which replaces a randomly chosen
* the reservoir (current set of tuples). At all times the * element of the reservoir (current set of tuples). At all times
* reservoir is a true random sample of the tuples we've passed * the reservoir is a true random sample of the tuples we've
* over so far, so when we fall off the end of the relation we're * passed over so far, so when we fall off the end of the relation
* done. * we're done.
*/ */
if (numrows < targrows) if (numrows < targrows)
rows[numrows++] = ExecCopySlotHeapTuple(slot); rows[numrows++] = ExecCopySlotHeapTuple(slot);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment