From 0ca45d51f0d54a2cd2f700c53254fceecbb030e3 Mon Sep 17 00:00:00 2001 From: wangpingyun <2418191738@qq.com> Date: Tue, 26 Nov 2024 14:44:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DLZ=5FUNCOMPRESS=5FEXTRACT?= =?UTF-8?q?=E5=8F=AF=E8=BF=9E=E7=BB=AD=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contrib/gms_compress/expected/gms_compress.out | 11 ++++------- contrib/gms_compress/gms_compress.cpp | 1 + 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/contrib/gms_compress/expected/gms_compress.out b/contrib/gms_compress/expected/gms_compress.out index 464e708ca..a3f3eef76 100644 --- a/contrib/gms_compress/expected/gms_compress.out +++ b/contrib/gms_compress/expected/gms_compress.out @@ -875,19 +875,16 @@ BEGIN RAISE NOTICE 'v_raw=%', v_raw; END; / -NOTICE: content=1F8B080000000000000363540600CC52A5FA02000000 -NOTICE: v_raw=0123 +ERROR: no compressed data found in handle 1 +CONTEXT: PL/pgSQL function gms_compress.lz_uncompress_extract(integer,raw) line 2 at assignment +SQL statement "CALL gms_compress.lz_uncompress_extract(v_handle,v_raw)" +PL/pgSQL function inline_code_block line 9 at SQL statement DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(1); END; / -ERROR: handle 1 is not be used -CONTEXT: SQL statement "CALL gms_compress.uncompress_close(handle)" -PL/pgSQL function gms_compress.lz_uncompress_close(integer) line 2 at PERFORM -SQL statement "CALL gms_compress.lz_uncompress_close(1)" -PL/pgSQL function inline_code_block line 3 at PERFORM DECLARE content BLOB; v_handle int; diff --git a/contrib/gms_compress/gms_compress.cpp b/contrib/gms_compress/gms_compress.cpp index 52999e203..8c8cac0db 100644 --- a/contrib/gms_compress/gms_compress.cpp +++ b/contrib/gms_compress/gms_compress.cpp @@ -261,6 +261,7 @@ Datum gms_lz_uncompress_extract(PG_FUNCTION_ARGS) Size dst_len = 0; bytea *dst = NULL; + compress_cxt->context[handle].compressed_data = NULL; gzip_uncompress(src, src_len, (void**)&dst, &dst_len); SET_VARSIZE(dst, VARHDRSZ + dst_len);