PGXN recently came up in a discussion I was having with respect to MADlib
and I wanted to post some information here to the dev list for the
community to consider.

PGXN, the PostGres eXtension Network, is a portal/tool that provides easy
access to common Postgres extensions, similar to CPAN for perl, PyPI for
Python, or CRAN for R.

It comes with a command line tool to aid with installation, e.g. if I had a
postgres installation and I wanted to install orafce I could do the
following:

bash$  pgxn install orafce
bash$  pgxn load orafce -D mydb

The first command downloads the orafce package and compiles it, the second
command installs the package into the default database.

MADlib has some support for PGXN, however there are a few issues:
1. The version is an older release - 1.7.4 [1]
2. A default search on PGXN is a documentation search and the URL it finds
for MADlib is stale:  [2]
3. The package downloads and compiles fine (e.g. pgxn install), however it
does not work with pgxn load:

bash$ pgxn load madlib
INFO: best version: madlib 1.7.4
The extension 'madlib' doesn't contain a control file:
it will be installed as a loose set of objects.
Do you want to continue? [y/N] y
ERROR: cannot find sql file for extension 'madlib': 'madlib--1.7.4.sql'

I bring this up because pgxn is a widely used tool in the Postgres tool and
providing installations instructions of `pgxn install madlib;  pgxn load
madlib` is a much cleaner solution to our current installation instructions
[3].

In order to support pgxn load we would need to support the Postgres CREATE
EXTENSION syntax [4], or at a minimum install "loose objects" via a SQL
file instead of the existing madpack mechanism.


[1] http://pgxn.org/dist/madlib/
[2] http://pgxn.org/dist/madlib/deploy/packagemaker/welcome.html
[3] https://cwiki.apache.org/confluence/display/MADLIB/Installation+Guide
[4] http://www.postgresql.org/docs/9.1/static/sql-createextension.html

Reply via email to