Philip Warner <pjw@rhyme.com.au> writes:
> The way pg_dump sets the max oid is:
> CREATE TABLE pgdump_oid (dummy int4);
> COPY pgdump_oid WITH OIDS FROM stdin;
> 1282249 0
> \.
> where 1282249 is the max oid you want to set.
> It's pretty crude, but I assume effective.
Ah, right. IIRC there is a check in COPY to set the OID counter to
max(current OID counter, user-supplied OID). So you could use this
technique to install all the BLOBs with the right OIDs, as long as
you were careful to load them in OID order: just load another row
into the temp table each time you need to advance the OID counter.
Kinda klugy, but no backend changes needed.
BTW I'd recommend making pgdump_oid a TEMP table, so that it'll go away
by itself.
regards, tom lane