|
8 | 8 | * |
9 | 9 | * |
10 | 10 | * IDENTIFICATION |
11 | | - * $Header: /cvsroot/pgsql/src/backend/catalog/catalog.c,v 1.41 2001/05/3014:15:26 momjian Exp $ |
| 11 | + * $Header: /cvsroot/pgsql/src/backend/catalog/catalog.c,v 1.42 2001/05/3020:52:32 momjian Exp $ |
12 | 12 | * |
13 | 13 | *------------------------------------------------------------------------- |
14 | 14 | */ |
|
22 | 22 | #include"miscadmin.h" |
23 | 23 | #include"utils/lsyscache.h" |
24 | 24 |
|
25 | | -#ifdefOLD_FILE_NAMING |
26 | | -/* |
27 | | - * relpath- construct path to a relation's file |
28 | | - * |
29 | | - * Note that this only works with relations that are visible to the current |
30 | | - * backend, ie, either in the current database or shared system relations. |
31 | | - * |
32 | | - * Result is a palloc'd string. |
33 | | - */ |
34 | | -char* |
35 | | -relpath(constchar*relname) |
36 | | -{ |
37 | | -char*path; |
38 | | - |
39 | | -if (IsSharedSystemRelationName(relname)) |
40 | | -{ |
41 | | -/* Shared system relations live in {datadir}/global */ |
42 | | -size_tbufsize=strlen(DataDir)+8+sizeof(NameData)+1; |
43 | | - |
44 | | -path= (char*)palloc(bufsize); |
45 | | -snprintf(path,bufsize,"%s/global/%s",DataDir,relname); |
46 | | -returnpath; |
47 | | -} |
48 | | - |
49 | | -/* |
50 | | - * If it is in the current database, assume it is in current working |
51 | | - * directory. NB: this does not work during bootstrap! |
52 | | - */ |
53 | | -returnpstrdup(relname); |
54 | | -} |
55 | | - |
56 | | -/* |
57 | | - * relpath_blind- construct path to a relation's file |
58 | | - * |
59 | | - * Construct the path using only the info available to smgrblindwrt, |
60 | | - * namely the names and OIDs of the database and relation.(Shared system |
61 | | - * relations are identified with dbid = 0.) Note that we may have to |
62 | | - * access a relation belonging to a different database! |
63 | | - * |
64 | | - * Result is a palloc'd string. |
65 | | - */ |
66 | | - |
67 | | -char* |
68 | | -relpath_blind(constchar*dbname,constchar*relname, |
69 | | -Oiddbid,Oidrelid) |
70 | | -{ |
71 | | -char*path; |
72 | | - |
73 | | -if (dbid== (Oid)0) |
74 | | -{ |
75 | | -/* Shared system relations live in {datadir}/global */ |
76 | | -path= (char*)palloc(strlen(DataDir)+8+sizeof(NameData)+1); |
77 | | -sprintf(path,"%s/global/%s",DataDir,relname); |
78 | | -} |
79 | | -elseif (dbid==MyDatabaseId) |
80 | | -{ |
81 | | -/* XXX why is this inconsistent with relpath() ? */ |
82 | | -path= (char*)palloc(strlen(DatabasePath)+sizeof(NameData)+2); |
83 | | -sprintf(path,"%s/%s",DatabasePath,relname); |
84 | | -} |
85 | | -else |
86 | | -{ |
87 | | -/* this is work around only !!! */ |
88 | | -chardbpathtmp[MAXPGPATH]; |
89 | | -Oidid; |
90 | | -char*dbpath; |
91 | | - |
92 | | -GetRawDatabaseInfo(dbname,&id,dbpathtmp); |
93 | | - |
94 | | -if (id!=dbid) |
95 | | -elog(FATAL,"relpath_blind: oid of db %s is not %u", |
96 | | -dbname,dbid); |
97 | | -dbpath=ExpandDatabasePath(dbpathtmp); |
98 | | -if (dbpath==NULL) |
99 | | -elog(FATAL,"relpath_blind: can't expand path for db %s", |
100 | | -dbname); |
101 | | -path= (char*)palloc(strlen(dbpath)+sizeof(NameData)+2); |
102 | | -sprintf(path,"%s/%s",dbpath,relname); |
103 | | -pfree(dbpath); |
104 | | -} |
105 | | -returnpath; |
106 | | -} |
107 | | - |
108 | | -#else/* ! OLD_FILE_NAMING */ |
109 | | - |
110 | 25 | /* |
111 | 26 | * relpath- construct path to a relation's file |
112 | 27 | * |
@@ -157,7 +72,6 @@ GetDatabasePath(Oid tblNode) |
157 | 72 | returnpath; |
158 | 73 | } |
159 | 74 |
|
160 | | -#endif/* OLD_FILE_NAMING */ |
161 | 75 |
|
162 | 76 | /* |
163 | 77 | * IsSystemRelationName |
|