Re: heap_sync seems rather oblivious to partitioned tables (wal_level=minimal)

From: David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>
To: Steve Singer <steve(at)ssinger(dot)info>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: heap_sync seems rather oblivious to partitioned tables (wal_level=minimal)
Date: 2018-11-01 03:35:22
Message-ID: CAKJS1f-N4D5hSR+FFf=P8ZYSPsjodQx1t0YS9rraFCPgNH1MzA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thanks for looking at this.

On 1 November 2018 at 16:07, Steve Singer <steve(at)ssinger(dot)info> wrote:
> --- a/doc/src/sgml/perform.sgml
> +++ b/doc/src/sgml/perform.sgml
> @@ -1534,9 +1534,10 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
> <command>TRUNCATE</command> command. In such cases no WAL
> needs to be written, because in case of an error, the files
> containing the newly loaded data will be removed anyway.
> - However, this consideration only applies when
> - <xref linkend="guc-wal-level"/> is <literal>minimal</literal> as all commands
> - must write WAL otherwise.
> + However, this consideration only applies for non-partitioned
> + tables when <xref linkend="guc-wal-level"/> is
> + <literal>minimal</literal> as all commands must write WAL
> + otherwise.
> </para>
>
> Would this be better as "However, this consideration only applies for non-partitioned and the wal_level is minimal"
> (Switching the 'when' to 'and the')

I ended up going with:

However, this consideration only applies when
<xref linkend="guc-wal-level"/> is <literal>minimal</literal> for
non-partitioned tables as all commands must write WAL otherwise.

> --- a/doc/src/sgml/ref/copy.sgml
> +++ b/doc/src/sgml/ref/copy.sgml
> @@ -222,9 +222,10 @@ COPY { <replaceable class="parameter">table_name</replaceable> [ ( <replaceable
> Requests copying the data with rows already frozen, just as they
> would be after running the <command>VACUUM FREEZE</command> command.
> This is intended as a performance option for initial data loading.
> - Rows will be frozen only if the table being loaded has been created
> - or truncated in the current subtransaction, there are no cursors
> - open and there are no older snapshots held by this transaction.
> + Rows will be frozen only for non-partitioned tables if the table
> + being loaded has been created or truncated in the current
> + subtransaction, there are no cursors open and there are no older
> + snapshots held by this transaction.
>
> Similar concern with above

I've changed this to:

Rows will be frozen only if the table being loaded has been created
or truncated in the current subtransaction, there are no cursors
open and there are no older snapshots held by this transaction. It is
currently not possible to perform a <command>COPY FREEZE</command> on
a partitioned table.

Which is just the original text with the new sentence tagged onto the end.

> Other than that the patch looks fine and works as expected.
>
> The new status of this patch is: Waiting on Author

Thanks for looking at this. I've attached an updated patch.

--
David Rowley http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Attachment Content-Type Size
fix_incorrect_setting_of_hi_options_for_partitioned_tables_v3.patch application/octet-stream 5.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Langote 2018-11-01 03:39:16 Re: Getting ERROR: could not open file "base/13164/t3_16388" with partition table with ON COMMIT
Previous Message Thomas Munro 2018-11-01 03:22:51 POC: Cleaning up orphaned files using undo logs