Epoch służy do zapobiegania zawijaniu txid_current() i rozpoczynaniu od zera (a dokładnie od 3, ponieważ wartości 0,1,2 są używane wewnętrznie).
Działa to tak:
Postgres posiada wewnętrzny 32-bitowy licznik xid, który różni się od wartości zwracanej przez txid_current(). Wewnętrzny xid zawija się i resetuje swoje zliczanie przy każdym zawinięciu.
Z drugiej strony, txid_current() zwraca 64bit (bigint), w którym wysokie bity są przyrostem epoki, co zdarza się raz na zawinięcie xid i nie zaczyna się od zera.
Tak więc przy każdym okrążeniu rozpoczyna się epoka, a wysokie bity txid_current() są modyfikowane, aby zapobiec resetowaniu txids, a zamiast tego txids kontynuują inkrementację aż do osiągnięcia limitu 64 bitów (czasami w bardzo odległej przyszłości, długo po tym, jak wszyscy umrzemy).