aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/cache
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/cache')
-rw-r--r--src/backend/utils/cache/relcache.c6
-rw-r--r--src/backend/utils/cache/syscache.c4
-rw-r--r--src/backend/utils/cache/temprel.c24
3 files changed, 26 insertions, 8 deletions
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index f780cf96b39..a0b97158602 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.76 1999/11/07 23:08:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.77 1999/11/16 04:13:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -962,7 +962,7 @@ formrdesc(char *relationName,
relation->rd_rel = (Form_pg_class)
palloc((Size) (sizeof(*relation->rd_rel)));
MemSet(relation->rd_rel, 0, sizeof(FormData_pg_class));
- strcpy(RelationGetRelationName(relation), relationName);
+ strcpy(RelationGetPhysicalRelationName(relation), relationName);
/* ----------------
initialize attribute tuple form
@@ -1177,7 +1177,7 @@ RelationNameGetRelation(char *relationName)
* we only index temp rels by their real names.
* ----------------
*/
- temprelname = get_temp_rel_by_name(relationName);
+ temprelname = get_temp_rel_by_username(relationName);
if (temprelname)
relationName = temprelname;
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index 3cb393b802f..476fce4db8c 100644
--- a/src/backend/utils/cache/syscache.c
+++ b/src/backend/utils/cache/syscache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.38 1999/11/01 02:29:25 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.39 1999/11/16 04:13:59 momjian Exp $
*
* NOTES
* These routines allow the parser/planner/executor to perform
@@ -472,7 +472,7 @@ SearchSysCacheTuple(int cacheId,/* cache selection code */
char *nontemp_relname;
if ((nontemp_relname =
- get_temp_rel_by_name(DatumGetPointer(key1))) != NULL)
+ get_temp_rel_by_username(DatumGetPointer(key1))) != NULL)
key1 = PointerGetDatum(nontemp_relname);
}
diff --git a/src/backend/utils/cache/temprel.c b/src/backend/utils/cache/temprel.c
index 0119f9e59ec..d57152d550d 100644
--- a/src/backend/utils/cache/temprel.c
+++ b/src/backend/utils/cache/temprel.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/temprel.c,v 1.15 1999/11/07 23:08:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/temprel.c,v 1.16 1999/11/16 04:13:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -150,7 +150,6 @@ remove_temp_relation(Oid relid)
prev = l;
l = lnext(l);
}
-
}
MemoryContextSwitchTo(oldcxt);
@@ -203,7 +202,7 @@ invalidate_temp_relations(void)
}
char *
-get_temp_rel_by_name(char *user_relname)
+get_temp_rel_by_username(char *user_relname)
{
List *l;
@@ -216,3 +215,22 @@ get_temp_rel_by_name(char *user_relname)
}
return NULL;
}
+
+char *
+get_temp_rel_by_physicalname(char *relname)
+{
+ List *l;
+
+ /* already physical, needed for bootstrapping temp tables */
+ if (strncmp(relname,"pg_temp.", strlen("pg_temp.")) == 0)
+ return relname;
+
+ foreach(l, temp_rels)
+ {
+ TempTable *temp_rel = lfirst(l);
+
+ if (strcmp(temp_rel->relname, relname) == 0)
+ return temp_rel->user_relname;
+ }
+ return NULL;
+}