On 09/23/2011 04:35 AM, Hannes Erven wrote:
> thank you for your replies -- unfortunately, I'm not very content with
> "it simply won't work" without understanding what the reasons are. ;-)
>
> Endianness, OK, but that's the same on i32/64 platforms. So is it just
> the length of the int& friends data types? I don't (yet) believe
> there's no way around that.
Theoretically, code could be written that understood the 32-bit form and
translated it to the 64-bit form or vice versa. AFAIK no such code has
been written and I don't think anyone's particularly interested in doing it.
Similarly, it'd be possible to come up with an arch-independent WAL and
datadir format that fixed the sizes and endianness of all
representations. There'd be a performance cost, but it probably wouldn't
be a huge one, and it'd probably be possible to make a "portable format
database" an option that could be chosen at initdb time. Again, though,
I doubt anyone's particularly interested in doing the required work, and
it's not clear a patch would be accepted because of the increased
maintenance and testing burden it'd impose.
--
Craig Ringer