Re: Database file compatability

From: "Qingqing Zhou" <zhouqq(at)cs(dot)toronto(dot)edu>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Database file compatability
Date: 2005-09-28 09:25:49
Message-ID: dhdd1d$2mfg$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


"Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote in message
news:1223(dot)1127878072(at)sss(dot)pgh(dot)pa(dot)us(dot)(dot)(dot)
>
> There are no platforms for which ALIGNOF_SHORT is different from 2.
> I don't think there are any platforms we care about where ALIGNOF_INT
> is different from 4. The cases of interest are ALIGNOF_DOUBLE,
> ALIGNOF_LONG, ALIGNOF_LONG_LONG_INT (note that MAXIMUM_ALIGNOF is
> just the largest of these). In practice "long int" is the same type
> as either "int" or "long long int", so ALIGNOF_LONG isn't a distinct
> case either. What it comes down to is that MAXIMUM_ALIGNOF is
> sufficient to tell the difference between the platforms we need to
> deal with. If you have a counterexample, tell us about it.
>
(1)
Yes, ALIGNOF_SHORT is always 2.

(2)
There is a possible sequence like this:

ALIGNOF_LONG 4
ALIGNOF_DOUBLE 8
MAXIMUM_ALIGNOF 8

vs.

ALIGNOF_LONG 8
ALIGNOF_DOUBLE 8
MAXIMUM_ALIGNOF 8

Eg.
http://developers.sun.com/prodtech/cc/articles/about_amd64_abi.html
http://devrsrc1.external.hp.com/STK/wellbehavedrestrict.html

So we should at least check ALIGNOF_LONG as well.

(3)
There are some machines with sizeof(int) equals to 64, if my memory saves,
which might imply that ALIGNOF_INT equals to 8.

So conservatively, we'd better check ALIGNOF_INT, ALIGNOF_LONG and
MAXIMUM_ALIGNOF.

Regards,
Qingqing

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dmitry Karasik 2005-09-28 12:36:04 execution of prepared statements leaks memory
Previous Message Dave Page 2005-09-28 09:05:48 Re: Making pgxs builds work with a relocated installation