mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
xlog.c is huge, this makes it a little bit smaller, which is nice. Functions related to putting together the WAL record are in xloginsert.c, and the lower level stuff for managing WAL buffers and such are in xlog.c. Also move the definition of XLogRecord to a separate header file. This causes churn in the #includes of all the files that write WAL records, and redo routines, but it avoids pulling in xlog.h into most places. Reviewed by Michael Paquier, Alvaro Herrera, Andres Freund and Amit Kapila.
64 lines
1.8 KiB
C
64 lines
1.8 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* tablespace.h
|
|
* Tablespace management commands (create/drop tablespace).
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/commands/tablespace.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef TABLESPACE_H
|
|
#define TABLESPACE_H
|
|
|
|
#include "access/xlogrecord.h"
|
|
#include "lib/stringinfo.h"
|
|
#include "nodes/parsenodes.h"
|
|
|
|
/* XLOG stuff */
|
|
#define XLOG_TBLSPC_CREATE 0x00
|
|
#define XLOG_TBLSPC_DROP 0x10
|
|
|
|
typedef struct xl_tblspc_create_rec
|
|
{
|
|
Oid ts_id;
|
|
char ts_path[1]; /* VARIABLE LENGTH STRING */
|
|
} xl_tblspc_create_rec;
|
|
|
|
typedef struct xl_tblspc_drop_rec
|
|
{
|
|
Oid ts_id;
|
|
} xl_tblspc_drop_rec;
|
|
|
|
typedef struct TableSpaceOpts
|
|
{
|
|
int32 vl_len_; /* varlena header (do not touch directly!) */
|
|
float8 random_page_cost;
|
|
float8 seq_page_cost;
|
|
} TableSpaceOpts;
|
|
|
|
extern Oid CreateTableSpace(CreateTableSpaceStmt *stmt);
|
|
extern void DropTableSpace(DropTableSpaceStmt *stmt);
|
|
extern Oid RenameTableSpace(const char *oldname, const char *newname);
|
|
extern Oid AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt);
|
|
|
|
extern void TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo);
|
|
|
|
extern Oid GetDefaultTablespace(char relpersistence);
|
|
|
|
extern void PrepareTempTablespaces(void);
|
|
|
|
extern Oid get_tablespace_oid(const char *tablespacename, bool missing_ok);
|
|
extern char *get_tablespace_name(Oid spc_oid);
|
|
|
|
extern bool directory_is_empty(const char *path);
|
|
|
|
extern void tblspc_redo(XLogRecPtr lsn, XLogRecord *rptr);
|
|
extern void tblspc_desc(StringInfo buf, XLogRecord *rptr);
|
|
extern const char *tblspc_identify(uint8 info);
|
|
|
|
#endif /* TABLESPACE_H */
|