diff options
Diffstat (limited to 'src/include/access/toast_internals.h')
-rw-r--r-- | src/include/access/toast_internals.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/include/access/toast_internals.h b/src/include/access/toast_internals.h index b4d068459ac..bf118f04829 100644 --- a/src/include/access/toast_internals.h +++ b/src/include/access/toast_internals.h @@ -24,22 +24,23 @@ typedef struct toast_compress_header { int32 vl_len_; /* varlena header (do not touch directly!) */ uint32 tcinfo; /* 2 bits for compression method and 30 bits - * rawsize */ + * external size; see va_extinfo */ } toast_compress_header; /* * Utilities for manipulation of header information for compressed * toast entries. */ -#define TOAST_COMPRESS_METHOD(ptr) \ - (((toast_compress_header *) (ptr))->tcinfo >> VARLENA_RAWSIZE_BITS) -#define TOAST_COMPRESS_SET_SIZE_AND_METHOD(ptr, len, cm_method) \ +#define TOAST_COMPRESS_METHOD(ptr) \ + (((toast_compress_header *) (ptr))->tcinfo >> VARLENA_EXTSIZE_BITS) + +#define TOAST_COMPRESS_SET_SIZE_AND_COMPRESS_METHOD(ptr, len, cm_method) \ do { \ - Assert((len) > 0 && (len) <= VARLENA_RAWSIZE_MASK); \ + Assert((len) > 0 && (len) <= VARLENA_EXTSIZE_MASK); \ Assert((cm_method) == TOAST_PGLZ_COMPRESSION_ID || \ (cm_method) == TOAST_LZ4_COMPRESSION_ID); \ ((toast_compress_header *) (ptr))->tcinfo = \ - ((len) | (cm_method) << VARLENA_RAWSIZE_BITS); \ + (len) | ((uint32) (cm_method) << VARLENA_EXTSIZE_BITS); \ } while (0) extern Datum toast_compress_datum(Datum value, char cmethod); |