Thread: libpq win32-native errno fix
i've spotted a following problem using DBD::Pg under win32. winsock functions do not set errno, so some normal conditions are treated as fatal errors. e.g. fetching large tuples fails, as at some point recv() returns EWOULDBLOCK. here's a patch, which replaces errno with WSAGetLastError(). i've tried to to affect non-win32 code. /Dmitry
Attachment
This is great. We knew we had errno problems on Win32 but no one could generate a patch. Your patch has been added to the PostgreSQL unapplied patches list at: http://candle.pha.pa.us/cgi-bin/pgpatches I will try to apply it within the next 48 hours. > i've spotted a following problem using DBD::Pg under win32. winsock > functions do not set errno, so some normal conditions are treated as > fatal errors. e.g. fetching large tuples fails, as at some point recv() > returns EWOULDBLOCK. here's a patch, which replaces errno with > WSAGetLastError(). i've tried to to affect non-win32 code. > > /Dmitry > > [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" 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
Thanks. Patch applied. I am waiting for another patch from Darko Prenosil to apply in addition to yours. This should fix our Win32 problems. > i've spotted a following problem using DBD::Pg under win32. winsock > functions do not set errno, so some normal conditions are treated as > fatal errors. e.g. fetching large tuples fails, as at some point recv() > returns EWOULDBLOCK. here's a patch, which replaces errno with > WSAGetLastError(). i've tried to to affect non-win32 code. > > /Dmitry > > [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" 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