From: Jamison, Kirk/ジャミソン カーク <k.jamison@fujitsu.com>
> I added comment in 0004 the limitation of optimization when there are TOAST
> relations that use NON-PLAIN strategy. i.e. The optimization works if the data
> types used are integers, OID, bytea, etc. But for TOAST-able data types like text,
> the optimization will be skipped and force a full scan during recovery.
bytea is a TOAST-able type.
+ /*
+ * Enter the optimization if the total number of blocks to be
+ * invalidated for all relations is below the full scan threshold.
+ */
+ if (cached && nBlocksToInvalidate < BUF_DROP_FULL_SCAN_THRESHOLD)
Checking cached here doesn't seem to be necessary, because if cached is false, the control goes to the full scan path
asbelow:
+ if (!cached)
+ goto buffer_full_scan;
+
Regards
Takayuki Tsunakawa