RTFM |
---|
xmin
The identity (transaction ID) of the inserting transaction for this row version. |
-- пытаюсь отстроиться от записей вставленных в текущей транзакции, т.е. прочитать действительно закоммиченные результаты.
примерно так :
SELECT * FROM tabname WHERE
NOT xideq( xmin
,(txid_current() % (4294967296)) ::text::xid
)
;
(см
17470725)
записываю в табличку аудита результат транзакции по вставке большого числа записей.
в ней же, фиксирую последний "закоммиченный" до текущей транзакции id аудита -- по технологии отсева текущих id, приведенной выше
конкурентов по записи в аудит нет.
-- вижу, что полученные как "видимые" id -- присвоены
в той же транзакции. (по 2 записи на id).
начинаю смотреть xmin и (txid_current() % (4294967296)) нотификацией -- вижу, что xmin медленно растёт. а (txid_current() % (4294967296) ) -- стабилен. Совпадение -- только в первой записи -- двух.
NOTICE: ev_id 8071,_xmin 13530822,_xmax 0,_txid_current 13531155;
NOTICE: ev_id 8071,_xmin 13530822,_xmax 0,_txid_current 13531155;
NOTICE: ev_id 8073,_xmin 13531157,_xmax 0,_txid_current 13531155;
NOTICE: ev_id 8073,_xmin 13531157,_xmax 0,_txid_current 13531155;
NOTICE: ev_id 8075,_xmin 13531159,_xmax 0,_txid_current 13531155;
NOTICE: ev_id 8075,_xmin 13531159,_xmax 0,_txid_current 13531155;
NOTICE: ev_id 8077,_xmin 13531161,_xmax 0,_txid_current 13531155;
NOTICE: ev_id 8077,_xmin 13531161,_xmax 0,_txid_current 13531155;
куда крестьянину податься ? Почему xmin записей вставленных одной транзакцией растет в процессе транзакции? [это всё -- ещё до коммита]
основной вопрос:
как правильно
закрыть глаза на всё то и только то, что вставлено в текущей транзакции ?
вообще-то видел вот это
16698801 там автор не делает поправки на цикличность.
поэтому тогда не придал.
но поправка не спасает (или речь о разных транзакциях)
select 4359781591 % (4294967296) , 62312404
---------------
64814295;62312404
т.е. реально в записях одной транзакции xmin растет (и это происходит без привлечения какой--либо механики по froze (когда надо двигать уже массово и движком "to prevent..." и т.п.)
почему же в справке про это как-то не особо видно ?
//вопрос факультативный, советы вида "а что вы делаете -- не надо этого делать" -- несколько неуместны.
Я , судя по справке, полагал, что у меня есть инструмент отстроиться от записей, изменённых в текущей транзакции -- из неё же (не следя за всей логикой транзакции, а врезавшись в некую точку простеньким инструментом) -- и вот это полагание оказалось ложным. пичалька.