| 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) |
| |
| -- test updating of unrelated column |
| UPDATE image SET title = 'beautiful picture' WHERE title = 'beautiful image'; |
| 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; |