Skip site navigation (1) Skip section navigation (2)

Re: How best to load modules?

From: Steve White <swhite(at)aip(dot)de>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: How best to load modules?
Date: 2011-02-02 20:37:36
Message-ID: 20110202203736.GA29825@cashmere.aip.de (view raw or flat)
Thread:
Lists: pgsql-general
Hi,

Here is the best cludge so far.  To load the module 'tablefunc' from the
contrib/ directory, process the output of the 'pg_config' program with unix
commands.  The 'pg_config' program is often distributed in a package
separate from  postgresql.

\set tablefunc `pg_config|grep SHAREDIR|sed "s/SHAREDIR = \(.*\)/\1\/contrib\/tablefunc.sql/g"`
\i :tablefunc

This isn't very robust, but at least it allows me to load and unload stuff
from a single sql script on two different distros.

Cheers!


On 28.01.11, Steve White wrote:
> Hello, all!
> 
> What are best practices regarding the loading of postgresql modules, say
> from the contrib/ directory; specifically, with regard to portability?
> 
> I would like to distribute an SQL script which loads a module, and works
> with as little further fiddling as possible.
> 
> known options
> =============
> 
> Within a session, or in a script, one can use 
> 	\i <explicit file path>
> But within a script this has the weakness that the file path varies from
> one system distribution to another.
> 
> One can start psql with 
> 	psql ... -f <explicit file path>
> but that's a measure taken outside the script, to done either with session,
> or else be done by a further measure such as a shell script.
> 
> Ideally, the location of the default modules directory (or installation
> directory) should be available within a session in some variable or from
> some function call.
> 
> There are some pre-defined variables, listed in a session by
> 	show all;
> but I don't see anything like a directory path there.
> Maybe a built-in function returning this directory?  Searched to no avail:
> 	http://www.postgresql.org/docs/8.2/interactive/functions.html
> 
> There has been talk about a bigger solution on
> 	http://wiki.postgresql.org/wiki/Module_Manager
> but little seems to have happened there in some years.
> 
> An environment variable
> 	$libdir, 
> is mentioned
> 	http://www.postgresql.org/docs/8.2/static/runtime-config-client.html
> but this seems not to be present within a session.
> It seems to be expanded within the LANGUAGE C environment, for instance in
> tablefunc.sql
>  -------------------------------------------------
> CREATE OR REPLACE FUNCTION crosstab2(text)
> RETURNS setof tablefunc_crosstab_2
> AS '$libdir/tablefunc','crosstab'
> LANGUAGE C STABLE STRICT;
>  -------------------------------------------------
> 
> Thanks!
> 
> -- 
> | -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
> | Steve White                                             +49(331)7499-202
> | E-Science                                        Zi. 27  Villa Turbulenz 
> | -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
> | Astrophysikalisches Institut Potsdam (AIP)
> | An der Sternwarte 16, D-14482 Potsdam
> |
> | Vorstand: Prof. Dr. Matthias Steinmetz, Peter A. Stolz
> |
> | Stiftung privaten Rechts, Stiftungsverzeichnis Brandenburg: III/7-71-026
> | -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -

-- 
| -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
| Steve White                                             +49(331)7499-202
| E-Science                                        Zi. 27  Villa Turbulenz 
| -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
| Astrophysikalisches Institut Potsdam (AIP)
| An der Sternwarte 16, D-14482 Potsdam
|
| Vorstand: Prof. Dr. Matthias Steinmetz, Peter A. Stolz
|
| Stiftung privaten Rechts, Stiftungsverzeichnis Brandenburg: III/7-71-026
| -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -

In response to

pgsql-general by date

Next:From: Richard BroersmaDate: 2011-02-02 20:39:09
Subject: SCALE: seeking booth attendees
Previous:From: Bill ThoenDate: 2011-02-02 20:17:28
Subject: Why does a normally fast query run so slow when the table is in a partition?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group