>> Hm, buildfarm's not complaining --- what's the test case?
> This was discovered while testing/reviewing the latest version of the > INCLUDE covering indexes patch. It now seems to be unrelated.
Oh, wait ... I wonder if you saw that because you were running a new backend without having re-initdb'd? Once you had re-initdb'd, then of course there would be no old-format btree indexes anywhere. But if you hadn't, then anyplace that was not prepared to cope with the old header format would complain about pre-existing indexes.
In short, this sounds like a place that did not get the memo about how to cope with un-upgraded indexes.
That's an issue, because meta-page should be upgraded "on the fly".
That was tested, but perhaps without assertions. I'll investigate more on
this an propose a fix.
So, "Assert(metad->btm_version == BTREE_VERSION)" was failed, because
metadata was copied from meta page to rel->rd_amcache "as is" with
metad->btm_version == BTREE_MIN_VERSION.
Without assert everything works fine, because extended metadata fields are
never used from rel->rd_amcache. So my first intention was to relax this
assert to Assert(metad->btm_version >= BTREE_MIN_VERSION && metad->btm_version <= BTREE_VERSION).
But then I still have concern that we copy metadata beyond pd_lower