lo: Add test suite

Reviewed-by: David Steele <david@pgmasters.net>
This commit is contained in:
Peter Eisentraut 2017-08-11 21:04:04 -04:00
parent 6141123a82
commit 4cb89d8306
5 changed files with 74 additions and 1 deletions

4
contrib/lo/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
# Generated subdirectories
/log/
/results/
/tmp_check/

View File

@ -6,6 +6,8 @@ EXTENSION = lo
DATA = lo--1.1.sql lo--1.0--1.1.sql lo--unpackaged--1.0.sql
PGFILEDESC = "lo - management for large objects"
REGRESS = lo
ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)

View File

@ -0,0 +1,42 @@
CREATE EXTENSION lo;
CREATE TABLE image (title text, raster lo);
CREATE TRIGGER t_raster BEFORE UPDATE OR DELETE ON image
FOR EACH ROW EXECUTE PROCEDURE lo_manage(raster);
SELECT lo_create(43213);
lo_create
-----------
43213
(1 row)
SELECT lo_create(43214);
lo_create
-----------
43214
(1 row)
INSERT INTO image (title, raster) VALUES ('beautiful image', 43213);
SELECT lo_get(43213);
lo_get
--------
\x
(1 row)
SELECT lo_get(43214);
lo_get
--------
\x
(1 row)
UPDATE image SET raster = 43214 WHERE title = 'beautiful image';
SELECT lo_get(43213);
ERROR: large object 43213 does not exist
SELECT lo_get(43214);
lo_get
--------
\x
(1 row)
DELETE FROM image;
SELECT lo_get(43214);
ERROR: large object 43214 does not exist
DROP TABLE image;

25
contrib/lo/sql/lo.sql Normal file
View File

@ -0,0 +1,25 @@
CREATE EXTENSION lo;
CREATE TABLE image (title text, raster lo);
CREATE TRIGGER t_raster BEFORE UPDATE OR DELETE ON image
FOR EACH ROW EXECUTE PROCEDURE lo_manage(raster);
SELECT lo_create(43213);
SELECT lo_create(43214);
INSERT INTO image (title, raster) VALUES ('beautiful image', 43213);
SELECT lo_get(43213);
SELECT lo_get(43214);
UPDATE image SET raster = 43214 WHERE title = 'beautiful image';
SELECT lo_get(43213);
SELECT lo_get(43214);
DELETE FROM image;
SELECT lo_get(43214);
DROP TABLE image;

View File

@ -67,7 +67,7 @@
</para>
<programlisting>
CREATE TABLE image (title TEXT, raster lo);
CREATE TABLE image (title text, raster lo);
CREATE TRIGGER t_raster BEFORE UPDATE OR DELETE ON image
FOR EACH ROW EXECUTE PROCEDURE lo_manage(raster);