Per Microsoft knowledge base article Q201213, early versions of
Windows fail when we do this. Later versions of Windows appear
to have a higher limit than 64Kb, but do still fail on large
sends, so we unconditionally limit it for all versions.
Patch from Tom Lane.
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.134 2008/05/29 22:02:44 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.135 2008/08/20 11:53:45 mha Exp $
*
*-------------------------------------------------------------------------
*/
int sent;
char sebuf[256];
+#ifndef WIN32
sent = pqsecure_write(conn, ptr, len);
+#else
+ /*
+ * Windows can fail on large sends, per KB article Q201213. The failure-point
+ * appears to be different in different versions of Windows, but 64k should
+ * always be safe.
+ */
+ sent = pqsecure_write(conn, ptr, Min(len, 65536));
+#endif
if (sent < 0)
{