Re: Location for external scripts for Extensions? - Mailing list pgsql-hackers

From Christopher Browne
Subject Re: Location for external scripts for Extensions?
Date
Msg-id CAFNqd5Xj0uaVi-NPUitn9v84QL+RpUEBh5EZW_sp4OPYXs5JSg@mail.gmail.com
Whole thread Raw
In response to Re: Location for external scripts for Extensions?  (Josh Berkus <josh@agliodbs.com>)
List pgsql-hackers
On Wed, Oct 23, 2013 at 12:24 PM, Josh Berkus <josh@agliodbs.com> wrote:
> Dimitri,
>
>> Josh Berkus <josh(at)agliodbs(dot)com> writes:
>>> pg_partman has several external (python) scripts which help the
>>> extension, located in /extras/ in its source.  The problem currently is
>>> that if you install pg_partman via pgxn or package, you don't get those
>>> scripts, because there's no "install" location for them.
>>
>> See also my proposal to solve that, I'd welcome some design level
>> discussions about it:
>>
>>   http://www.postgresql.org/message-id/m28uyzgof3.fsf@2ndQuadrant.fr
>
> Well, that's a bit more complicated than what I had in mind.  I was
> thinking just a location like $PGSHARE/extensions/lib/
>
> Note that, in the case of pg_partman, we're talking about external
> scripts designed to be run by hand, not libaries to be called by the PL
> functions.

I suppose that Slony would be a possible other user of this facility...

It has something of a mixture of things that get added:

a) There are the functions and tables that it adds.

Ideally, these could be added in via CREATE EXTENSION, so that
it would be somewhat logical for them to live in $PGSHARE/extensions.
(I think that's somewhat tough to do using the CREATE EXTENSION
facility as currently constituted as the slony schema installation process,
at present, does a number of remappings, putting FQ names inside
functions and such.)

b) Then there are the crucial programs that it uses, slon
(replication daemon) and slonik (configuration tool).

Those seem to fit well with your intent; they are additional programs
(not scripts per se, but I don't think that contradicts) that need to
live somewhere reasonably near to the database installation.

By default, we stow slon/slonik in the same directory as is used
by all the other PostgreSQL binaries (e.g. - psql, pg_ctl, ...),
e.g. - $BINDIR

Perhaps that is an OK place for pg_partman.  It would seem
pretty acceptable to me to consider declaring something like
$PGSHARE/extensions/bin for such things.
-- 
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"



pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: Commitfest II CLosed
Next
From: Mike Blackwell
Date:
Subject: Re: stats for network traffic WIP