Re: COPY FREEZE has no warning

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: COPY FREEZE has no warning
Дата
Msg-id 20130126042858.GB9274@momjian.us
обсуждение исходный текст
Ответ на Re: COPY FREEZE has no warning  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: COPY FREEZE has no warning  (Bruce Momjian <bruce@momjian.us>)
Re: COPY FREEZE has no warning  (Noah Misch <noah@leadboat.com>)
Список pgsql-hackers
On Fri, Jan 25, 2013 at 11:08:56PM -0500, Tom Lane wrote:
> Bruce Momjian <bruce@momjian.us> writes:
> > !                 ereport(ERROR,
> > !                         (ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE,
> > !                         errmsg("cannot perform FREEZE because of previous table activity in the current
transaction")));
>
> [ itch... ]  What is "table activity"?  I always thought of tables as
> being rather passive objects.  And anyway, isn't this backwards?  What
> we're complaining of is *lack* of activity.  I don't see why this isn't
> using the same message as the other code path, namely

Well, here is an example of this message:

    BEGIN;
    TRUNCATE vistest;
    SAVEPOINT s1;
    COPY vistest FROM stdin CSV FREEZE;
    ERROR:  cannot perform FREEZE because of previous table activity in the current transaction
    COMMIT;

Clearly it was truncated in the same transaction, but the savepoint
somehow invalidates the freeze.  There is a C comment about it:

     * BEGIN;
     * TRUNCATE t;
     * SAVEPOINT save;
     * TRUNCATE t;
     * ROLLBACK TO save;
     * COPY ...

I changed it to:

        ERROR:  cannot perform FREEZE because of transaction activity after table creation or truncation

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

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

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Craig Ringer
Дата:
Сообщение: Re: Visual Studio 2012 RC
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: Proposal for Allow postgresql.conf values to be changed via SQL [review]