Re: Problem with txid_snapshot_in/out() functionality

Поиск
Список
Период
Сортировка
От Jan Wieck
Тема Re: Problem with txid_snapshot_in/out() functionality
Дата
Msg-id 534AD5CF.5040702@wi3ck.info
обсуждение исходный текст
Ответ на Re: Problem with txid_snapshot_in/out() functionality  (Marko Kreen <markokr@gmail.com>)
Ответы Re: Problem with txid_snapshot_in/out() functionality  (Jan Wieck <jan@wi3ck.info>)
Список pgsql-hackers
On 04/13/14 08:27, Marko Kreen wrote:
> On Sat, Apr 12, 2014 at 02:10:13PM -0400, Jan Wieck wrote:
>> Since it doesn't seem to produce any side effects, I'd think that
>> making the snapshot unique within txid_current_snapshot() and
>> filtering duplicates on input should be sufficient and eligible for
>> backpatching.
>
> Agreed.
>
>> The attached patch adds a unique loop to the internal
>> sort_snapshot() function and skips duplicates on input. The git
>> commit is here:
>>
>> https://github.com/wieck/postgres/commit/a88a2b2c25b856478d7e2b012fc718106338fe00
>
>>   static void
>>   sort_snapshot(TxidSnapshot *snap)
>>   {
>> +     txid    last = 0;
>> +     int        nxip, idx1, idx2;
>> +
>>       if (snap->nxip > 1)
>> +     {
>>           qsort(snap->xip, snap->nxip, sizeof(txid), cmp_txid);
>> +         nxip = snap->nxip;
>> +         idx1 = idx2 = 0;
>> +         while (idx1 < nxip)
>> +         {
>> +             if (snap->xip[idx1] != last)
>> +                 last = snap->xip[idx2++] = snap->xip[idx1];
>> +             else
>> +                 snap->nxip--;
>> +             idx1++;
>> +         }
>> +     }
>>   }
>
> I think you need to do SET_VARSIZE also here.  Alternative is to
> move SET_VARSIZE after sort_snapshot().
>
> And it seems the drop-double-txid logic should be added also to
> txid_snapshot_recv().  It seems weird to have it behave differently
> from txid_snapshot_in().
>

Thanks,

yes on both issues. Will create another patch.


Jan

-- 
Jan Wieck
Senior Software Engineer
http://slony.info



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: test failure on latest source
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [PATCH] Negative Transition Aggregate Functions (WIP)