On Sat, Feb  2, 2013 at 09:51:13AM -0500, Noah Misch wrote:
> > OK, so, should we change the error message:
> > 
> >     cannot perform FREEZE because of transaction activity after table
> >     creation or truncation
> > 
> > to
> > 
> >     cannot perform FREEZE because the table was not created or
> >     truncated in the current subtransaction
> > 
> > or do we need to keep the "transaction activity" weasel wording because
> > of the second case you listed above?  I am suspecting the later.
> 
> Let's touch on the exception in passing by using the phrase "last truncated",
> giving this wording for both the second and the third COPY FREEZE error sites:
> 
>       cannot perform FREEZE because the table was not created or last
>       truncated in the current subtransaction

Well, so you are saying that there really isn't any use-visible logic
for those messages to be different, i.e. that the transaction id can be
set to invalid even if we created/truncated in the same transaction, but
not the same subtransaction?  

The comparisons that trigger the two messages are:

        if (cstate->rel->rd_createSubid != InvalidSubTransactionId ||
            cstate->rel->rd_newRelfilenodeSubid != InvalidSubTransactionId)

and
        if (cstate->rel->rd_createSubid != GetCurrentSubTransactionId() ||
            cstate->rel->rd_newRelfilenodeSubid != GetCurrentSubTransactionId())

The first comparison is creation, the second, truncation.

Please confirm and I will make the change, or you can.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to