Published on Sat, Jun 2, 2012
PostgresPlus Advance Server 9.1(PPAS) is EnterpriseDB product, which comes with enterprise features as additional with community PostgreSQL. Most of the contrib modules(pgfoundry) can be pluged into this product using Stackbuilder. However,currently Pl/Proxy is not bundled or downloadable with Stack-builder. So,here is how you can compile the Pl/Proxy with PPAS 9.1.
Download Pl/Proxy.
wget http://pgfoundry.org/frs/download.php/3274/plproxy-2.4.tar.gz tar -xvf plproxy-2.4.tar.gz make PG_CONFIG=/opt/PostgresPlus/9.1AS/bin/pg_config make intall PG_CONFIG=/opt/PostgresPlus/9.1AS/bin/pg_config
Note: Flex & Bison must be installed before compiling pl/proxy.
After sucessfull configuration, you get two files, plproxy.so in
$PGPATH/lib & plproxy–2.4.0.sql in $PGPATH/share/extention/ location.
Execute the .sql file which creates call_handler & language.
bash-4.1$ psql -p 5444 -U enterprisedb -d edb -f /opt/PostgresPlus/9.1AS/share/extension/plproxy–2.4.0.sql CREATE FUNCTION CREATE LANGUAGE CREATE FUNCTION CREATE FOREIGN DATA WRAPPER
Now you can see the language installed.
edb=# \dL
List of languages
Name | Owner | Trusted
---------+--------------+---------
edbspl | enterprisedb | t
plpgsql | enterprisedb | t
plproxy | enterprisedb | f
(3 rows)
Lets test the sample code with pl/proxy.
create table users(username text,blog text); insert into users values(‘Raghav’,‘raghavt.blogspot.com’);
CREATE or replace FUNCTION get_user_blog(i_username text) RETURNS SETOF text AS $$ CONNECT ‘dbname=edb’; SELECT blog FROM users WHERE username = $1; $$ LANGUAGE plproxy;
raghavt.blogspot.com (1 rows)
All set to go testing with pl/proxy on PPAS 9.1. If you want to know how
to setup pl/proxy, follow below links.
http://www.depesz.com/2011/12/02/the-secret-ingredient-in-the-webscale-sauce/
http://kaiv.wordpress.com/2007/07/27/postgresql-cluster-partitioning-with-plproxy-part-i/
–Raghav