Обсуждение: Re: REPOST: InitDB Failure on install

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

Re: REPOST: InitDB Failure on install

От
"Magnus Hagander"
Дата:
> > "Magnus Hagander" <mha@sollentuna.net> writes:
> >
> >>                /* Unable to get shared memory */
> >>+               errno = GetLastError();
> >
> >
> > Aren't you going to need a mapping function to convert
> Windows error
> > codes to errno numbers?  Don't tell me Microsoft was smart
> enough to
> > make them the same ;-)
>
> How about the idea to set errno to a special value after all
> non-posix calls, which makes ereport examine/preserve
> GetLastError() instead?

We could do this, but that means we need to hack the whole error stack
handlign etc to save the value of GetLastError() as well as errno. But
yeah, we could do that.

Not sure if we need to do it after all calls though - probably enough to
do it only after the ones where there is actually a ereport() call with
%m nearby (or when we're emulating a unix function such as in shmget()).

Tom - which method do you think is best to go with?

//Magnus


Re: REPOST: InitDB Failure on install

От
Tom Lane
Дата:
"Magnus Hagander" <mha@sollentuna.net> writes:
> Tom - which method do you think is best to go with?

I dislike propagating #ifdef WIN32's into sections of the code that are
currently free of them.  So I'd vote for the map-to-errno approach.
It's a judgment call though ...

            regards, tom lane

Re: REPOST: InitDB Failure on install

От
Tom Lane
Дата:
Andreas Pflug <pgadmin@pse-consulting.de> writes:
> I understand your disliking of non-posix stuff. OTOH, GetLastError will
> give much more details than errno.

How much more, really?  That mapping table gave me the impression that
the win32 error codes aren't all that much more detailed than errno...

            regards, tom lane

Re: REPOST: InitDB Failure on install

От
Andreas Pflug
Дата:
Tom Lane wrote:
> "Magnus Hagander" <mha@sollentuna.net> writes:
>
>>Tom - which method do you think is best to go with?
>
>
> I dislike propagating #ifdef WIN32's into sections of the code that are
> currently free of them.  So I'd vote for the map-to-errno approach.
> It's a judgment call though ...

I understand your disliking of non-posix stuff. OTOH, GetLastError will
give much more details than errno.

Regards,
Andreas