mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	This provides a mechanism for specifying conversions between SQL data types and procedural languages. As examples, there are transforms for hstore and ltree for PL/Perl and PL/Python. reviews by Pavel Stěhule and Andres Freund
		
			
				
	
	
		
			38 lines
		
	
	
		
			692 B
		
	
	
	
		
			PL/PgSQL
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			692 B
		
	
	
	
		
			PL/PgSQL
		
	
	
	
	
	
| CREATE EXTENSION plpython2u;
 | |
| CREATE EXTENSION ltree_plpython2u;
 | |
| 
 | |
| 
 | |
| CREATE FUNCTION test1(val ltree) RETURNS int
 | |
| LANGUAGE plpythonu
 | |
| TRANSFORM FOR TYPE ltree
 | |
| AS $$
 | |
| plpy.info(repr(val))
 | |
| return len(val)
 | |
| $$;
 | |
| 
 | |
| SELECT test1('aa.bb.cc'::ltree);
 | |
| 
 | |
| 
 | |
| CREATE FUNCTION test1n(val ltree) RETURNS int
 | |
| LANGUAGE plpython2u
 | |
| TRANSFORM FOR TYPE ltree
 | |
| AS $$
 | |
| plpy.info(repr(val))
 | |
| return len(val)
 | |
| $$;
 | |
| 
 | |
| SELECT test1n('aa.bb.cc'::ltree);
 | |
| 
 | |
| 
 | |
| CREATE FUNCTION test2() RETURNS ltree
 | |
| LANGUAGE plpythonu
 | |
| TRANSFORM FOR TYPE ltree
 | |
| AS $$
 | |
| return ['foo', 'bar', 'baz']
 | |
| $$;
 | |
| 
 | |
| -- plpython to ltree is not yet implemented, so this will fail,
 | |
| -- because it will try to parse the Python list as an ltree input
 | |
| -- string.
 | |
| SELECT test2();
 |