Re: reloption to prevent VACUUM from truncating empty pages at the end of relation

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Cc: 'Julien Rouhaud' <rjuju123@gmail.com>, Laurenz Albe <laurenz.albe@cybertec.at>, "Jamison, Kirk" <k.jamison@jp.fujitsu.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, Amit Kapila <amit.kapila16@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Fujii Masao <masao.fujii@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-02-25T06:56:31Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add TRUNCATE parameter to VACUUM.

  2. Add vacuum_truncate reloption.

  3. Allow VACUUM to be run with index cleanup disabled.

On Mon, Feb 25, 2019 at 02:38:05AM +0000, Tsunakawa, Takayuki wrote:
> From: Julien Rouhaud [mailto:rjuju123@gmail.com]
>> One last thing, I think we should at least add one regression test for
>> this setting.  The one you provided previously seems perfectly suited.
> 
> Thanks, added.

+SELECT pg_relation_size('reloptions_test');
+ pg_relation_size
+------------------
+             8192
+(1 row)
This makes the test page-size sensitive.  While we don't ensure that
tests can be run with different page sizes, we should make a maximum
effort to keep the tests compatible if that's easy enough.  In this
case you could just use > 0 as base comparison.  I can fix that by
myself, so no need to send a new version.

Should we also document that the parameter is effective for
autovacuum?  The name can lead to confusion regarding that.

The rest of the patch looks fine to me.
--
Michael