Dear Sawada-san, Amit,
> IIUC Change-2 is required in v16 and HEAD but not mandatory in v15 and
> v14. The reason why we need Change-2 is that there is a case where we
> mark only subtransactions as containing catalog change while not doing
> that for its top-level transaction. In v15 and v14, since we mark both
> subtransactions and top-level transaction in
> SnapBuildXidSetCatalogChanges() as containing catalog changes, we
> don't get the assertion failure at "Assert(!needs_snapshot ||
> needs_timetravel)".
Incidentally, I agreed that Change-2 is needed for HEAD (and v16), not v15 and v14.
Best Regards,
Hayato Kuroda
FUJITSU LIMITED