Re: pg_upgrade code questions
Bruce Momjian <bruce@momjian.us>
From: Bruce Momjian <bruce@momjian.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp>, pgsql-hackers@postgresql.org
Date: 2010-05-14T01:13:55Z
Lists: pgsql-hackers
Tom Lane wrote: > Bruce Momjian <bruce@momjian.us> writes: > > Takahiro Itagaki wrote: > >> ==== 2. extern PGDLLIMPORT ==== > >> pg_upgrade has own definitions of > >> extern PGDLLIMPORT Oid binary_upgrade_next_xxx > >> in pg_upgrade_sysoids.c. But those variables are not declared as > >> PGDLLIMPORT in the core. Can we access unexported variables here? > > > 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. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com