Hi, since the mvcc catalog patch has gone in we require all users of systable_* to be in a valid transaction since the snapshot is copied via CopySnapshot() in RegisterSnapshot(). Which we call in systable_beginscan(). CopySnapshot() allocates the copied snapshot in TopTransactionContext.
There doesn't seem be an explicitly stated rule that we cannot use the syscaches outside of a transaction - but effectively that's required atm. Not having investigated at all so far I am not sure how much in core code that breaks, but it certainly broke some out of tree code of mine (bidirectional replication stuff, bdr branch on git.pg.o). Is that acceptable? Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers