Обсуждение: BUG #4694: uppercase path cause postgres can't start

Поиск
Список
Период
Сортировка

BUG #4694: uppercase path cause postgres can't start

От
"trainee"
Дата:
The following bug has been logged online:

Bug reference:      4694
Logged by:          trainee
Email address:      trainee12@163.com
PostgreSQL version: 8.3.6
Operating system:   windows xp
Description:        uppercase path cause postgres can't start
Details:

I download zip binaray 8.3.6
extract into e:\postgres

set system variables "path"  add "E:\POSTGRES\PGSQL\BIN;" --uppercase

cmd;

pg_ctl register -N postgres -D "e:\postgres\pgdata"

when I start server , failure

error msg is :

LOG:  could not open directory "/share/timezone": No such file or directory
FATAL:  could not select a suitable default timezone
DETAIL:  It appears that your GMT time zone uses leap seconds. PostgreSQL
does not support leap seconds.

if I change  system variables "path" into lowercase, success.

why?

Re: BUG #4694: uppercase path cause postgres can't start

От
Magnus Hagander
Дата:
trainee wrote:
> The following bug has been logged online:
>
> Bug reference:      4694
> Logged by:          trainee
> Email address:      trainee12@163.com
> PostgreSQL version: 8.3.6
> Operating system:   windows xp
> Description:        uppercase path cause postgres can't start
> Details:
>
> I download zip binaray 8.3.6
> extract into e:\postgres
>
> set system variables "path"  add "E:\POSTGRES\PGSQL\BIN;" --uppercase
>
> cmd;
>
> pg_ctl register -N postgres -D "e:\postgres\pgdata"
>
> when I start server , failure
>
> error msg is :
>
> LOG:  could not open directory "/share/timezone": No such file or directory
> FATAL:  could not select a suitable default timezone
> DETAIL:  It appears that your GMT time zone uses leap seconds. PostgreSQL
> does not support leap seconds.
>
> if I change  system variables "path" into lowercase, success.
>
> why?

The path has to have the same case as the directory name in the
filesystem. This is due to the fact that NTFS is case-insensitive but
case-preserving.

The recommendation is to always include the full path to the pg_ctl
command when you register the service.

That said, I have applied a patch that makes the check that fails case
insensitive, which should fix the most common cases of this happening.
It will be included in the next version (in both 8.2/8.3 and in the
upcoming 8.4)

//Magnus