Files
2024-11-26 14:44:59 +08:00

968 lines
28 KiB
Plaintext

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=<NULL>
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=<NULL>
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=<NULL>
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=<NULL>
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=<NULL>
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=<NULL>
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=<NULL>
-- 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;