mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-29 22:49:41 +03:00 
			
		
		
		
	This allows a trigger function to determine for an UPDATE trigger which columns were actually updated. This allows some optimizations in generic trigger functions such as lo_manage and tsvector_update_trigger. Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Discussion: https://www.postgresql.org/message-id/flat/11c5f156-67a9-0fb5-8200-2a8018eb2e0c@2ndquadrant.com
		
			
				
	
	
		
			31 lines
		
	
	
		
			656 B
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			656 B
		
	
	
	
		
			SQL
		
	
	
	
	
	
| 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);
 | |
| 
 | |
| -- test updating of unrelated column
 | |
| UPDATE image SET title = 'beautiful picture' WHERE title = 'beautiful image';
 | |
| 
 | |
| SELECT lo_get(43214);
 | |
| 
 | |
| DELETE FROM image;
 | |
| 
 | |
| SELECT lo_get(43214);
 | |
| 
 | |
| DROP TABLE image;
 |