Simon Riggs wrote:
RelationCacheInitFileInvalidate() is also called on each
FinishPreparedTransaction().
It's only called if the prepared transaction invalidated the init file.
If that is called 100% of the time, then we
can skip writing an additional record for prepared transactions by
triggering the removal of pg_internal.init when we see a
XLOG_XACT_COMMIT_PREPARED during replay.
Not sure whether we need to do that, Heikki? Anyone?
I'm guessing no, but it seems sensible to check.
If you write the WAL record in RelationCacheInitFileInvalidate(true),
that's enough. No extra handling for prepared transactions is needed.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match