On Sun, Oct 22, 2000 at 01:26:07AM -0400, Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> >> Next question: why is RelationInitLockInfo using
> >> RelationGetPhysicalRelationName to get the input data for
> >> IsSharedSystemRelationName --- shouldn't that be a test on logical
> >> relation name? Or maybe the entire premise of
> >> IsSharedSystemRelationName is bogus now, and we ought to use some other
> >> way to decide if a relation is cross-database or not?
>
> > No, because if they create a temp table that masks a system table in the
> > current session, you want the physical name so it can know if it is a
> > real system table, or a temp/fake one.
>
> Well, you clearly don't want to be fooled by temp relations. I was
> sorta visualizing a check based on relation OIDs instead of names...
>
Well, when I did a test implementation of OID filenames, lo these many
moons ago, I hacked around this problem by adding the (fixed) shared
system table oids to the static array that is searched for matches by
IsSharedSystemRelationName.
Admittedly, a hack, but it got past all the regresion tests.
Ross
--
Open source code is like a natural resource, it's the result of providing
food and sunshine to programmers, and then staying out of their way.
[...] [It] is not going away because it has utility for both the developers
and users independent of economic motivations. Jim Flynn, Sunnyvale, Calif.