Current LayoutCatalog table, pg_layout, doesn't have about ROW or COLUMN layout. So checkpoint recovery can't decide which layout was used in the recovered tile group from LayoutCatalog. To recover it from LayoutCatalog, all layout info has to insert into pg_layout.
Additionally, layout oid in case of ROW or COLUMN is not initialized when constructed by Layout(const oid_t num_columns, LayoutType layout_type). Actually, a layout oid of default layout in DataTable is not set 0 or 1. It has to initialize according to layout type to insert it into pg_layout.
Current LayoutCatalog table, pg_layout, doesn't have about ROW or COLUMN layout. So checkpoint recovery can't decide which layout was used in the recovered tile group from LayoutCatalog. To recover it from LayoutCatalog, all layout info has to insert into pg_layout.
Additionally, layout oid in case of ROW or COLUMN is not initialized when constructed by
Layout(const oid_t num_columns, LayoutType layout_type)
. Actually, a layout oid of default layout in DataTable is not set 0 or 1. It has to initialize according to layout type to insert it into pg_layout.