]> granicus.if.org Git - postgresql/commit
Avoid unexpected slowdown in vacuum regression test.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 12 Jan 2015 20:13:31 +0000 (15:13 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 12 Jan 2015 20:13:31 +0000 (15:13 -0500)
commit4072d91f24681d8d9f0cbdfd58c50ce30f4f1331
tree8fd9c2ebf991ec455942ce4cc9d265e53154d71d
parent8f2d99be8f273bfdb69d1b87a38e9c6a734850e0
Avoid unexpected slowdown in vacuum regression test.

I noticed the "vacuum" regression test taking really significantly longer
than it used to on a slow machine.  Investigation pointed the finger at
commit e415b469b33ba328765e39fd62edcd28f30d9c3c, which added creation of
an index using an extremely expensive index function.  That function was
evidently meant to be applied only twice ... but the test re-used an
existing test table, which up till a couple lines before that had had over
two thousand rows.  Depending on timing of the concurrent regression tests,
the intervening VACUUMs might have been unable to remove those
recently-dead rows, and then the index build would need to create index
entries for them too, leading to the wrap_do_analyze() function being
executed 2000+ times not twice.  Avoid this by using a different table
that is guaranteed to have only the intended two rows in it.

Back-patch to 9.0, like the commit that created the problem.
src/test/regress/expected/vacuum.out
src/test/regress/sql/vacuum.sql