Re: Streaming Replication on win32
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Magnus Hagander <magnus@hagander.net>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-01-21T12:46:17Z
Lists: pgsql-hackers
Attachments
- be-win32-interruptible-dblink-1.patch (text/x-diff) patch
Heikki Linnakangas wrote: > Magnus Hagander wrote: >> 2010/1/17 Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>: >>> We could replace the blocking PQexec() calls with PQsendQuery(), and use >>> the emulated version of select() to wait. >> Hmm. That would at least theoretically work, but aren't there still >> places we may end up blocking further down? Or are those ok? > > There's also PQconnect that needs similar treatment (using > PQconnectStart/Poll()), but that's it. So here's a patch implementing that for contrib/dblink. Walreceiver needs the same treatment. The implementation should be shared between the two, but I'm not sure how. We can't just put the wrapper functions to a module in src/backend/port/, because the wrapper functions depend on libpq. Maybe put them in a new header file as static functions, and include that in contrib/dblink/dblink.c and src/backend/replication/libpqwalreceiver.c. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com