968 lines
28 KiB
Plaintext
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;
|