mirror of
https://github.com/postgres/postgres.git
synced 2026-02-27 11:50:33 -05:00
Change pg_bsd_indent to follow upstream rules for placement of comments
to the right of code, and remove pgindent hack that caused comments
following #endif to not obey the general rule.
Commit e3860ffa4d wasn't actually using
the published version of pg_bsd_indent, but a hacked-up version that
tried to minimize the amount of movement of comments to the right of
code. The situation of interest is where such a comment has to be
moved to the right of its default placement at column 33 because there's
code there. BSD indent has always moved right in units of tab stops
in such cases --- but in the previous incarnation, indent was working
in 8-space tab stops, while now it knows we use 4-space tabs. So the
net result is that in about half the cases, such comments are placed
one tab stop left of before. This is better all around: it leaves
more room on the line for comment text, and it means that in such
cases the comment uniformly starts at the next 4-space tab stop after
the code, rather than sometimes one and sometimes two tabs after.
Also, ensure that comments following #endif are indented the same
as comments following other preprocessor commands such as #else.
That inconsistency turns out to have been self-inflicted damage
from a poorly-thought-through post-indent "fixup" in pgindent.
This patch is much less interesting than the first round of indent
changes, but also bulkier, so I thought it best to separate the effects.
Discussion: https://postgr.es/m/E1dAmxK-0006EE-1r@gemulon.postgresql.org
Discussion: https://postgr.es/m/30527.1495162840@sss.pgh.pa.us
91 lines
2.6 KiB
C
91 lines
2.6 KiB
C
/* ----------
|
|
* 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 const PGLZ_Strategy *const PGLZ_strategy_default;
|
|
extern 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);
|
|
|
|
#endif /* _PG_LZCOMPRESS_H_ */
|