citus/src/include/columnar/columnar_compression.h

35 lines
908 B
C

/*-------------------------------------------------------------------------
*
* columnar_compression.h
*
* Type and function declarations for compression methods.
*
* Copyright (c) Citus Data, Inc.
*
*-------------------------------------------------------------------------
*/
#ifndef COLUMNAR_COMPRESSION_H
#define COLUMNAR_COMPRESSION_H
/* Enumaration for columnar table's compression method */
typedef enum
{
COMPRESSION_TYPE_INVALID = -1,
COMPRESSION_NONE = 0,
COMPRESSION_PG_LZ = 1,
COMPRESSION_LZ4 = 2,
COMPRESSION_ZSTD = 3,
COMPRESSION_COUNT
} CompressionType;
extern bool CompressBuffer(StringInfo inputBuffer,
StringInfo outputBuffer,
CompressionType compressionType,
int compressionLevel);
extern StringInfo DecompressBuffer(StringInfo buffer, CompressionType compressionType,
uint64 decompressedSize);
#endif /* COLUMNAR_COMPRESSION_H */