Move temprel name define from temprel.h to rel.h.
This commit is contained in:
parent
d47e10bfde
commit
d9a069e224
@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: rel.h,v 1.47 2001/06/19 05:11:50 tgl Exp $
|
||||
* $Id: rel.h,v 1.48 2001/06/19 12:03:41 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -187,43 +187,6 @@ typedef Relation *RelationPtr;
|
||||
*/
|
||||
#define RelationGetFile(relation) ((relation)->rd_fd)
|
||||
|
||||
/*
|
||||
* RelationGetRelationName
|
||||
*
|
||||
* Returns the relation's logical name (as seen by the user).
|
||||
*
|
||||
* If the rel is a temp rel, the temp name will be returned. Therefore,
|
||||
* this name is not unique. But it is the name to use in heap_openr(),
|
||||
* for example.
|
||||
*/
|
||||
#define RelationGetRelationName(relation) \
|
||||
(\
|
||||
(strncmp(RelationGetPhysicalRelationName(relation), \
|
||||
"pg_temp", 7) != 0) \
|
||||
? \
|
||||
RelationGetPhysicalRelationName(relation) \
|
||||
: \
|
||||
get_temp_rel_by_physicalname( \
|
||||
RelationGetPhysicalRelationName(relation)) \
|
||||
)
|
||||
|
||||
|
||||
/*
|
||||
* RelationGetPhysicalRelationName
|
||||
*
|
||||
* Returns the rel's physical name, ie, the name appearing in pg_class.
|
||||
*
|
||||
* While this name is unique across all rels in the database, it is not
|
||||
* necessarily useful for accessing the rel, since a temp table of the
|
||||
* same name might mask the rel. It is useful mainly for determining if
|
||||
* the rel is a shared system rel or not.
|
||||
*
|
||||
* The macro is rather unfortunately named, since the pg_class name no longer
|
||||
* has anything to do with the file name used for physical storage of the rel.
|
||||
*/
|
||||
#define RelationGetPhysicalRelationName(relation) \
|
||||
(NameStr((relation)->rd_rel->relname))
|
||||
|
||||
/*
|
||||
* RelationGetNumberOfAttributes
|
||||
*
|
||||
@ -254,4 +217,48 @@ extern void RelationSetIndexSupport(Relation relation,
|
||||
IndexStrategy strategy,
|
||||
RegProcedure *support);
|
||||
|
||||
/*
|
||||
* Handle temp relations
|
||||
*/
|
||||
#define PG_TEMP_REL_PREFIX "pg_temp"
|
||||
|
||||
#define is_temp_relname(relname) \
|
||||
(strncmp(relname, PG_TEMP_REL_PREFIX, strlen(PG_TEMP_REL_PREFIX)) == 0)
|
||||
|
||||
/*
|
||||
* RelationGetPhysicalRelationName
|
||||
*
|
||||
* Returns the rel's physical name, ie, the name appearing in pg_class.
|
||||
*
|
||||
* While this name is unique across all rels in the database, it is not
|
||||
* necessarily useful for accessing the rel, since a temp table of the
|
||||
* same name might mask the rel. It is useful mainly for determining if
|
||||
* the rel is a shared system rel or not.
|
||||
*
|
||||
* The macro is rather unfortunately named, since the pg_class name no longer
|
||||
* has anything to do with the file name used for physical storage of the rel.
|
||||
*/
|
||||
#define RelationGetPhysicalRelationName(relation) \
|
||||
(NameStr((relation)->rd_rel->relname))
|
||||
|
||||
/*
|
||||
* RelationGetRelationName
|
||||
*
|
||||
* Returns the relation's logical name (as seen by the user).
|
||||
*
|
||||
* If the rel is a temp rel, the temp name will be returned. Therefore,
|
||||
* this name is not unique. But it is the name to use in heap_openr(),
|
||||
* for example.
|
||||
*/
|
||||
#define RelationGetRelationName(relation) \
|
||||
(\
|
||||
!is_temp_relname(relation) \
|
||||
? \
|
||||
RelationGetPhysicalRelationName(relation) \
|
||||
: \
|
||||
get_temp_rel_by_physicalname( \
|
||||
RelationGetPhysicalRelationName(relation)) \
|
||||
)
|
||||
|
||||
|
||||
#endif /* REL_H */
|
||||
|
@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: temprel.h,v 1.16 2001/06/18 16:13:21 momjian Exp $
|
||||
* $Id: temprel.h,v 1.17 2001/06/19 12:03:41 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -16,11 +16,6 @@
|
||||
|
||||
#include "access/htup.h"
|
||||
|
||||
#define PG_TEMP_REL_PREFIX "pg_temp"
|
||||
|
||||
#define is_temp_relname(relname) \
|
||||
(strncmp(relname, PG_TEMP_REL_PREFIX, strlen(PG_TEMP_REL_PREFIX)) == 0)
|
||||
|
||||
extern void create_temp_relation(const char *relname,
|
||||
HeapTuple pg_class_tuple);
|
||||
extern void remove_temp_rel_by_relid(Oid relid);
|
||||
|
Loading…
x
Reference in New Issue
Block a user