Re: Re: toast by chunk-end (was Re: PG_PAGE_LAYOUT_VERSION 5 - time for change)
От | Tom Lane |
---|---|
Тема | Re: Re: toast by chunk-end (was Re: PG_PAGE_LAYOUT_VERSION 5 - time for change) |
Дата | |
Msg-id | 19781.1227023088@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Re: toast by chunk-end (was Re: PG_PAGE_LAYOUT_VERSION 5 - time for change) (Alvaro Herrera <alvherre@commandprompt.com>) |
Список | pgsql-hackers |
Alvaro Herrera <alvherre@commandprompt.com> writes: > Zdenek Kotala wrote: >> If I'm thinking more, it is not probably CATALOG_VERSION_NO as well. >> Because toast table is created on demand. It is not in BKI. > It's not catversion in the sense that there's no catalog change, but it > certainly requires a catversion bump due to internal changes. > Otherwise, developers who have working data directories today will see > weird errors when they update to a CVS version after this commit. Yes. The real purpose of catversion is to keep developers from wasting time using an incompatible data directory. As far as the point at hand goes: the original discussion about this assumed that we'd add at least one "identity" column to toast tables, which would allow the t_natts of a toast tuple to effectively serve as a version number. So that fixes the problem of how to know what you are looking at. What it doesn't solve is the problem of how to know what range of index values to search for in a partial-fetch operation. If you just scan what would be the expected range of converted chunk positions, you might miss all the old-format entries. Anyone have a clue on that? regards, tom lane
В списке pgsql-hackers по дате отправления: