aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/pg_lzcompress.c
diff options
context:
space:
mode:
authorJan Wieck <JanWieck@Yahoo.com>2000-07-03 23:10:14 +0000
committerJan Wieck <JanWieck@Yahoo.com>2000-07-03 23:10:14 +0000
commit57d8080a40f51e1ff9eedea602e96e2612161d77 (patch)
tree6dbed1f7333436cb08af6e7c0d9c55ac5e064750 /src/backend/utils/adt/pg_lzcompress.c
parentef5bea51e17d36ab06e7e67847a8b1e489d6d189 (diff)
downloadpostgresql-57d8080a40f51e1ff9eedea602e96e2612161d77.tar.gz
postgresql-57d8080a40f51e1ff9eedea602e96e2612161d77.zip
TOAST
WARNING: This is actually broken - we have self-deadlocks due to concurrent changes in buffer management. Vadim and me are working on it. Jan
Diffstat (limited to 'src/backend/utils/adt/pg_lzcompress.c')
-rw-r--r--src/backend/utils/adt/pg_lzcompress.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/backend/utils/adt/pg_lzcompress.c b/src/backend/utils/adt/pg_lzcompress.c
index f4e6ac5be37..493b4e64465 100644
--- a/src/backend/utils/adt/pg_lzcompress.c
+++ b/src/backend/utils/adt/pg_lzcompress.c
@@ -1,7 +1,7 @@
/* ----------
* pg_lzcompress.c -
*
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.5 2000/05/30 00:49:53 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.6 2000/07/03 23:09:52 wieck Exp $
*
* This is an implementation of LZ compression for PostgreSQL.
* It uses a simple history table and generates 2-3 byte tags
@@ -582,11 +582,15 @@ pglz_compress(char *source, int slen, PGLZ_Header *dest, PGLZ_Strategy *strategy
* ----------
*/
if (do_compress)
- return (dest->varsize = result_size + sizeof(PGLZ_Header));
+ {
+ dest->varsize = result_size + sizeof(PGLZ_Header);
+ return VARATT_SIZE(dest);
+ }
else
{
memcpy(((char *) dest) + sizeof(PGLZ_Header), source, slen);
- return (dest->varsize = slen + sizeof(PGLZ_Header));
+ dest->varsize = slen + sizeof(PGLZ_Header);
+ return VARATT_SIZE(dest);
}
}
@@ -609,10 +613,10 @@ pglz_decompress(PGLZ_Header *source, char *dest)
int32 off;
dp = ((unsigned char *) source) + sizeof(PGLZ_Header);
- dend = ((unsigned char *) source) + source->varsize;
+ dend = ((unsigned char *) source) + VARATT_SIZE(source);
bp = (unsigned char *) dest;
- if (source->varsize == source->rawsize + sizeof(PGLZ_Header))
+ if (VARATT_SIZE(source) == source->rawsize + sizeof(PGLZ_Header))
{
memcpy(dest, dp, source->rawsize);
return source->rawsize;