I have changed to call pg_exec_query_dest() instead of pg_exec_query().
Thanks.
Hiroshi Inoue
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.31 1999/03/15 14:07:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.32 1999/03/16 03:24:16 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#include "catalog/catname.h"
#include "catalog/pg_database.h"
#include "catalog/pg_shadow.h"
-#include "commands/dbcommands.h"
#include "fmgr.h"
#include "miscadmin.h" /* for DataDir */
#include "storage/bufmgr.h"
#include "storage/fd.h"
#include "storage/lmgr.h"
#include "tcop/tcopprot.h"
+#include "commands/dbcommands.h"
#include "utils/rel.h"
#include "utils/syscache.h"
static void stop_vacuum(char *dbpath, char *dbname);
void
-createdb(char *dbname, char *dbpath, int encoding)
+createdb(char *dbname, char *dbpath, int encoding, CommandDest dest)
{
Oid db_id;
int4 user_id;
"insert into pg_database (datname, datdba, encoding, datpath)"
" values ('%s', '%d', '%d', '%s');", dbname, user_id, encoding, loc);
- pg_exec_query(buf);
+ pg_exec_query_dest(buf, dest, false);
}
void
-destroydb(char *dbname)
+destroydb(char *dbname, CommandDest dest)
{
int4 user_id;
Oid db_id;
*/
snprintf(buf, 512,
"delete from pg_database where pg_database.oid = \'%d\'::oid", db_id);
- pg_exec_query(buf);
+ pg_exec_query_dest(buf ,dest, false);
/* drop pages for this database that are in the shared buffer cache */
DropBuffers(db_id);
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: user.c,v 1.24 1999/02/13 23:15:11 momjian Exp $
+ * $Id: user.c,v 1.25 1999/03/16 03:24:16 momjian Exp $
*
*-------------------------------------------------------------------------
*/
*/
static
void
-UpdatePgPwdFile(char *sql)
+UpdatePgPwdFile(char *sql, CommandDest dest)
{
char *filename,
snprintf(sql, SQL_LENGTH,
"copy %s to '%s' using delimiters %s",
ShadowRelationName, tempname, CRYPT_PWD_FILE_SEPCHAR);
- pg_exec_query(sql);
+ pg_exec_query_dest(sql, dest, false);
rename(tempname, filename);
pfree((void *) tempname);
*---------------------------------------------------------------------
*/
void
-DefineUser(CreateUserStmt *stmt)
+DefineUser(CreateUserStmt *stmt, CommandDest dest)
{
char *pg_shadow,
stmt->password ? stmt->password : "''",
stmt->validUntil ? stmt->validUntil : "");
- pg_exec_query(sql);
+ pg_exec_query_dest(sql, dest, false);
/*
* Add the stuff here for groups.
*/
- UpdatePgPwdFile(sql);
+ UpdatePgPwdFile(sql, dest);
/*
* This goes after the UpdatePgPwdFile to be certain that two backends
extern void
-AlterUser(AlterUserStmt *stmt)
+AlterUser(AlterUserStmt *stmt, CommandDest dest)
{
char *pg_shadow,
snprintf(sql, SQL_LENGTH, "%s where usename = '%s'", sql, stmt->user);
- pg_exec_query(sql);
+ pg_exec_query_dest(sql, dest, false);
/* do the pg_group stuff here */
- UpdatePgPwdFile(sql);
+ UpdatePgPwdFile(sql, dest);
UnlockRelation(pg_shadow_rel, AccessExclusiveLock);
heap_close(pg_shadow_rel);
extern void
-RemoveUser(char *user)
+RemoveUser(char *user, CommandDest dest)
{
char *pg_shadow;
elog(NOTICE, "Dropping database %s", dbase[ndbase]);
snprintf(sql, SQL_LENGTH, "drop database %s", dbase[ndbase]);
pfree((void *) dbase[ndbase]);
- pg_exec_query(sql);
+ pg_exec_query_dest(sql, dest, false);
}
if (dbase)
pfree((void *) dbase);
*/
snprintf(sql, SQL_LENGTH,
"delete from %s where usename = '%s'", ShadowRelationName, user);
- pg_exec_query(sql);
+ pg_exec_query_dest(sql, dest, false);
- UpdatePgPwdFile(sql);
+ UpdatePgPwdFile(sql, dest);
UnlockRelation(pg_shadow_rel, AccessExclusiveLock);
heap_close(pg_shadow_rel);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.57 1999/02/25 17:25:47 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.58 1999/03/16 03:24:17 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#include "utils/syscache.h"
#endif
-void DefineUser(CreateUserStmt *stmt);
-void AlterUser(AlterUserStmt *stmt);
-void RemoveUser(char *username);
+void DefineUser(CreateUserStmt *stmt, CommandDest);
+void AlterUser(AlterUserStmt *stmt, CommandDest);
+void RemoveUser(char *username, CommandDest);
/* ----------------
* CHECK_IF_ABORTED() is used to avoid doing unnecessary
PS_SET_STATUS(commandTag = "CREATEDB");
CHECK_IF_ABORTED();
- createdb(stmt->dbname, stmt->dbpath, stmt->encoding);
+ createdb(stmt->dbname, stmt->dbpath, stmt->encoding, dest);
}
break;
PS_SET_STATUS(commandTag = "DESTROYDB");
CHECK_IF_ABORTED();
- destroydb(stmt->dbname);
+ destroydb(stmt->dbname, dest);
}
break;
PS_SET_STATUS(commandTag = "CREATE USER");
CHECK_IF_ABORTED();
- DefineUser((CreateUserStmt *) parsetree);
+ DefineUser((CreateUserStmt *) parsetree, dest);
break;
case T_AlterUserStmt:
PS_SET_STATUS(commandTag = "ALTER USER");
CHECK_IF_ABORTED();
- AlterUser((AlterUserStmt *) parsetree);
+ AlterUser((AlterUserStmt *) parsetree, dest);
break;
case T_DropUserStmt:
PS_SET_STATUS(commandTag = "DROP USER");
CHECK_IF_ABORTED();
- RemoveUser(((DropUserStmt *) parsetree)->user);
+ RemoveUser(((DropUserStmt *) parsetree)->user, dest);
break;
case T_LockStmt:
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: dbcommands.h,v 1.7 1999/02/13 23:21:18 momjian Exp $
+ * $Id: dbcommands.h,v 1.8 1999/03/16 03:24:18 momjian Exp $
*
*-------------------------------------------------------------------------
*/
*/
#define SIGKILLDAEMON1 SIGTERM
-extern void createdb(char *dbname, char *dbpath, int encoding);
-extern void destroydb(char *dbname);
+extern void createdb(char *dbname, char *dbpath, int encoding, CommandDest);
+extern void destroydb(char *dbname, CommandDest);
#endif /* DBCOMMANDS_H */
#ifndef USER_H
#define USER_H
-extern void DefineUser(CreateUserStmt *stmt);
-extern void AlterUser(AlterUserStmt *stmt);
-extern void RemoveUser(char *user);
+extern void DefineUser(CreateUserStmt *stmt, CommandDest);
+extern void AlterUser(AlterUserStmt *stmt, CommandDest);
+extern void RemoveUser(char *user, CommandDest);
#endif /* USER_H */