*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.26 1998/04/05 05:52:00 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.31 1998/07/24 03:31:50 scrappy Exp $
*
* NOTES
* InitPostgres() is the function called from PostgresMain
#include "utils/inval.h"
#include "catalog/catname.h"
+#ifdef MB
+#include "catalog/pg_database_mb.h"
+#include "mb/pg_wchar.h"
+#else
#include "catalog/pg_database.h"
+#endif
#include "libpq/libpq.h"
static void InitUserid(void);
extern char *ExpandDatabasePath(char *name);
+#ifdef MB
+extern void GetRawDatabaseInfo(char *name, Oid *owner, Oid *db_id, char *path, int *encoding);
+#else
extern void GetRawDatabaseInfo(char *name, Oid *owner, Oid *db_id, char *path);
+#endif
static IPCKey PostgresIpcKey;
Oid owner;
char *path,
myPath[MAXPGPATH + 1];
+#ifdef MB
+ int encoding;
+#endif
SetDatabaseName(name);
+#ifdef MB
+ GetRawDatabaseInfo(name, &owner, &MyDatabaseId, myPath, &encoding);
+#else
GetRawDatabaseInfo(name, &owner, &MyDatabaseId, myPath);
+#endif
if (!OidIsValid(MyDatabaseId))
elog(FATAL,
"Database %s does not exist in %s",
- GetDatabaseName(),
+ DatabaseName,
DatabaseRelationName);
path = ExpandDatabasePath(myPath);
SetDatabasePath(path);
+#ifdef MB
+ SetDatabaseEncoding(encoding);
+#endif
return;
} /* InitMyDatabaseInfo() */
int fd;
char errormsg[1000];
- name = GetDatabaseName();
- myPath = GetDatabasePath();
+ name = DatabaseName;
+ myPath = DatabasePath;
if ((fd = open(myPath, O_RDONLY, 0)) == -1)
sprintf(errormsg,
postid = getenv("POSTID");
if (!PointerIsValid(postid))
- {
MyBackendTag = -1;
- }
else
{
MyBackendTag = atoi(postid);
ipc_key = getenv("IPC_KEY");
if (!PointerIsValid(ipc_key))
- {
key = -1;
- }
else
{
key = atoi(ipc_key);
* ----------------
*/
if (MyBackendTag == -1)
- {
MyBackendTag = 1;
- }
key = PrivateIPCKey;
}
#endif
- PostgresIpcKey = key;
- AttachSharedMemoryAndSemaphores(key);
+ if (!IsUnderPostmaster) /* postmaster already did this */
+ {
+ PostgresIpcKey = key;
+ AttachSharedMemoryAndSemaphores(key);
+ }
}
InitLocalBuffer();
if (!TransactionFlushEnabled())
- on_exitpg(FlushBufferPool, (caddr_t) NULL);
+ on_shmem_exit(FlushBufferPool, (caddr_t) NULL);
/* ----------------
* initialize the database id used for system caches and lock tables
* ----------------
*/
PostgresIsInitialized = true;
-/* on_exitpg(DestroyLocalRelList, (caddr_t) NULL); */
+/* on_shmem_exit(DestroyLocalRelList, (caddr_t) NULL); */
/* ----------------
* Done with "InitPostgres", now change to NormalProcessing unless