From 966115c305c297cf4a1ec5ebbd0a55be46ff33ad Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 25 Dec 2014 13:22:55 -0500 Subject: [PATCH] Temporarily revert "Move pg_lzcompress.c to src/common." This reverts commit 60838df922345b26a616e49ac9fab808a35d1f85. That change needs a bit more thought to be workable. In view of the potentially machine-dependent stuff that went in today, we need all of the buildfarm to be testing those other changes. --- src/backend/access/heap/tuptoaster.c | 11 ++++------ src/backend/utils/adt/Makefile | 4 ++-- .../utils/adt}/pg_lzcompress.c | 21 +++++++------------ src/common/Makefile | 3 +-- src/include/{common => utils}/pg_lzcompress.h | 4 ++-- src/tools/msvc/Mkvcbuild.pm | 3 +-- 6 files changed, 17 insertions(+), 29 deletions(-) rename src/{common => backend/utils/adt}/pg_lzcompress.c (97%) rename src/include/{common => utils}/pg_lzcompress.h (96%) diff --git a/src/backend/access/heap/tuptoaster.c b/src/backend/access/heap/tuptoaster.c index c91bdc0d3f..d230387c85 100644 --- a/src/backend/access/heap/tuptoaster.c +++ b/src/backend/access/heap/tuptoaster.c @@ -37,7 +37,7 @@ #include "catalog/catalog.h" #include "miscadmin.h" #include "utils/fmgroids.h" -#include "common/pg_lzcompress.h" +#include "utils/pg_lzcompress.h" #include "utils/rel.h" #include "utils/typcache.h" #include "utils/tqual.h" @@ -142,8 +142,7 @@ heap_tuple_untoast_attr(struct varlena * attr) attr = (struct varlena *) palloc(PGLZ_RAW_SIZE(tmp) + VARHDRSZ); SET_VARSIZE(attr, PGLZ_RAW_SIZE(tmp) + VARHDRSZ); - if (!pglz_decompress(tmp, VARDATA(attr))) - elog(ERROR, "compressed data is corrupted"); + pglz_decompress(tmp, VARDATA(attr)); pfree(tmp); } } @@ -168,8 +167,7 @@ heap_tuple_untoast_attr(struct varlena * attr) attr = (struct varlena *) palloc(PGLZ_RAW_SIZE(tmp) + VARHDRSZ); SET_VARSIZE(attr, PGLZ_RAW_SIZE(tmp) + VARHDRSZ); - if (!pglz_decompress(tmp, VARDATA(attr))) - elog(ERROR, "compressed data is corrupted"); + pglz_decompress(tmp, VARDATA(attr)); } else if (VARATT_IS_SHORT(attr)) { @@ -241,8 +239,7 @@ heap_tuple_untoast_attr_slice(struct varlena * attr, preslice = (struct varlena *) palloc(size); SET_VARSIZE(preslice, size); - if (!pglz_decompress(tmp, VARDATA(preslice))) - elog(ERROR, "compressed data is corrupted"); + pglz_decompress(tmp, VARDATA(preslice)); if (tmp != (PGLZ_Header *) attr) pfree(tmp); diff --git a/src/backend/utils/adt/Makefile b/src/backend/utils/adt/Makefile index 20e5ff10c7..3ea9bf435a 100644 --- a/src/backend/utils/adt/Makefile +++ b/src/backend/utils/adt/Makefile @@ -25,8 +25,8 @@ OBJS = acl.o arrayfuncs.o array_selfuncs.o array_typanalyze.o \ jsonfuncs.o like.o lockfuncs.o mac.o misc.o nabstime.o name.o \ network.o network_gist.o network_selfuncs.o \ numeric.o numutils.o oid.o oracle_compat.o \ - orderedsetaggs.o pg_locale.o pg_lsn.o pgstatfuncs.o \ - pseudotypes.o quote.o rangetypes.o rangetypes_gist.o \ + orderedsetaggs.o pg_lzcompress.o pg_locale.o pg_lsn.o \ + pgstatfuncs.o pseudotypes.o quote.o rangetypes.o rangetypes_gist.o \ rangetypes_selfuncs.o rangetypes_spgist.o rangetypes_typanalyze.o \ regexp.o regproc.o ri_triggers.o rowtypes.o ruleutils.o \ selfuncs.o tid.o timestamp.o trigfuncs.o \ diff --git a/src/common/pg_lzcompress.c b/src/backend/utils/adt/pg_lzcompress.c similarity index 97% rename from src/common/pg_lzcompress.c rename to src/backend/utils/adt/pg_lzcompress.c index 9f97c362d1..fe088901f0 100644 --- a/src/common/pg_lzcompress.c +++ b/src/backend/utils/adt/pg_lzcompress.c @@ -27,7 +27,7 @@ * FALSE if not; in the latter case the contents of dest * are undefined. * - * bool + * void * pglz_decompress(const PGLZ_Header *source, char *dest) * * source is the compressed input. @@ -40,10 +40,6 @@ * The data is written to buff exactly as it was handed * to pglz_compress(). No terminating zero byte is added. * - * The return value is TRUE if decompression succeeded, - * FALSE if not; in the latter case the contents of dest - * are undefined. - * * The decompression algorithm and internal data format: * * PGLZ_Header is defined as @@ -173,14 +169,14 @@ * * Copyright (c) 1999-2014, PostgreSQL Global Development Group * - * src/common/pg_lzcompress.c + * src/backend/utils/adt/pg_lzcompress.c * ---------- */ #include "postgres.h" #include -#include "common/pg_lzcompress.h" +#include "utils/pg_lzcompress.h" /* ---------- @@ -496,8 +492,7 @@ pglz_find_match(int16 *hstart, const char *input, const char *end, /* ---------- * pglz_compress - * - * Compresses source into dest using strategy. Returns false if a failure - * occurred, true in case of success. + * Compresses source into dest using strategy. * ---------- */ bool @@ -683,11 +678,10 @@ pglz_compress(const char *source, int32 slen, PGLZ_Header *dest, /* ---------- * pglz_decompress - * - * Decompresses source into dest. Returns false if a failure - * occurred, true in case of success. + * Decompresses source into dest. * ---------- */ -bool +void pglz_decompress(const PGLZ_Header *source, char *dest) { const unsigned char *sp; @@ -777,10 +771,9 @@ pglz_decompress(const PGLZ_Header *source, char *dest) * Check we decompressed the right amount. */ if (dp != destend || sp != srcend) - return false; + elog(ERROR, "compressed data is corrupt"); /* * That's it. */ - return true; } diff --git a/src/common/Makefile b/src/common/Makefile index bd77c1da8c..7edbaaa2c1 100644 --- a/src/common/Makefile +++ b/src/common/Makefile @@ -23,8 +23,7 @@ include $(top_builddir)/src/Makefile.global override CPPFLAGS := -DFRONTEND $(CPPFLAGS) LIBS += $(PTHREAD_LIBS) -OBJS_COMMON = exec.o pg_lzcompress.o pgfnames.o psprintf.o relpath.o \ - rmtree.o username.o wait_error.o +OBJS_COMMON = exec.o pgfnames.o psprintf.o relpath.o rmtree.o username.o wait_error.o OBJS_FRONTEND = $(OBJS_COMMON) fe_memutils.o diff --git a/src/include/common/pg_lzcompress.h b/src/include/utils/pg_lzcompress.h similarity index 96% rename from src/include/common/pg_lzcompress.h rename to src/include/utils/pg_lzcompress.h index f36d2da8ee..4af24a32a4 100644 --- a/src/include/common/pg_lzcompress.h +++ b/src/include/utils/pg_lzcompress.h @@ -3,7 +3,7 @@ * * Definitions for the builtin LZ compressor * - * src/include/common/pg_lzcompress.h + * src/include/utils/pg_lzcompress.h * ---------- */ @@ -107,6 +107,6 @@ extern const PGLZ_Strategy *const PGLZ_strategy_always; */ extern bool pglz_compress(const char *source, int32 slen, PGLZ_Header *dest, const PGLZ_Strategy *strategy); -extern bool pglz_decompress(const PGLZ_Header *source, char *dest); +extern void pglz_decompress(const PGLZ_Header *source, char *dest); #endif /* _PG_LZCOMPRESS_H_ */ diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index 6779b18300..004942ca07 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -76,8 +76,7 @@ sub mkvcbuild push(@pgportfiles, 'rint.c') if ($vsVersion < '12.00'); our @pgcommonallfiles = qw( - exec.c pg_lzcompress.c pgfnames.c psprintf.c relpath.c rmtree.c - username.c wait_error.c); + exec.c pgfnames.c psprintf.c relpath.c rmtree.c username.c wait_error.c); our @pgcommonfrontendfiles = (@pgcommonallfiles, qw(fe_memutils.c)); -- 2.40.0