aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2017-08-11 21:04:04 -0400
committerPeter Eisentraut <peter_e@gmx.net>2017-09-14 22:22:59 -0400
commit4cb89d830626d009ed6a4482bed3a141c5039a7c (patch)
tree01f869883d291127313c415f83862ee99fed1261
parent6141123a827a47d02b8b6c8eb97643c33aa4461d (diff)
downloadpostgresql-4cb89d830626d009ed6a4482bed3a141c5039a7c.tar.gz
postgresql-4cb89d830626d009ed6a4482bed3a141c5039a7c.zip
lo: Add test suite
Reviewed-by: David Steele <david@pgmasters.net>
-rw-r--r--contrib/lo/.gitignore4
-rw-r--r--contrib/lo/Makefile2
-rw-r--r--contrib/lo/expected/lo.out42
-rw-r--r--contrib/lo/sql/lo.sql25
-rw-r--r--doc/src/sgml/lo.sgml2
5 files changed, 74 insertions, 1 deletions
diff --git a/contrib/lo/.gitignore b/contrib/lo/.gitignore
new file mode 100644
index 00000000000..5dcb3ff9723
--- /dev/null
+++ b/contrib/lo/.gitignore
@@ -0,0 +1,4 @@
+# Generated subdirectories
+/log/
+/results/
+/tmp_check/
diff --git a/contrib/lo/Makefile b/contrib/lo/Makefile
index 71f0cb0d249..bd4fd6b72dd 100644
--- a/contrib/lo/Makefile
+++ b/contrib/lo/Makefile
@@ -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
index 00000000000..f7104aee3f0
--- /dev/null
+++ b/contrib/lo/expected/lo.out
@@ -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
index 00000000000..34ba6f00ec0
--- /dev/null
+++ b/contrib/lo/sql/lo.sql
@@ -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;
diff --git a/doc/src/sgml/lo.sgml b/doc/src/sgml/lo.sgml
index cd4ed6030b7..9c318f1c987 100644
--- a/doc/src/sgml/lo.sgml
+++ b/doc/src/sgml/lo.sgml
@@ -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);