1CREATE EXTENSION lo;
2CREATE TABLE image (title text, raster lo);
3CREATE TRIGGER t_raster BEFORE UPDATE OR DELETE ON image
4    FOR EACH ROW EXECUTE PROCEDURE lo_manage(raster);
5SELECT lo_create(43213);
6 lo_create
7-----------
8     43213
9(1 row)
10
11SELECT lo_create(43214);
12 lo_create
13-----------
14     43214
15(1 row)
16
17INSERT INTO image (title, raster) VALUES ('beautiful image', 43213);
18SELECT lo_get(43213);
19 lo_get
20--------
21 \x
22(1 row)
23
24SELECT lo_get(43214);
25 lo_get
26--------
27 \x
28(1 row)
29
30UPDATE image SET raster = 43214 WHERE title = 'beautiful image';
31SELECT lo_get(43213);
32ERROR:  large object 43213 does not exist
33SELECT lo_get(43214);
34 lo_get
35--------
36 \x
37(1 row)
38
39-- test updating of unrelated column
40UPDATE image SET title = 'beautiful picture' WHERE title = 'beautiful image';
41SELECT lo_get(43214);
42 lo_get
43--------
44 \x
45(1 row)
46
47DELETE FROM image;
48SELECT lo_get(43214);
49ERROR:  large object 43214 does not exist
50DROP TABLE image;
51