Thomas Lockhart writes:
> > Could anyone please tell me what I'm doing wrong? I'm sure I'm just
> > overlooking something, but what?
>
> As Jeff pointed out, the environment variable "P" must be known to the
> server backend to be used in the WITH LOCATION clause. Using it in the
> preceeding initlocation invocation was correct. The utility tries it
> as an environment variable, then as an absolute path, so "initlocation
> P" and "initlocation $P" are both valid. You can make the environment
> variable known to the backend by defining it in the postgres account's
> .cshrc or .bashrc file, or by explicitly setting it before firing up
> the backend.
>
> - Thomas
Thanks to everyone who answered; my problem was that the backend knew
nothing about it.
That brings up a comment, a question, and an offer. First, the comment: I
actually did check the user's guide before I posted the question, but the
description of initlocation doesn't mention it at all -- it just gives an
example that doesn't work unless the backend already knows about the
variable. It does refer to the CREATE DATABASE section, but at a quick
glance (I know, I should have read more carefully, mea culpa!) I just saw
an example that looked similar to the initlocation example.
Now for the question. What's the reason for using this method, as opposed
to using, say, a system catalog to hold the valid locations? Historical?
Having to stop and restart the backend so it can re-read its environment
seems kind of archaic.
Now the offer. I'm in the design stage of the process of converting a
fairly large legacy application to PostgreSQL. It's going to be
essentially a complete re-write, but I should be able to do it in
more-or-less independent sections. I really like what I've experienced so
far of PostgreSQL, I'd like to contribute, and modifying the postmaster to
use (or at least look at, if it exists) a system catalog for this info
might be a good way to get my feet wet. Comments?
Thanks...
- Rich
--
Richard Kuhns rjk@grauel.com
PO Box 6249 Tel: (765)477-6000 \
100 Sawmill Road x319
Lafayette, IN 47903 (800)489-4891 /