Tom Lane wrote:
>"Stephen R. van den Berg" <srb@cuci.nl> writes:
>> If it's inserted in the "special" area, it will not break any
>> compatibility.
>I'll tell you what I really don't like about this proposal: we discuss
>some scheme or other for taking over the "special space" in heap pages
>at least once a year. None of them have been particularly compelling
>so far, but one may come along that is; especially given that we're now
>trying to maintain on-disk compatibility across versions. So I think
>the opportunity cost of assigning a use to that space is mighty high.
>I don't find this idea important enough to justify foreclosing future
>uses for the special space.
Well, I had (of course) thought of that, and the classical solution to
this is to specify a certain attribute based format in order not to
canabalise the space and block it for further other use.
I.e. in the special area, we could start using something like:
2-byte field length (including the length field), 1-byte identifier,
field content.
For the recovery information I'd like to reserve:
identifier: 00: table OID 01: table layout
>The real bottom line is this: if you care enough about your data to
>be willing to expend a large amount of effort on manual recovery
>attempts, why didn't you have a decent backup scheme in place?
Two obvious valid answers would be: Stupidity and/or ignorance,
sometimes a strain of bad luck.
I know it is a sad state of affairs, but not all users of postgresql
are equally knowledgable/intelligent/responsible.
>There are way too many scenarios where you'll have no hope of doing
>any such manual recovery anyway.
True. It's all a matter of statistics. Judging by the number of reports
I find by googling net-history, I'd have to conclude that the proposed
extra information would have helped more than half of them.
--
Stephen.