postgresql/src/include/common/compression.h
Michael Paquier a4b57543ac Rename backup_compression.{c,h} to compression.{c,h}
Compression option handling (level, algorithm or even workers) can be
used across several parts of the system and not only base backups.
Structures, objects and routines are renamed in consequence, to remove
the concept of base backups from this part of the code making this
change straight-forward.

pg_receivewal, that has gained support for LZ4 since babbbb5, will make
use of this infrastructure for its set of compression options, bringing
more consistency with pg_basebackup.  This cleanup needs to be done
before releasing a beta of 15.  pg_dump is a potential future target, as
well, and adding more compression options to it may happen in 16~.

Author: Michael Paquier
Reviewed-by: Robert Haas, Georgios Kokolatos
Discussion: https://postgr.es/m/YlPQGNAAa04raObK@paquier.xyz
2022-04-12 13:38:54 +09:00

47 lines
1.3 KiB
C

/*-------------------------------------------------------------------------
*
* compression.h
*
* Shared definitions for compression methods and specifications.
*
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
*
* IDENTIFICATION
* src/common/compression.h
*-------------------------------------------------------------------------
*/
#ifndef PG_COMPRESSION_H
#define PG_COMPRESSION_H
typedef enum pg_compress_algorithm
{
PG_COMPRESSION_NONE,
PG_COMPRESSION_GZIP,
PG_COMPRESSION_LZ4,
PG_COMPRESSION_ZSTD
} pg_compress_algorithm;
#define PG_COMPRESSION_OPTION_LEVEL (1 << 0)
#define PG_COMPRESSION_OPTION_WORKERS (1 << 1)
typedef struct pg_compress_specification
{
pg_compress_algorithm algorithm;
unsigned options; /* OR of PG_COMPRESSION_OPTION constants */
int level;
int workers;
char *parse_error; /* NULL if parsing was OK, else message */
} pg_compress_specification;
extern bool parse_compress_algorithm(char *name, pg_compress_algorithm *algorithm);
extern const char *get_compress_algorithm_name(pg_compress_algorithm algorithm);
extern void parse_compress_specification(pg_compress_algorithm algorithm,
char *specification,
pg_compress_specification *result);
extern char *validate_compress_specification(pg_compress_specification *);
#endif