TITLE : PGXN
HEADER:
The PostgreSQL Extension Network (PGXN) is a central distribution system for open-source PostgreSQL extension libraries. It is inspired by the Comprehensive Perl Archive Network (CPAN).
TEXT:
We've seen that PostgreSQL 9.1 allows developers to create extensions. With PGXN, extensions authors can submit their work together with metadata describing them: the packages and their documentation are indexed and distributed across several servers. The system can be accessed through a web interface or command line clients thanks to a simple API.
A comprehensive PGXN client is being developed. It can be installed with:
$ easy_install pgxnclient Searching for pgxnclient ... Best match: pgxnclient 0.2.1 Processing pgxnclient-0.2.1-py2.6.egg ... Installed pgxnclient-0.2.1-py2.6.egg
Among other commands, it allows to search for extensions on the website:
$ pgxn search pair
pair 0.1.3
... Usage There are two ways to construct key/value *pairs*: Via the
*pair*() function: % SELECT *pair*('foo', 'bar'); *pair* ------------
(foo,bar) Or by using the ~> operator: % SELECT 'foo' ~> 'bar';
*pair*...
semver 0.2.2
*pair* │ 0.1.0 │ Key/value *pair* data type Note that "0.35.0b1" is less
than "0.35.0", as required by the specification. Use ORDER BY to get
more of a feel for semantic version ordering rules: SELECT...
SUBHEADER: The new site PGXN.org offers a repository for contributing and downloading extensions.
To build and install them on the system:
$ pgxn install pair INFO: best version: pair 0.1.3 INFO: saving /tmp/tmpezwyEO/pair-0.1.3.zip INFO: unpacking: /tmp/tmpezwyEO/pair-0.1.3.zip INFO: building extension ... INFO: installing extension [sudo] password for piro: /bin/mkdir -p '/usr/local/pg91b1/share/postgresql/extension' ...
And to load them as database extensions:
$ pgxn load -d mydb pair INFO: best version: pair 0.1.3 CREATE EXTENSION
What can be easier than this ?