mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
This is primarily useful for the upcoming pg_xlogdump --stats feature, but also allows to remove some duplicated code in the rmgr_desc routines. Due to the separation and harmonization, the output of dipsplayed records changes somewhat. But since this isn't enduser oriented content that's ok. It's potentially desirable to further change pg_xlogdump's display of records. It previously wasn't possible to show the record type separately from the description forcing it to be in the last column. But that's better done in a separate commit. Author: Abhijit Menon-Sen, slightly editorialized by me Reviewed-By: Álvaro Herrera, Andres Freund, and Heikki Linnakangas Discussion: 20140604104716.GA3989@toroid.org
72 lines
2.1 KiB
C
72 lines
2.1 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* dbcommands.h
|
|
* Database management commands (create/drop database).
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/commands/dbcommands.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef DBCOMMANDS_H
|
|
#define DBCOMMANDS_H
|
|
|
|
#include "access/xlog.h"
|
|
#include "nodes/parsenodes.h"
|
|
|
|
/* XLOG stuff */
|
|
#define XLOG_DBASE_CREATE 0x00
|
|
#define XLOG_DBASE_DROP 0x10
|
|
|
|
typedef struct xl_dbase_create_rec_old
|
|
{
|
|
/* Records copying of a single subdirectory incl. contents */
|
|
Oid db_id;
|
|
char src_path[1]; /* VARIABLE LENGTH STRING */
|
|
/* dst_path follows src_path */
|
|
} xl_dbase_create_rec_old;
|
|
|
|
typedef struct xl_dbase_drop_rec_old
|
|
{
|
|
/* Records dropping of a single subdirectory incl. contents */
|
|
Oid db_id;
|
|
char dir_path[1]; /* VARIABLE LENGTH STRING */
|
|
} xl_dbase_drop_rec_old;
|
|
|
|
typedef struct xl_dbase_create_rec
|
|
{
|
|
/* Records copying of a single subdirectory incl. contents */
|
|
Oid db_id;
|
|
Oid tablespace_id;
|
|
Oid src_db_id;
|
|
Oid src_tablespace_id;
|
|
} xl_dbase_create_rec;
|
|
|
|
typedef struct xl_dbase_drop_rec
|
|
{
|
|
/* Records dropping of a single subdirectory incl. contents */
|
|
Oid db_id;
|
|
Oid tablespace_id;
|
|
} xl_dbase_drop_rec;
|
|
|
|
extern Oid createdb(const CreatedbStmt *stmt);
|
|
extern void dropdb(const char *dbname, bool missing_ok);
|
|
extern Oid RenameDatabase(const char *oldname, const char *newname);
|
|
extern Oid AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel);
|
|
extern Oid AlterDatabaseSet(AlterDatabaseSetStmt *stmt);
|
|
extern Oid AlterDatabaseOwner(const char *dbname, Oid newOwnerId);
|
|
|
|
extern Oid get_database_oid(const char *dbname, bool missingok);
|
|
extern char *get_database_name(Oid dbid);
|
|
|
|
extern void dbase_redo(XLogRecPtr lsn, XLogRecord *rptr);
|
|
extern void dbase_desc(StringInfo buf, XLogRecord *rptr);
|
|
extern const char *dbase_identify(uint8 info);
|
|
|
|
extern void check_encoding_locale_matches(int encoding, const char *collate, const char *ctype);
|
|
|
|
#endif /* DBCOMMANDS_H */
|