Re: Pre-set Hint bits/VACUUM FREEZE on data load..? - Mailing list pgsql-hackers

From Robert Haas
Subject Re: Pre-set Hint bits/VACUUM FREEZE on data load..?
Date
Msg-id AANLkTimOUQbS9UesBKUGFDgYEG38Yfx2z3h=GEdbmSVZ@mail.gmail.com
Whole thread Raw
In response to Re: Pre-set Hint bits/VACUUM FREEZE on data load..?  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Responses Re: Pre-set Hint bits/VACUUM FREEZE on data load..?
List pgsql-hackers
On Fri, Mar 25, 2011 at 4:00 AM, Heikki Linnakangas
<heikki.linnakangas@enterprisedb.com> wrote:
> On 25.03.2011 09:51, Heikki Linnakangas wrote:
>>
>> I don't think we should put the onus on the user to choose the right
>> data loading mode. If we can reliably detect the cases where it's safe
>> do these tricks, we can transparently apply them when possible. I would
>> be cool with tricks that apply only in narrow cases, as long as we don't
>> require the user to do anything.
>
> I believe the conditions for being able to set hint bits immediately at COPY
> are:
>
> 1. The table has been created or truncated in the same transaction
> 2. We are not in a subtransaction (or the table was created and truncated in
> the same subtransaction)
> 3. There are no open portals
> 4. Executing the COPY doesn't need to run any "unsafe" code that might
> access the same table. This includes triggers, check constraints and input
> functions. An expression is safe if it is immutable.

That's not enough... some other transaction could see the data before
the transaction commits.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Transactional DDL, but not Serializable
Next
From: Vaibhav Kaushal
Date:
Subject: Re: When and how many times does ExecSetParamPlan executes?