From: | "Daniel Verite" <daniel(at)manitou-mail(dot)org> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "Rudolf Gavlas" <r(dot)stu3(dot)1(at)googlemail(dot)com>,pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: [PATCH] get_home_path: use HOME |
Date: | 2016-09-22 12:37:53 |
Message-ID: | ce44d5de-34cd-408b-b71d-f936f315b418@mm |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tom Lane wrote:
> If we take this patch, what's to stop someone from complaining that we
> broke *their* badly-designed system that abuses the HOME variable?
POSIX warns against doing that, listing HOME in the variables that
should be left to their intended usage:
http://pubs.opengroup.org/onlinepubs/9699919799/
<quote>
If the variables in the following two sections are present in the
environment during the execution of an application or utility, they
shall be given the meaning described below
[...]
HOME
The system shall initialize this variable at the time of login to
be a pathname of the user's home directory. See <pwd.h>.
</quote>
psql is indirectly using $HOME already for readline and terminfo:
$ HOME=/tmp/home2 strace psql 2>tr ; grep home2 tr
...
stat("/tmp/home2/.terminfo", 0x7ff985bf4730) = -1 ENOENT (No such file or
directory)
stat("/tmp/home2/.inputrc", 0x7fff3f641d70) = -1 ENOENT (No such file or
directory)
Also when using Debian's psql, the wrapper looks for it own config file in
$HOME:
open("/tmp/home2/.postgresqlrc", O_RDONLY) = -1 ENOENT (No such file or
directory)
Being written in Perl, it could use getpwuid(), but it doesn't, like I
believe
the majority of programs that just want the home directory.
+1 on using HOME for being consistent with other pieces of code around
postgres, and for the easiness of locally overriding it when
troubleshooting problems with dot files.
Best regards,
--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2016-09-22 12:45:08 | Executor's internal ParamExecData Params versus EvalPlanQual |
Previous Message | Amit Kapila | 2016-09-22 12:36:42 | Re: Parallel sec scan in plpgsql |