From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Takahiro Itagaki <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: pg_upgrade code questions |
Date: | 2010-05-14 03:34:32 |
Message-ID: | 201005140334.o4E3YW118110@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Takahiro Itagaki wrote:
>
> Bruce Momjian <bruce(at)momjian(dot)us> wrote:
>
> > > >> ==== 2. extern PGDLLIMPORT ====
> > > >> pg_upgrade has own definitions of
> > > >> extern PGDLLIMPORT Oid binary_upgrade_next_xxx
> > >
> > > > The issue here is that you use PGDLLIMPORT where you are importing the
> > > > variable, not where it is defined. For example, look at
> > > > 'seq_page_cost'. You can see PGDLLIMPORT used where it is imported with
> > > > 'extern', but not where is it defined.
> > >
> > > Right. Also we are intentionally not exposing those variables in any
> > > backend .h file, because they are not meant for general use. So the
> > > "extern PGDLLIMPORT" isn't going to be in the main backend and has to
> > > be in pg_upgrade. This was discussed awhile ago when we put in those
> > > variables, I believe.
> >
> > Yes, this was discussed.
>
> I wonder some compilers or linkers might hide unexported global variables
> from postgres.lib as if they are declared with 'static' specifiers.
> I'm especially worried about Windows and MSVC. So, if Windows testers
> can see it works, there was nothing to worry about.
Yes, none of the variables pg_upgrade is referencing are 'static', and
Magnus tested MSVC and checked MinGW compiles.
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Greg Smith | 2010-05-14 03:39:17 | Re: List traffic |
Previous Message | Takahiro Itagaki | 2010-05-14 03:13:09 | Re: nvarchar notation accepted? |