Thread: libpq sockets on win32

libpq sockets on win32

From
"Jeff Johnson"
Date:
I found that sending more than 16k of data in a SQL statement caused a
problem.  I was using PyGreSQL but narrowed the error down to
"\postgresql-7.1.2\src\interfaces\libpq\fe-misc.c" pqReadData() and
pqFlush().  After some poking around, it looked like recv was setting
errno to ENOENT for some reason.  I figured out why today.  Win32
sockets don't set errno at all.  ENOENT was just left in errno from
some earlier call.

This article describes the problem and work around.
http://msdn.microsoft.com/library/psdk/winsock/ovrvw3_26ia.htm

I haven't done much C coding in a few years and don't want to break
other code by blindly doing:

#define errno WSAGetLastError

Does anyone that knows this code want to take a crack at it?

Thanks,
Jeff


Re: libpq sockets on win32

From
Bruce Momjian
Date:
I have added this thread to TODO.detail/libpq.

> I found that sending more than 16k of data in a SQL statement caused a
> problem.  I was using PyGreSQL but narrowed the error down to
> "\postgresql-7.1.2\src\interfaces\libpq\fe-misc.c" pqReadData() and
> pqFlush().  After some poking around, it looked like recv was setting
> errno to ENOENT for some reason.  I figured out why today.  Win32
> sockets don't set errno at all.  ENOENT was just left in errno from
> some earlier call.
>
> This article describes the problem and work around.
> http://msdn.microsoft.com/library/psdk/winsock/ovrvw3_26ia.htm
>
> I haven't done much C coding in a few years and don't want to break
> other code by blindly doing:
>
> #define errno WSAGetLastError
>
> Does anyone that knows this code want to take a crack at it?
>
> Thanks,
> Jeff
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026