WAL bypass for INSERT, UPDATE and DELETE? - Mailing list pgsql-hackers

From Simon Riggs
Subject WAL bypass for INSERT, UPDATE and DELETE?
Date
Msg-id 1135261893.2964.502.camel@localhost.localdomain
Whole thread Raw
Responses Re: WAL bypass for INSERT, UPDATE and DELETE?  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: [Bizgres-general] WAL bypass for INSERT, UPDATE and DELETE?  ("Jim C. Nasby" <jnasby@pervasive.com>)
List pgsql-hackers
Having just optimized COPY to avoid writing WAL during the transaction
in which a table was first created, it seems worth considering whether
this should occur for INSERT, UPDATE and DELETE also.

It is fairly common to do data transformation using INSERT SELECTs and
UPDATEs. This is usually done with temporary tables however. (DELETE
would most efficiently be handled as an additional NOT clause on the
insert, so it is uncommonly used in this circumstance.)

However, CREATE TABLE AS SELECT (CTAS) does not allow inheritance, so a
new permanent partition has to be created using CREATE TABLE, followed
by an INSERT SELECT or COPY.

Is that sufficient reason to optimise INSERT SELECT and UPDATE also? Or
should I not bother? Or should I try to teach CTAS to use inheritance
(which sounds harder and has a few gotchas).

Currently, CTAS optimization requires a heap_sync during ExecEndPlan. It
would be easy enough to extend this so that it also works for INSERT,
UPDATE and DELETE.

Best Regards, Simon Riggs



pgsql-hackers by date:

Previous
From: Euler Taveira de Oliveira
Date:
Subject: Re: to_char and i18n
Next
From: Tom Lane
Date:
Subject: Re: Unsplitting btree index leaf pages