Thread: No default for (user-specific) service file location on Windows?

No default for (user-specific) service file location on Windows?

From
Dominique Devienne
Date:
Hi,

The doc is explicit about defaults for the password file:
From https://www.postgresql.org/docs/current/libpq-pgpass.html
Linux: ~/.pgpass
Windows: %APPDATA%\postgresql\pgpass.conf

But for the service file OTOH, only the Linux default is documented:
From: https://www.postgresql.org/docs/current/libpq-pgservice.html
Linux: ~/.pg_service.conf
Windows: N/A

I tried the obvious %APPDATA%\postgresql\pg_service.conf, with no luck.

So is this a lack in the documentation for the service file?
Or is it instead a lack of symmetry in the implementations of these
two mechanisms?

If the latter, any chance the symmetry would be restored? (with
corresponding doc update).

I guess the only work-around specific to Windows at this point, if the latter,
would be defining the PGSERVICEFILE env-var explicitly? --DD



Re: No default for (user-specific) service file location on Windows?

From
Julien Rouhaud
Date:
Hi,

On Thu, May 19, 2022 at 3:46 PM Dominique Devienne <ddevienne@gmail.com> wrote:
>
> The doc is explicit about defaults for the password file:
> From https://www.postgresql.org/docs/current/libpq-pgpass.html
> Linux: ~/.pgpass
> Windows: %APPDATA%\postgresql\pgpass.conf
>
> But for the service file OTOH, only the Linux default is documented:
> From: https://www.postgresql.org/docs/current/libpq-pgservice.html
> Linux: ~/.pg_service.conf
> Windows: N/A
>
> I tried the obvious %APPDATA%\postgresql\pg_service.conf, with no luck.
>
> So is this a lack in the documentation for the service file?
> Or is it instead a lack of symmetry in the implementations of these
> two mechanisms?
>
> If the latter, any chance the symmetry would be restored? (with
> corresponding doc update).

As far as I can see from the code it should be
%APPDATA%\postgresql\.pg_service.conf

Does this one work?

There is a discrepancy (apart from the documentation) as the default
file name is the same on Linux and Windows.



Re: No default for (user-specific) service file location on Windows?

From
Dominique Devienne
Date:
On Thu, May 19, 2022 at 10:17 AM Julien Rouhaud <rjuju123@gmail.com> wrote:
> > Or is it instead a lack of symmetry in the implementations of these
> > two mechanisms?
>
> As far as I can see from the code it should be
> %APPDATA%\postgresql\.pg_service.conf
>
> Does this one work?

Yes it does! Thanks.

> There is a discrepancy (apart from the documentation) as the default
> file name is the same on Linux and Windows.

The doc is explicit about Windows for the password file,
probably should be for the service file as well IMHO.

It's unfortunate that the naming conventions are different.
Might need to be warned about in the doc too. My $0.02.

Could also be changed to try both on Windows, with or w/o the leading dot,
but I suspect this kind of change won't be considered worth implementing :).

Thanks again Julien, --DD



Re: No default for (user-specific) service file location on Windows?

From
Julien Rouhaud
Date:
On Thu, May 19, 2022 at 10:57:55AM +0200, Dominique Devienne wrote:
> On Thu, May 19, 2022 at 10:17 AM Julien Rouhaud <rjuju123@gmail.com> wrote:
> > > Or is it instead a lack of symmetry in the implementations of these
> > > two mechanisms?
> >
> > As far as I can see from the code it should be
> > %APPDATA%\postgresql\.pg_service.conf
> >
> > Does this one work?
>
> Yes it does! Thanks.

Ah great!

> > There is a discrepancy (apart from the documentation) as the default
> > file name is the same on Linux and Windows.
>
> The doc is explicit about Windows for the password file,
> probably should be for the service file as well IMHO.

Yeah I totally agree.  I'm attaching a patch for that.

> It's unfortunate that the naming conventions are different.
> Might need to be warned about in the doc too. My $0.02.

I agree that the discrepancy is annoying, but I don't think that we usually add
this kind of warning.  I didn't do anything about it for now.
>
> Could also be changed to try both on Windows, with or w/o the leading dot,
> but I suspect this kind of change won't be considered worth implementing :).

We can't change the default file in older branches obviously, but I'd be a bit
worried about changing the default in the next major version either as it would
add unnecessary pain for users that do know and rely on the current default.  I
guess we have to live with it, and properly document it.

Attachment
Julien Rouhaud <rjuju123@gmail.com> writes:
> We can't change the default file in older branches obviously, but I'd be a bit
> worried about changing the default in the next major version either as it would
> add unnecessary pain for users that do know and rely on the current default.  I
> guess we have to live with it, and properly document it.

Yeah, agreed.  Documentation fix seems like the way to go.

I do not like your proposed wording, as it seems way too dense.
Can't we avoid the parenthetical remarks (plural) inside a sub-clause?
You're asking the reader to keep track of about three levels of
interrupt.

Maybe just put the Windows info in a separate sentence:

    ... located at ~/.pg_service.conf</filename>.
    On Microsoft Windows, it is located at
    %APPDATA%\postgresql\.pg_service.conf, where %APPDATA% means the
    Application Data subdirectory in the user's profile.
    In either case, the location can be overridden by setting ...

ISTR there's precedent elsewhere for doing it about like that.

            regards, tom lane



Re: No default for (user-specific) service file location on Windows?

From
Julien Rouhaud
Date:
On Thu, May 19, 2022 at 10:11:06AM -0400, Tom Lane wrote:
> I do not like your proposed wording, as it seems way too dense.
> Can't we avoid the parenthetical remarks (plural) inside a sub-clause?
> You're asking the reader to keep track of about three levels of
> interrupt.

Yes, I was a bit unhappy with this wording.

> Maybe just put the Windows info in a separate sentence:
> 
>     ... located at ~/.pg_service.conf</filename>.
>     On Microsoft Windows, it is located at
>     %APPDATA%\postgresql\.pg_service.conf, where %APPDATA% means the
>     Application Data subdirectory in the user's profile.
>     In either case, the location can be overridden by setting ...
> 
> ISTR there's precedent elsewhere for doing it about like that.

I'm fine with it.  I still kept the default location full description in both
places as those end up in quite different part of the documentation, which
seems more helpful.



Re: No default for (user-specific) service file location on Windows?

From
Julien Rouhaud
Date:
On Thu, May 19, 2022 at 11:53:22PM +0800, Julien Rouhaud wrote:
> On Thu, May 19, 2022 at 10:11:06AM -0400, Tom Lane wrote:
> > I do not like your proposed wording, as it seems way too dense.
> > Can't we avoid the parenthetical remarks (plural) inside a sub-clause?
> > You're asking the reader to keep track of about three levels of
> > interrupt.
> 
> Yes, I was a bit unhappy with this wording.
> 
> > Maybe just put the Windows info in a separate sentence:
> > 
> >     ... located at ~/.pg_service.conf</filename>.
> >     On Microsoft Windows, it is located at
> >     %APPDATA%\postgresql\.pg_service.conf, where %APPDATA% means the
> >     Application Data subdirectory in the user's profile.
> >     In either case, the location can be overridden by setting ...
> > 
> > ISTR there's precedent elsewhere for doing it about like that.
> 
> I'm fine with it.  I still kept the default location full description in both
> places as those end up in quite different part of the documentation, which
> seems more helpful.

This time with the patch.

Attachment
Julien Rouhaud <rjuju123@gmail.com> writes:
> This time with the patch.

Pushed, with some minor twiddling to make the .pgpass and .pg_service.conf
descriptions more alike.  I figured that the .pgpass docs are fine since
(surely) many more people have looked at those passages and not
complained, so I made sure that the service file descriptions were worded
comparably.

            regards, tom lane



Re: No default for (user-specific) service file location on Windows?

From
Julien Rouhaud
Date:
On Thu, May 19, 2022 at 06:38:46PM -0400, Tom Lane wrote:
> Julien Rouhaud <rjuju123@gmail.com> writes:
> > This time with the patch.
> 
> Pushed, with some minor twiddling to make the .pgpass and .pg_service.conf
> descriptions more alike.  I figured that the .pgpass docs are fine since
> (surely) many more people have looked at those passages and not
> complained, so I made sure that the service file descriptions were worded
> comparably.

Thanks a lot!



Re: No default for (user-specific) service file location on Windows?

From
Dominique Devienne
Date:
On Fri, May 20, 2022 at 5:31 AM Julien Rouhaud <rjuju123@gmail.com> wrote:
> On Thu, May 19, 2022 at 06:38:46PM -0400, Tom Lane wrote:
> > Julien Rouhaud <rjuju123@gmail.com> writes:
> > Pushed, with some minor twiddling to make ... descriptions more alike.
> Thanks a lot!

And thank you both! --DD