I think a safer fix is to replace the IsUnderPostmaster check in heap_create_with_catalog with !IsBootstrapProcessingMode() or the like. That would have the result that we'd create array types for the information_schema views, as well as the system views made in system_views.sql, which is slightly annoying but probably no real harm in the big scheme of things. (I wonder if we ought to reverse the sense of the adjacent relkind check, turning it into a blacklist, while at it.)
Thank you for the explanation.
I prefer to change the conditions too.
I remain however of the opinion that doing this sort of thing in single-user mode, or really much of anything beyond emergency vacuuming, is unwise.
I do agree with you, but there is no clear point in the document (maybe I did not read it all),
it is recommended to make it clear in the document.