Thread: libpq "service" parameter not documented as not allowed inside a pg_service file

libpq "service" parameter not documented as not allowed inside a pg_service file

From
David Johnston
Date:
While the fact that you cannot do:

[service_template]
host=xxx.xxx.xxx.xxx

[service_db1]
dbname=db1
service=service_template

seems obvious there is nothing in the documentation that says this is prohibited; and attempting a simple alias entry:

[realentry]
user=not_system_user
dbname=whatever

[aliasentry]
service=realentry

psql "service=aliasentry"

results in the error:

FATAL:  role "system-user" does not exist

Version 9.3

SIDE NOTE: between the "FATAL:" and the word "role" are two spaces instead of what probably should be one.

Anyway,


says that "[...] and the parameters are connection parameters; [...]

and one of those parameters is "service"


I would suggest:

"connection parameters; see Section 31.1.2 for a list but note that you may not include the "service" parameter within the pg_service file (i.e., aliases are not allowed).

Thoughts?

David J.

P.S.

Any chance on actually making this work?  The recent comment about "\c service=name" not working properly seems to fall into the same category so maybe fix them both at the same time - though the other issue is probably more of a bug while this is a feature request (unless the interplay is non-trivial)...

I'm going to link to this post and add a comment to that thread.

On Fri, Dec 19, 2014 at 06:52:42PM -0700, David Johnston wrote:
> While the fact that you cannot do:
>
> [service_template]
> host=xxx.xxx.xxx.xxx
>
> [service_db1]
> dbname=db1
> service=service_template
>
> seems obvious there is nothing in the documentation that says this is
> prohibited; and attempting a simple alias entry:

I have developed the attached patch to warn users that nesting of
service entries is not supported.  I prefer code warnings over
documentation because the user gets the warning as soon as they try
something, rather than having to hunt in the documentation.  I don't
think this issue has come up enough to warrant a doc mention too though.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +

Attachment
On Wed, Apr  1, 2015 at 04:52:48PM -0400, Bruce Momjian wrote:
> On Fri, Dec 19, 2014 at 06:52:42PM -0700, David Johnston wrote:
> > While the fact that you cannot do:
> >
> > [service_template]
> > host=xxx.xxx.xxx.xxx
> >
> > [service_db1]
> > dbname=db1
> > service=service_template
> >
> > seems obvious there is nothing in the documentation that says this is
> > prohibited; and attempting a simple alias entry:
>
> I have developed the attached patch to warn users that nesting of
> service entries is not supported.  I prefer code warnings over
> documentation because the user gets the warning as soon as they try
> something, rather than having to hunt in the documentation.  I don't
> think this issue has come up enough to warrant a doc mention too though.

Patch applied.  Thanks for the report.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +