Re: could not access status of transaction pg_multixact issue

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: could not access status of transaction pg_multixact issue
Дата
Msg-id 5436A34C.8090306@aklaver.com
обсуждение исходный текст
Ответ на Re: could not access status of transaction pg_multixact issue  (jim_yates <pg@wg5jim.net>)
Ответы Re: could not access status of transaction pg_multixact issue  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Список pgsql-sql
On 10/09/2014 07:07 AM, jim_yates wrote:
> Alvaro Herrera-9 wrote
>> jim_yates wrote:
>>
>>>> A better way not involving mxid_age() would be to use pg_controldata to
>>>> extract the current value of the mxid counter, then subtract the
>>> current
>>>> relminmxid from that value.
>>>
>>>
>>> It's not clear which lines from pg_controldata to use for updating
>>> pg_database.datminmxid.
>>
>> The one labelled NextMultiXactId.
>>
>>> I also assume I would do the pg_database update on a idle database.
>>
>> It doesn't matter, actually.  pg_database is a shared catalog, so an
>> update would affect all the databases.
>>
>> --
>> Álvaro Herrera                http://www.2ndQuadrant.com/
>> PostgreSQL Development, 24x7 Support, Training & Services
>
> I tried doing the update to pg_database on my Dev server and I can't get it
> to work.  How do I calculate the new datminmxid value?
>
> NextMultiXactId:  30349  relminmxid from pg_class for the table: 8376
>
> If I subtract the relminmxid from the nextmulixact I get 21793 which won't
> work.
>
> production-copy=# update pg_database set datminmxid=21973 where
> datname='production-copy';
> ERROR:  column "datminmxid" is of type xid but expression is of type integer
>
>

Casting issue, try:

update pg_database set datminmxid='21973' where
datname='production-copy';

>


-- 
Adrian Klaver
adrian.klaver@aklaver.com



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

Предыдущее
От: jim_yates
Дата:
Сообщение: Re: could not access status of transaction pg_multixact issue
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: could not access status of transaction pg_multixact issue