Обсуждение: dynamic_library_path on Win32

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

dynamic_library_path on Win32

От
"Thomas Hallgren"
Дата:
I'm using CVS HEAD in a windows environment. I'm trying to start the
postmaster using "postmaster -c dynamic_library_path=C:/foo/bar". It starts
just fine, then, when I ask it to load a module, an error is generating
stating:

ERROR: component in parameter "dynamic_library_path" is not an absolute path

I added a trace to find out what it thinks the path is. It prints "C".
Obviously it treats ':' as a path separator somewhere. Is that the intended
behavior on win32?

Kind regards,

Thomas Hallgren



Re: dynamic_library_path on Win32

От
Andrew Dunstan
Дата:

Thomas Hallgren wrote:

>I'm using CVS HEAD in a windows environment. I'm trying to start the
>postmaster using "postmaster -c dynamic_library_path=C:/foo/bar". It starts
>just fine, then, when I ask it to load a module, an error is generating
>stating:
>
>ERROR: component in parameter "dynamic_library_path" is not an absolute path
>
>I added a trace to find out what it thinks the path is. It prints "C".
>Obviously it treats ':' as a path separator somewhere. Is that the intended
>behavior on win32?
>
>  
>

You've found a bug. Clearly we need to adjust the parsing of 
dynamic_library_path and probably preload_libraries for Win32.

cheers

andrew



Re: dynamic_library_path on Win32

От
Tom Lane
Дата:
"Thomas Hallgren" <thhal@mailblocks.com> writes:
> I'm using CVS HEAD in a windows environment. I'm trying to start the
> postmaster using "postmaster -c dynamic_library_path=C:/foo/bar". It starts
> just fine, then, when I ask it to load a module, an error is generating
> stating:

> ERROR: component in parameter "dynamic_library_path" is not an absolute path

> I added a trace to find out what it thinks the path is. It prints "C".
> Obviously it treats ':' as a path separator somewhere.

Yeah.  dynamic_library_path follows the universal Unix convention that
search path components are separated by ':'.  Is there any equivalent
convention in Windows?
        regards, tom lane


Re: dynamic_library_path on Win32

От
"Magnus Hagander"
Дата:
>> I'm using CVS HEAD in a windows environment. I'm trying to start the
>> postmaster using "postmaster -c
>dynamic_library_path=C:/foo/bar". It starts
>> just fine, then, when I ask it to load a module, an error is
>generating
>> stating:
>
>> ERROR: component in parameter "dynamic_library_path" is not
>an absolute path
>
>> I added a trace to find out what it thinks the path is. It
>prints "C".
>> Obviously it treats ':' as a path separator somewhere.
>
>Yeah.  dynamic_library_path follows the universal Unix convention that
>search path components are separated by ':'.  Is there any equivalent
>convention in Windows?

';' is what's used in PATH, and several other such places.

//Magnus


Re: dynamic_library_path on Win32

От
"Thomas Hallgren"
Дата:
Yes, on windows, you use a semicolon as path separator.

regards,

- thomas

----- Original Message ----- 
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Thomas Hallgren" <thhal@mailblocks.com>
Cc: <pgsql-hackers@postgresql.org>
Sent: Saturday, May 29, 2004 17:20
Subject: Re: [HACKERS] dynamic_library_path on Win32


> "Thomas Hallgren" <thhal@mailblocks.com> writes:
> > I'm using CVS HEAD in a windows environment. I'm trying to start the
> > postmaster using "postmaster -c dynamic_library_path=C:/foo/bar". It
starts
> > just fine, then, when I ask it to load a module, an error is generating
> > stating:
>
> > ERROR: component in parameter "dynamic_library_path" is not an absolute
path
>
> > I added a trace to find out what it thinks the path is. It prints "C".
> > Obviously it treats ':' as a path separator somewhere.
>
> Yeah.  dynamic_library_path follows the universal Unix convention that
> search path components are separated by ':'.  Is there any equivalent
> convention in Windows?
>
> regards, tom lane
>




Re: dynamic_library_path on Win32

От
Andrew Dunstan
Дата:

Tom Lane wrote:

>"Thomas Hallgren" <thhal@mailblocks.com> writes:
>  
>
>>I'm using CVS HEAD in a windows environment. I'm trying to start the
>>postmaster using "postmaster -c dynamic_library_path=C:/foo/bar". It starts
>>just fine, then, when I ask it to load a module, an error is generating
>>stating:
>>    
>>
>
>  
>
>>ERROR: component in parameter "dynamic_library_path" is not an absolute path
>>    
>>
>
>  
>
>>I added a trace to find out what it thinks the path is. It prints "C".
>>Obviously it treats ':' as a path separator somewhere.
>>    
>>
>
>Yeah.  dynamic_library_path follows the universal Unix convention that
>search path components are separated by ':'.  Is there any equivalent
>convention in Windows?
>
>  
>

src/port/exec.c has this:


#ifdef WIN32
#define PATHSEP ';'
#else
#define PATHSEP ':'
#endif

It should probably move to c.h.

cheers

andrew






Re: dynamic_library_path on Win32

От
Tom Lane
Дата:
Andrew Dunstan <andrew@dunslane.net> writes:
> You've found a bug. Clearly we need to adjust the parsing of 
> dynamic_library_path and probably preload_libraries for Win32.

Yup.  Using PATHSEP sounded reasonable to me.  Any volunteer to fix
this?  (Don't forget to patch the docs for these variables, too.)
        regards, tom lane


Re: dynamic_library_path on Win32

От
Bruce Momjian
Дата:
I can do it but will be a few days until I get to it.

---------------------------------------------------------------------------

Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
> > You've found a bug. Clearly we need to adjust the parsing of 
> > dynamic_library_path and probably preload_libraries for Win32.
> 
> Yup.  Using PATHSEP sounded reasonable to me.  Any volunteer to fix
> this?  (Don't forget to patch the docs for these variables, too.)
> 
>             regards, tom lane
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073