create extension gms_compress; create schema gms_compress_test; set search_path=gms_compress_test; -- test gms_compress.compress select gms_compress.lz_compress('123'::raw); lz_compress ---------------------------------------------- 1F8B080000000000000363540600CC52A5FA02000000 (1 row) select gms_compress.lz_compress('df'::raw); lz_compress -------------------------------------------- 1F8B0800000000000003BB0F00C8206EC401000000 (1 row) select gms_compress.lz_compress('12ab56'::raw); lz_compress ------------------------------------------------ 1F8B0800000000000003135A1D0600EF3F182F03000000 (1 row) select gms_compress.lz_compress('123'::raw, 1); lz_compress ---------------------------------------------- 1F8B080000000000040363540600CC52A5FA02000000 (1 row) select gms_compress.lz_compress('df'::raw, 6); lz_compress -------------------------------------------- 1F8B0800000000000003BB0F00C8206EC401000000 (1 row) select gms_compress.lz_compress('12ab56'::raw, 9); lz_compress ------------------------------------------------ 1F8B0800000000000203135A1D0600EF3F182F03000000 (1 row) select gms_compress.lz_compress('123'::blob); lz_compress ---------------------------------------------- 1F8B080000000000000363540600CC52A5FA02000000 (1 row) select gms_compress.lz_compress('df'::blob); lz_compress -------------------------------------------- 1F8B0800000000000003BB0F00C8206EC401000000 (1 row) select gms_compress.lz_compress('12ab56'::blob); lz_compress ------------------------------------------------ 1F8B0800000000000003135A1D0600EF3F182F03000000 (1 row) select gms_compress.lz_compress('123'::blob, 1); lz_compress ---------------------------------------------- 1F8B080000000000040363540600CC52A5FA02000000 (1 row) select gms_compress.lz_compress('df'::blob, 6); lz_compress -------------------------------------------- 1F8B0800000000000003BB0F00C8206EC401000000 (1 row) select gms_compress.lz_compress('12ab56'::blob, 9); lz_compress ------------------------------------------------ 1F8B0800000000000203135A1D0600EF3F182F03000000 (1 row) DECLARE content BLOB; r_content BLOB; v_handle int; v_raw raw; r_raw raw; v_bool boolean; BEGIN content := '123'; v_raw := '12345'; r_content := GMS_COMPRESS.LZ_COMPRESS(content); r_raw := GMS_COMPRESS.LZ_COMPRESS(v_raw); RAISE NOTICE 'r_content=%,r_raw=%', r_content, r_raw; r_content := '111'; GMS_COMPRESS.LZ_COMPRESS(content, r_content); RAISE NOTICE 'r_content=%', r_content; END; / NOTICE: r_content=1F8B080000000000000363540600CC52A5FA02000000,r_raw=1F8B080000000000000363547605005B719C4603000000 NOTICE: r_content=1F8B080000000000000363540600CC52A5FA02000000 DECLARE content BLOB; r_content BLOB; v_handle int; v_raw raw; r_raw raw; v_bool boolean; BEGIN content := 'abc'; v_raw := 'df'; r_content := GMS_COMPRESS.LZ_COMPRESS(content, 1); r_raw := GMS_COMPRESS.LZ_COMPRESS(v_raw, 9); RAISE NOTICE 'r_content=%,r_raw=%', r_content, r_raw; r_content := '111'; GMS_COMPRESS.LZ_COMPRESS(content, r_content, 5); RAISE NOTICE 'r_content=%', r_content; END; / NOTICE: r_content=1F8B0800000000000403E3DA0300D205E17902000000,r_raw=1F8B0800000000000203BB0F00C8206EC401000000 NOTICE: r_content=1F8B0800000000000003E3DA0300D205E17902000000 -- abnormal scenario select gms_compress.lz_compress(null::raw); ERROR: compressed data cannot be NULL CONTEXT: referenced column: lz_compress select gms_compress.lz_compress(''::raw); ERROR: compressed data cannot be NULL CONTEXT: referenced column: lz_compress select gms_compress.lz_compress('dfg'::raw); ERROR: invalid hexadecimal digit: "g" LINE 1: select gms_compress.lz_compress('dfg'::raw); ^ CONTEXT: referenced column: lz_compress select gms_compress.lz_compress('dfg'::raw, 5); ERROR: invalid hexadecimal digit: "g" LINE 1: select gms_compress.lz_compress('dfg'::raw, 5); ^ CONTEXT: referenced column: lz_compress select gms_compress.lz_compress('123'::raw, 0); ERROR: compression quality must be within the range of 1 to 9 CONTEXT: referenced column: lz_compress select gms_compress.lz_compress('123'::raw, 10); ERROR: compression quality must be within the range of 1 to 9 CONTEXT: referenced column: lz_compress select gms_compress.lz_compress(null::blob); ERROR: compressed data cannot be NULL CONTEXT: referenced column: lz_compress select gms_compress.lz_compress(''::blob); ERROR: compressed data cannot be NULL CONTEXT: referenced column: lz_compress select gms_compress.lz_compress('dfg'::blob); ERROR: invalid hexadecimal digit: "g" LINE 1: select gms_compress.lz_compress('dfg'::blob); ^ CONTEXT: referenced column: lz_compress select gms_compress.lz_compress('dfg'::blob, 5); ERROR: invalid hexadecimal digit: "g" LINE 1: select gms_compress.lz_compress('dfg'::blob, 5); ^ CONTEXT: referenced column: lz_compress select gms_compress.lz_compress('123'::blob, 0); ERROR: compression quality must be within the range of 1 to 9 CONTEXT: referenced column: lz_compress select gms_compress.lz_compress('123'::blob, 10); ERROR: compression quality must be within the range of 1 to 9 CONTEXT: referenced column: lz_compress DECLARE content BLOB; r_content BLOB; v_raw raw; r_raw raw; BEGIN content := ''; v_raw := 'dfg'; r_content := GMS_COMPRESS.LZ_COMPRESS(content); r_raw := GMS_COMPRESS.LZ_COMPRESS(v_raw); RAISE NOTICE 'r_content=%,r_raw=%', r_content, r_raw; r_content := '111'; GMS_COMPRESS.LZ_COMPRESS(content, r_content); RAISE NOTICE 'r_content=%', r_content; END; / ERROR: invalid hexadecimal digit: "g" CONTEXT: PL/pgSQL function inline_code_block line 7 at assignment DECLARE content BLOB; r_content BLOB; v_raw raw; r_raw raw; BEGIN content := 'abc'; v_raw := 'df'; r_content := GMS_COMPRESS.LZ_COMPRESS(content, 0); r_raw := GMS_COMPRESS.LZ_COMPRESS(v_raw, 10); RAISE NOTICE 'r_content=%,r_raw=%', r_content, r_raw; r_content := '111'; GMS_COMPRESS.LZ_COMPRESS(content, r_content, -1); RAISE NOTICE 'r_content=%', r_content; END; / ERROR: compression quality must be within the range of 1 to 9 CONTEXT: PL/pgSQL function inline_code_block line 8 at assignment -- test gms_compress.lz_uncompress select gms_compress.lz_uncompress(gms_compress.lz_compress('123'::raw)); lz_uncompress --------------- 0123 (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('df'::raw)); lz_uncompress --------------- DF (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('12ab56'::raw)); lz_uncompress --------------- 12AB56 (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('123'::raw, 1)); lz_uncompress --------------- 0123 (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('df'::raw, 6)); lz_uncompress --------------- DF (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('12ab56'::raw, 9)); lz_uncompress --------------- 12AB56 (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('123'::blob)); lz_uncompress --------------- 0123 (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('df'::blob)); lz_uncompress --------------- DF (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('12ab56'::blob)); lz_uncompress --------------- 12AB56 (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('123'::blob, 1)); lz_uncompress --------------- 0123 (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('df'::blob, 6)); lz_uncompress --------------- DF (1 row) select gms_compress.lz_uncompress(gms_compress.lz_compress('12ab56'::blob, 9)); lz_uncompress --------------- 12AB56 (1 row) DECLARE content BLOB; r_content BLOB; v_content BLOB; v_bool boolean; BEGIN content := '123'; v_content := '123'; r_content := GMS_COMPRESS.LZ_COMPRESS(content); GMS_COMPRESS.LZ_UNCOMPRESS(r_content, v_content); RAISE NOTICE 'content=%,r_content=%,v_content=%', content, r_content, v_content; END; / NOTICE: content=0123,r_content=1F8B080000000000000363540600CC52A5FA02000000,v_content=0123 -- abnormal scenario select gms_compress.lz_uncompress(null::raw); ERROR: uncompressed data cannot be NULL CONTEXT: referenced column: lz_uncompress select gms_compress.lz_uncompress(''::raw); ERROR: uncompressed data cannot be NULL CONTEXT: referenced column: lz_uncompress select gms_compress.lz_uncompress('dfg'::raw); ERROR: invalid hexadecimal digit: "g" LINE 1: select gms_compress.lz_uncompress('dfg'::raw); ^ CONTEXT: referenced column: lz_uncompress select gms_compress.lz_uncompress('123'::raw); ERROR: too small, minimum length of gzip format is 14 bytes CONTEXT: referenced column: lz_uncompress select gms_compress.lz_uncompress(null::blob); ERROR: uncompressed data cannot be NULL CONTEXT: referenced column: lz_uncompress select gms_compress.lz_uncompress(''::blob); ERROR: uncompressed data cannot be NULL CONTEXT: referenced column: lz_uncompress select gms_compress.lz_uncompress('dfg'::blob); ERROR: invalid hexadecimal digit: "g" LINE 1: select gms_compress.lz_uncompress('dfg'::blob); ^ CONTEXT: referenced column: lz_uncompress select gms_compress.lz_uncompress('123'::blob); ERROR: too small, minimum length of gzip format is 14 bytes CONTEXT: referenced column: lz_uncompress DECLARE content BLOB; r_content BLOB; v_content BLOB; v_bool boolean; BEGIN r_content := NULL; v_content := '123'; GMS_COMPRESS.LZ_UNCOMPRESS(r_content, v_content); RAISE NOTICE 'content=%,r_content=%,v_content=%', content, r_content, v_content; END; / ERROR: parameter cannot be NULL CONTEXT: SQL statement "CALL gms_compress.lz_uncompress(r_content,v_content)" PL/pgSQL function inline_code_block line 8 at SQL statement DECLARE content BLOB; r_content BLOB; v_content BLOB; v_bool boolean; BEGIN r_content := '123'; v_content := '123'; GMS_COMPRESS.LZ_UNCOMPRESS(r_content, v_content); RAISE NOTICE 'content=%,r_content=%,v_content=%', content, r_content, v_content; END; / ERROR: too small, minimum length of gzip format is 14 bytes CONTEXT: PL/pgSQL function gms_compress.lz_uncompress(blob,blob) line 5 at assignment SQL statement "CALL gms_compress.lz_uncompress(r_content,v_content)" PL/pgSQL function inline_code_block line 8 at SQL statement DECLARE content BLOB; r_content BLOB; v_content BLOB; v_bool boolean; BEGIN content := '123'; r_content := GMS_COMPRESS.LZ_COMPRESS(content); v_content := NULL; GMS_COMPRESS.LZ_UNCOMPRESS(r_content, v_content); RAISE NOTICE 'content=%,r_content=%,v_content=%', content, r_content, v_content; END; / ERROR: parameter cannot be NULL CONTEXT: SQL statement "CALL gms_compress.lz_uncompress(r_content,v_content)" PL/pgSQL function inline_code_block line 9 at SQL statement -- test gms_compress.lz_compress_open and ms_compress.lz_compress_close DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); RAISE NOTICE 'content=%', content; END; / NOTICE: content= DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content,5); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); RAISE NOTICE 'content=%', content; END; / NOTICE: content= DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(1,content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(2,content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(3,content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(4,content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(5,content); END; / -- abnormal scenario DECLARE content BLOB; v_handle int; BEGIN content := ''; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); RAISE NOTICE 'content=%', content; END; / ERROR: NULL input for detoast datum packed CONTEXT: PL/pgSQL function inline_code_block line 5 at assignment DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content, 0); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); RAISE NOTICE 'content=%', content; END; / ERROR: compression quality must be within the range of 1 to 9 CONTEXT: PL/pgSQL function inline_code_block line 5 at assignment DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(0,content); RAISE NOTICE 'content=%', content; END; / ERROR: invalid handle, it be within the range of 1 to 5 CONTEXT: PL/pgSQL function gms_compress.lz_compress_close(integer,blob) line 2 at assignment SQL statement "CALL gms_compress.lz_compress_close(0,content)" PL/pgSQL function inline_code_block line 6 at SQL statement DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_COMPRESS_CLOSE(1,content); RAISE NOTICE 'content=%', content; END; / NOTICE: content= DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle+1,content); RAISE NOTICE 'content=%', content; END; / ERROR: handle 2 is not be used CONTEXT: PL/pgSQL function gms_compress.lz_compress_close(integer,blob) line 2 at assignment SQL statement "CALL gms_compress.lz_compress_close(v_handle+1,content)" PL/pgSQL function inline_code_block line 6 at SQL statement DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_COMPRESS_CLOSE(1,content); RAISE NOTICE 'content=%', content; END; / NOTICE: content= DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); RAISE NOTICE 'content=%', content; END; / ERROR: no handle free, the maximum number of handles is 5 CONTEXT: PL/pgSQL function inline_code_block line 10 at assignment DECLARE content BLOB; v_handle int; BEGIN content := '123'; GMS_COMPRESS.LZ_COMPRESS_CLOSE(1,content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(2,content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(3,content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(4,content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(5,content); GMS_COMPRESS.LZ_COMPRESS_CLOSE(1,content); RAISE NOTICE 'content=%', content; END; / ERROR: handle 1 is not be used CONTEXT: PL/pgSQL function gms_compress.lz_compress_close(integer,blob) line 2 at assignment SQL statement "CALL gms_compress.lz_compress_close(1,content)" PL/pgSQL function inline_code_block line 10 at SQL statement -- test gms_compress.lz_compress_add DECLARE content BLOB; v_handle int; src raw; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); src := '123'; GMS_COMPRESS.LZ_COMPRESS_ADD(v_handle,content,src); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); RAISE NOTICE 'content=%', content; END; / NOTICE: content=1F8B080000000000000363540600CC52A5FA02000000 DECLARE content BLOB; v_handle int; src raw; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); src := '123'; GMS_COMPRESS.LZ_COMPRESS_ADD(v_handle,content,src); GMS_COMPRESS.LZ_COMPRESS_ADD(v_handle,content,src); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); RAISE NOTICE 'content=%', content; END; / NOTICE: content=1F8B0800000000000003635466540600F3008F1804000000 -- abnormal scenario DECLARE content BLOB; v_handle int; src raw; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); src := '123'; GMS_COMPRESS.LZ_COMPRESS_ADD(v_handle,content,NULL); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); RAISE NOTICE 'content=%', content; END; / ERROR: parameter cannot be NULL CONTEXT: SQL statement "CALL gms_compress.lz_compress_add(v_handle,content,NULL)" PL/pgSQL function inline_code_block line 8 at SQL statement DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_COMPRESS_CLOSE(1,content); RAISE NOTICE 'content=%', content; END; / NOTICE: content= DECLARE content BLOB; v_handle int; src raw; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); src := '123'; GMS_COMPRESS.LZ_COMPRESS_ADD(0,content,src); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); RAISE NOTICE 'content=%', content; END; / ERROR: invalid handle, it be within the range of 1 to 5 CONTEXT: SQL statement "CALL gms_compress.compress_add(handle,src)" PL/pgSQL function gms_compress.lz_compress_add(integer,blob,raw) line 5 at PERFORM SQL statement "CALL gms_compress.lz_compress_add(0,content,src)" PL/pgSQL function inline_code_block line 8 at SQL statement DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_COMPRESS_CLOSE(1,content); RAISE NOTICE 'content=%', content; END; / NOTICE: content= DECLARE content BLOB; v_handle int; src raw; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); src := '123'; GMS_COMPRESS.LZ_COMPRESS_ADD(v_handle+1,content,src); GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); RAISE NOTICE 'content=%', content; END; / ERROR: handle 2 is not be used CONTEXT: SQL statement "CALL gms_compress.compress_add(handle,src)" PL/pgSQL function gms_compress.lz_compress_add(integer,blob,raw) line 5 at PERFORM SQL statement "CALL gms_compress.lz_compress_add(v_handle+1,content,src)" PL/pgSQL function inline_code_block line 8 at SQL statement DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_COMPRESS_CLOSE(1,content); RAISE NOTICE 'content=%', content; END; / NOTICE: content= -- test gms_compress.lz_uncompress_open and ms_compress.lz_uncompress_close DECLARE content BLOB; v_handle int; BEGIN content := '123'; content := GMS_COMPRESS.LZ_COMPRESS(content); v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); RAISE NOTICE 'content=%', content; END; / NOTICE: v_handle=1 NOTICE: content=1F8B080000000000000363540600CC52A5FA02000000 DECLARE content BLOB; v_handle int; BEGIN content := '123'; content := GMS_COMPRESS.LZ_COMPRESS(content); v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(1); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(2); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(3); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(4); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(5); END; / NOTICE: v_handle=1 NOTICE: v_handle=2 NOTICE: v_handle=3 NOTICE: v_handle=4 NOTICE: v_handle=5 -- abnormal scenario DECLARE content BLOB; v_handle int; BEGIN content := ''; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); END; / ERROR: uncompress_data can not be NULL CONTEXT: PL/pgSQL function inline_code_block line 5 at assignment DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); 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(v_handle)" PL/pgSQL function inline_code_block line 7 at PERFORM DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(0); END; / ERROR: invalid handle, it be within the range of 1 to 5 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(0)" PL/pgSQL function inline_code_block line 7 at PERFORM DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(2); END; / ERROR: handle 2 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(2)" PL/pgSQL function inline_code_block line 7 at PERFORM DECLARE content BLOB; v_handle int; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(2); END; / ERROR: handle 1 is a compressed handle 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(v_handle)" PL/pgSQL function inline_code_block line 6 at PERFORM DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_COMPRESS_CLOSE(1, content); END; / DECLARE content BLOB; v_handle int; BEGIN content := '123'; content := GMS_COMPRESS.LZ_COMPRESS(content); v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); RAISE NOTICE 'v_handle=%', v_handle; GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(1); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(2); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(3); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(4); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(5); END; / NOTICE: v_handle=1 NOTICE: v_handle=2 NOTICE: v_handle=3 NOTICE: v_handle=4 NOTICE: v_handle=5 ERROR: no handle free, the maximum number of handles is 5 CONTEXT: PL/pgSQL function inline_code_block line 16 at assignment DECLARE content BLOB; v_handle int; BEGIN GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(1); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(2); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(3); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(4); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(5); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(6); END; / ERROR: invalid handle, it be within the range of 1 to 5 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(6)" PL/pgSQL function inline_code_block line 9 at PERFORM -- test gms_compress.lz_uncompress_extract DECLARE content BLOB; v_handle int; v_raw raw; BEGIN content := '123'; content := GMS_COMPRESS.LZ_COMPRESS(content); v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_EXTRACT(v_handle, v_raw); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); RAISE NOTICE 'content=%', content; RAISE NOTICE 'v_raw=%', v_raw; END; / NOTICE: content=1F8B080000000000000363540600CC52A5FA02000000 NOTICE: v_raw=0123 -- abnormal scenario DECLARE content BLOB; v_handle int; v_raw raw; BEGIN content := '123'; content := GMS_COMPRESS.LZ_COMPRESS(content); v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_EXTRACT(0, v_raw); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); RAISE NOTICE 'content=%', content; RAISE NOTICE 'v_raw=%', v_raw; END; / ERROR: invalid handle, it be within the range of 1 to 5 CONTEXT: PL/pgSQL function gms_compress.lz_uncompress_extract(integer,raw) line 2 at assignment SQL statement "CALL gms_compress.lz_uncompress_extract(0,v_raw)" PL/pgSQL function inline_code_block line 8 at SQL statement DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(1); END; / DECLARE content BLOB; v_handle int; v_raw raw; BEGIN content := '123'; content := GMS_COMPRESS.LZ_COMPRESS(content); GMS_COMPRESS.LZ_UNCOMPRESS_EXTRACT(1, v_raw); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); RAISE NOTICE 'content=%', content; RAISE NOTICE 'v_raw=%', v_raw; END; / ERROR: handle 1 is not be used CONTEXT: PL/pgSQL function gms_compress.lz_uncompress_extract(integer,raw) line 2 at assignment SQL statement "CALL gms_compress.lz_uncompress_extract(1,v_raw)" PL/pgSQL function inline_code_block line 7 at SQL statement DECLARE content BLOB; v_handle int; v_raw raw; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_EXTRACT(v_handle, v_raw); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); RAISE NOTICE 'content=%', content; RAISE NOTICE 'v_raw=%', v_raw; END; / 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 7 at SQL statement DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_COMPRESS_CLOSE(1); END; / DECLARE content BLOB; v_handle int; v_raw raw; BEGIN content := '123'; content := GMS_COMPRESS.LZ_COMPRESS(content); v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_EXTRACT(v_handle, v_raw); GMS_COMPRESS.LZ_UNCOMPRESS_EXTRACT(v_handle, v_raw); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); RAISE NOTICE 'content=%', content; RAISE NOTICE 'v_raw=%', v_raw; END; / 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; / DECLARE content BLOB; v_handle int; v_raw raw; BEGIN content := '123'; v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); GMS_COMPRESS.LZ_UNCOMPRESS_EXTRACT(v_handle, v_raw); GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); RAISE NOTICE 'content=%', content; RAISE NOTICE 'v_raw=%', v_raw; END; / ERROR: too small, minimum length of gzip format is 14 bytes 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 7 at SQL statement DECLARE content BLOB; BEGIN GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(1); END; / -- test gms_compress.lz_isopen DECLARE content BLOB; v_handle int; v_bool boolean; BEGIN content := '123'; v_bool := false; v_handle := GMS_COMPRESS.LZ_COMPRESS_OPEN(content); v_bool := GMS_COMPRESS.ISOPEN(v_handle); RAISE NOTICE 'v_bool=%', v_bool; GMS_COMPRESS.LZ_COMPRESS_CLOSE(v_handle,content); v_bool := GMS_COMPRESS.ISOPEN(v_handle); RAISE NOTICE 'v_bool=%', v_bool; END; / NOTICE: v_bool=t NOTICE: v_bool=f DECLARE content BLOB; v_handle int; v_bool boolean; BEGIN content := '123'; v_bool := false; content := GMS_COMPRESS.LZ_COMPRESS(content); v_handle := GMS_COMPRESS.LZ_UNCOMPRESS_OPEN(content); v_bool := GMS_COMPRESS.ISOPEN(v_handle); RAISE NOTICE 'v_bool=%', v_bool; GMS_COMPRESS.LZ_UNCOMPRESS_CLOSE(v_handle); v_bool := GMS_COMPRESS.ISOPEN(v_handle); RAISE NOTICE 'v_bool=%', v_bool; END; / NOTICE: v_bool=t NOTICE: v_bool=f -- abnormal scenario DECLARE v_bool boolean; BEGIN v_bool := true; v_bool := GMS_COMPRESS.ISOPEN(0); RAISE NOTICE 'v_bool=%', v_bool; END; / NOTICE: v_bool=f DECLARE v_bool boolean; BEGIN v_bool := true; v_bool := GMS_COMPRESS.ISOPEN(1); RAISE NOTICE 'v_bool=%', v_bool; END; / NOTICE: v_bool=f reset search_path; drop schema gms_compress_test cascade;