Re: temp table "on commit delete rows": transaction overhead

From: Artiom Makarov <artiom(dot)makarov(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: temp table "on commit delete rows": transaction overhead
Date: 2010-03-31 07:42:29
Message-ID: w2ud448ea361003310042t91d5f283pb3daccbe19dfcb7@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

2010/3/30 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:

> I don't recall any operations at transaction start for such tables,
> but there may be some.
>
Both in СommitTransaction(void) and PrepareTransaction(void) we can
see PreCommit_on_commit_actions() call;

Here PreCommit_on_commit_actions()
<CUT>
case ONCOMMIT_DELETE_ROWS:
oids_to_truncate = lappend_oid(oids_to_truncate, oc->relid);
break;
<CUT>

As a my opinion, the same action taked place at transaction start and commit.

To truncate rows of any temp tables, both changed and unchanged(!)
after transaction looks as little reinsurance. Well.
But why do the same action _before_ any transaction?

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Matthew Wakeling 2010-03-31 09:29:58 Re: experiments in query optimization
Previous Message David Wilson 2010-03-31 04:37:40 Re: query has huge variance in execution times