Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/libwebrtc/moz-patch-stack/   (Postgres Database Version 18.4©)  Datei vom 27.6.2026 mit Größe 1 kB image not shown  

SSL pg_lzcompress.h   Sprache: unbekannt

 
/* ----------
 * pg_lzcompress.h -
 *
 * Definitions for the builtin LZ compressor
 *
 * src/include/common/pg_lzcompress.h
 * ----------
 */


#ifndef _PG_LZCOMPRESS_H_
#define _PG_LZCOMPRESS_H_


/* ----------
 * PGLZ_MAX_OUTPUT -
 *
 *  Macro to compute the buffer size required by pglz_compress().
 *  We allow 4 bytes for overrun before detecting compression failure.
 * ----------
 */

#define PGLZ_MAX_OUTPUT(_dlen)   ((_dlen) + 4)


/* ----------
 * PGLZ_Strategy -
 *
 *  Some values that control the compression algorithm.
 *
 *  min_input_size  Minimum input data size to consider compression.
 *
 *  max_input_size  Maximum input data size to consider compression.
 *
 *  min_comp_rate  Minimum compression rate (0-99%) to require.
 *       Regardless of min_comp_rate, the output must be
 *       smaller than the input, else we don't store
 *       compressed.
 *
 *  first_success_by Abandon compression if we find no compressible
 *       data within the first this-many bytes.
 *
 *  match_size_good  The initial GOOD match size when starting history
 *       lookup. When looking up the history to find a
 *       match that could be expressed as a tag, the
 *       algorithm does not always walk back entirely.
 *       A good match fast is usually better than the
 *       best possible one very late. For each iteration
 *       in the lookup, this value is lowered so the
 *       longer the lookup takes, the smaller matches
 *       are considered good.
 *
 *  match_size_drop  The percentage by which match_size_good is lowered
 *       after each history check. Allowed values are
 *       0 (no change until end) to 100 (only check
 *       latest history entry at all).
 * ----------
 */

typedef struct PGLZ_Strategy
{
 int32  min_input_size;
 int32  max_input_size;
 int32  min_comp_rate;
 int32  first_success_by;
 int32  match_size_good;
 int32  match_size_drop;
} PGLZ_Strategy;


/* ----------
 * The standard strategies
 *
 *  PGLZ_strategy_default  Recommended default strategy for TOAST.
 *
 *  PGLZ_strategy_always  Try to compress inputs of any length.
 *         Fallback to uncompressed storage only if
 *         output would be larger than input.
 * ----------
 */

extern PGDLLIMPORT const PGLZ_Strategy *const PGLZ_strategy_default;
extern PGDLLIMPORT const PGLZ_Strategy *const PGLZ_strategy_always;


/* ----------
 * Global function declarations
 * ----------
 */

extern int32 pglz_compress(const char *source, int32 slen, char *dest,
         const PGLZ_Strategy *strategy);
extern int32 pglz_decompress(const char *source, int32 slen, char *dest,
        int32 rawsize, bool check_complete);
extern int32 pglz_maximum_compressed_size(int32 rawsize,
            int32 total_compressed_size);

#endif       /* _PG_LZCOMPRESS_H_ */

Messung V0.5 in Prozent
C=92 H=99 G=95

[0.12QuellennavigatorsProjekt 2026-08-08]