Re: COPY enhancements - Mailing list pgsql-hackers

From Simon Riggs
Subject Re: COPY enhancements
Date
Msg-id 1255069744.6335.32.camel@ebony
Whole thread Raw
In response to Re: COPY enhancements  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: COPY enhancements  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Fri, 2009-10-09 at 00:15 +0100, Simon Riggs wrote:
> On Thu, 2009-10-08 at 12:21 -0400, Tom Lane wrote:
> > 
> > You'd eat a sub-sub-transaction per row, and start a new sub-transaction
> > every 2^32 rows.
> > 
> > However, on second thought this really doesn't get us anywhere, it just
> > moves the 2^32 restriction somewhere else.  Once the outer transaction
> > gets to be more than 2^31 XIDs old, the database is going to stop
> > because of XID wraparound.
> > 
> > So really we have to find some way to only expend one XID per failure,
> > not one per row.
> 
> I discovered a few days back that ~550 subtransactions is sufficient to
> blow max_stack_depth. 1 subtransaction per error doesn't allow many
> errors.

Not meaning to come up with problems, nor direct them at Tom, this is
just a convenient place to put in a few thoughts.

Another thing that has occurred to me is that RI checks are currently
resolved at end of statement and could end up rejecting any/all rows
loaded. If we break down the load into subtransaction pieces we would
really want the RI checks on the rows to be performed during the
subtransaction that makes them. The good thing about that is that it
would lend itself to holding successful checks in a hash table to allow
a fast path optimization of continual re-checks of same values.

-- Simon Riggs           www.2ndQuadrant.com



pgsql-hackers by date:

Previous
From: u235sentinel
Date:
Subject: Re: postgres 8.3.8 and Solaris 10_x86 64 bit problems?
Next
From: Hannu Krosing
Date:
Subject: Re: COPY enhancements