]> granicus.if.org Git - postgresql/commitdiff
lo: Add test suite
authorPeter Eisentraut <peter_e@gmx.net>
Sat, 12 Aug 2017 01:04:04 +0000 (21:04 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Fri, 15 Sep 2017 02:22:59 +0000 (22:22 -0400)
Reviewed-by: David Steele <david@pgmasters.net>
contrib/lo/.gitignore [new file with mode: 0644]
contrib/lo/Makefile
contrib/lo/expected/lo.out [new file with mode: 0644]
contrib/lo/sql/lo.sql [new file with mode: 0644]
doc/src/sgml/lo.sgml

diff --git a/contrib/lo/.gitignore b/contrib/lo/.gitignore
new file mode 100644 (file)
index 0000000..5dcb3ff
--- /dev/null
@@ -0,0 +1,4 @@
+# Generated subdirectories
+/log/
+/results/
+/tmp_check/
index 71f0cb0d249de84aa839e59306dbe5121fb5ccb5..bd4fd6b72dd8b4031de558e38c6b06836456b175 100644 (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)
diff --git a/contrib/lo/expected/lo.out b/contrib/lo/expected/lo.out
new file mode 100644 (file)
index 0000000..f7104ae
--- /dev/null
@@ -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;
diff --git a/contrib/lo/sql/lo.sql b/contrib/lo/sql/lo.sql
new file mode 100644 (file)
index 0000000..34ba6f0
--- /dev/null
@@ -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;
index cd4ed6030b73029cc7916a100e85f7181cdb3784..9c318f1c987038bccc67b42f37f7db735e1547c0 100644 (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);