mirror of
https://github.com/postgres/postgres.git
synced 2025-10-25 13:17:41 +03:00
Refactor sharedfileset.c to separate out fileset implementation.
Move fileset related implementation out of sharedfileset.c to allow its usage by backends that don't want to share filesets among different processes. After this split, fileset infrastructure is used by both sharedfileset.c and worker.c for the named temporary files that survive across transactions. Author: Dilip Kumar, based on suggestion by Andres Freund Reviewed-by: Hou Zhijie, Masahiko Sawada, Amit Kapila Discussion: https://postgr.es/m/E1mCC6U-0004Ik-Fs@gemulon.postgresql.org
This commit is contained in:
40
src/include/storage/fileset.h
Normal file
40
src/include/storage/fileset.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* fileset.h
|
||||
* Management of named temporary files.
|
||||
*
|
||||
* Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* src/include/storage/fileset.h
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef FILESET_H
|
||||
#define FILESET_H
|
||||
|
||||
#include "storage/fd.h"
|
||||
|
||||
/*
|
||||
* A set of temporary files.
|
||||
*/
|
||||
typedef struct FileSet
|
||||
{
|
||||
pid_t creator_pid; /* PID of the creating process */
|
||||
uint32 number; /* per-PID identifier */
|
||||
int ntablespaces; /* number of tablespaces to use */
|
||||
Oid tablespaces[8]; /* OIDs of tablespaces to use. Assumes that
|
||||
* it's rare that there more than temp
|
||||
* tablespaces. */
|
||||
} FileSet;
|
||||
|
||||
extern void FileSetInit(FileSet *fileset);
|
||||
extern File FileSetCreate(FileSet *fileset, const char *name);
|
||||
extern File FileSetOpen(FileSet *fileset, const char *name,
|
||||
int mode);
|
||||
extern bool FileSetDelete(FileSet *fileset, const char *name,
|
||||
bool error_on_failure);
|
||||
extern void FileSetDeleteAll(FileSet *fileset);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user