Bruce Momjian <br...@momjian.us> writes:
> ... The idea I had was to create a global structure:

>       struct pg_migrator_oids {
>               Oid     pg_type;
>               Oid     pg_type_array;
>               ...
>       }

> This would initialize to zero as a global structure, and only
> pg_migrator server-side functions set it.

I would prefer *not* to do that, as that makes the list of settable oids
far more public than I would like; also you are totally dependent on
pg_migrator and the backend to be in sync about the definition of that
struct, which is going to be problematic in alpha releases in
particular, since PG_VERSION isn't going to distinguish them.

What I had in mind was more like

        static Oid next_pg_class_oid = InvalidOid;

        void
        set_next_pg_class_oid(Oid oid)
        {
                next_pg_class_oid = oid;
        }

in each module that needs to be able to accept a next-oid setting,
and then the pg_migrator loadable module would expose SQL-callable
wrappers for these functions.  That way, any inconsistency shows up as
a link error: function needed not present.

                        regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to