]> granicus.if.org Git - postgresql/commitdiff
In RelationNameGetRelation(), replace temp table name by
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 4 Sep 1999 21:47:23 +0000 (21:47 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 4 Sep 1999 21:47:23 +0000 (21:47 +0000)
real name before doing lookup.  We only want to index temp tables by their
real names in the relcache, to ensure there's not more than one relcache
entry for them.

src/backend/utils/cache/relcache.c

index 351ae7c6bc8262345de5346809d1697456d1938d..c534db71a43e75237f92496978dce604b925166f 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.69 1999/09/04 18:42:13 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.70 1999/09/04 21:47:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -56,6 +56,7 @@
 #include "utils/builtins.h"
 #include "utils/catcache.h"
 #include "utils/relcache.h"
+#include "utils/temprel.h"
 
 
 static void RelationFlushRelation(Relation *relationPtr,
@@ -1182,6 +1183,7 @@ RelationIdGetRelation(Oid relationId)
 Relation
 RelationNameGetRelation(char *relationName)
 {
+       char       *temprelname;
        Relation        rd;
        RelationBuildDescInfo buildinfo;
 
@@ -1192,6 +1194,15 @@ RelationNameGetRelation(char *relationName)
        IncrHeapAccessStat(local_RelationNameGetRelation);
        IncrHeapAccessStat(global_RelationNameGetRelation);
 
+       /* ----------------
+        *      if caller is looking for a temp relation, substitute its real name;
+        *      we only index temp rels by their real names.
+        * ----------------
+        */
+       temprelname = get_temp_rel_by_name(relationName);
+       if (temprelname)
+               relationName = temprelname;
+
        /* ----------------
         *      first try and get a reldesc from the cache
         * ----------------
@@ -1212,26 +1223,6 @@ RelationNameGetRelation(char *relationName)
        return rd;
 }
 
-/* ----------------
- *             old "getreldesc" interface.
- * ----------------
- */
-#ifdef NOT_USED
-Relation
-getreldesc(char *relationName)
-{
-       /* ----------------
-        *      increment access statistics
-        * ----------------
-        */
-       IncrHeapAccessStat(local_getreldesc);
-       IncrHeapAccessStat(global_getreldesc);
-
-       return RelationNameGetRelation(relationName);
-}
-
-#endif
-
 /* ----------------------------------------------------------------
  *                             cache invalidation support routines
  * ----------------------------------------------------------------