On 02/12/16 05:17, Alvaro Herrera wrote:
> Tom Lane wrote:
>> Peter Eisentraut <pete...@gmx.net> writes:
>>> Refactor libpqwalreceiver
>>
>> Buildfarm results indicate this broke the Windows build.
> 
> src/backend/replication/walreceiver.c(296): error C2039: 'pgwin32_connect' : 
> is not a member of 'WalReceiverFunctionsType' 
> [c:\prog\bf\root\HEAD\pgsql.build\postgres.vcxproj]
>           
> c:\prog\bf\root\HEAD\pgsql.build\src\include\replication/walreceiver.h(163) : 
> see declaration of 'WalReceiverFunctionsType'
> src/backend/replication/walreceiver.c(1152): warning C4003: not enough actual 
> parameters for macro 'send' 
> [c:\prog\bf\root\HEAD\pgsql.build\postgres.vcxproj]
> src/backend/replication/walreceiver.c(1152): error C2039: 'pgwin32_send' : is 
> not a member of 'WalReceiverFunctionsType' 
> [c:\prog\bf\root\HEAD\pgsql.build\postgres.vcxproj]
>           
> c:\prog\bf\root\HEAD\pgsql.build\src\include\replication/walreceiver.h(163) : 
> see declaration of 'WalReceiverFunctionsType'
> src/backend/replication/walreceiver.c(1152): error C2059: syntax error : ')' 
> [c:\prog\bf\root\HEAD\pgsql.build\postgres.vcxproj]
> src/backend/replication/walreceiver.c(1230): warning C4003: not enough actual 
> parameters for macro 'send' 
> [c:\prog\bf\root\HEAD\pgsql.build\postgres.vcxproj]
> src/backend/replication/walreceiver.c(1230): error C2039: 'pgwin32_send' : is 
> not a member of 'WalReceiverFunctionsType' 
> [c:\prog\bf\root\HEAD\pgsql.build\postgres.vcxproj]
>           
> c:\prog\bf\root\HEAD\pgsql.build\src\include\replication/walreceiver.h(163) : 
> see declaration of 'WalReceiverFunctionsType'
> src/backend/replication/walreceiver.c(1230): error C2059: syntax error : ')' 
> [c:\prog\bf\root\HEAD\pgsql.build\postgres.vcxproj]
> 
> That's because win32.h has this line:
> 
> #define connect(s, name, namelen) pgwin32_connect(s, name, namelen)
> 
> which breaks the use of "connect" as a struct member name (same with send).
> The easiest fix seems to rename the struct members.
> 

Hi,

Yes, that seems to be the case.

Something as simple as attached should do.

-- 
  Petr Jelinek                  http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services
From 6513f75c2e04c6db186f53528f5a6adfa93feabd Mon Sep 17 00:00:00 2001
From: Petr Jelinek <pjmodos@pjmodos.net>
Date: Fri, 2 Dec 2016 12:37:00 +0100
Subject: [PATCH] Prefix WalReceiverFunctionsType members with walrcv_

This avoids naming conflicts on Windows introduced by 78c8c8143.
---
 src/include/replication/walreceiver.h | 36 +++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/include/replication/walreceiver.h b/src/include/replication/walreceiver.h
index edb14b5..28dc1fc 100644
--- a/src/include/replication/walreceiver.h
+++ b/src/include/replication/walreceiver.h
@@ -161,37 +161,37 @@ typedef void (*walrcv_disconnect_fn) (WalReceiverConn *conn);
 
 typedef struct WalReceiverFunctionsType
 {
-	walrcv_connect_fn					connect;
-	walrcv_get_conninfo_fn				get_conninfo;
-	walrcv_identify_system_fn			identify_system;
-	walrcv_readtimelinehistoryfile_fn	readtimelinehistoryfile;
-	walrcv_startstreaming_fn			startstreaming;
-	walrcv_endstreaming_fn				endstreaming;
-	walrcv_receive_fn					receive;
-	walrcv_send_fn						send;
-	walrcv_disconnect_fn				disconnect;
+	walrcv_connect_fn					walrcv_connect;
+	walrcv_get_conninfo_fn				walrcv_get_conninfo;
+	walrcv_identify_system_fn			walrcv_identify_system;
+	walrcv_readtimelinehistoryfile_fn	walrcv_readtimelinehistoryfile;
+	walrcv_startstreaming_fn			walrcv_startstreaming;
+	walrcv_endstreaming_fn				walrcv_endstreaming;
+	walrcv_receive_fn					walrcv_receive;
+	walrcv_send_fn						walrcv_send;
+	walrcv_disconnect_fn				walrcv_disconnect;
 } WalReceiverFunctionsType;
 
 extern PGDLLIMPORT WalReceiverFunctionsType *WalReceiverFunctions;
 
 #define walrcv_connect(conninfo, logical, appname) \
-	WalReceiverFunctions->connect(conninfo, logical, appname)
+	WalReceiverFunctions->walrcv_connect(conninfo, logical, appname)
 #define walrcv_get_conninfo(conn) \
-	WalReceiverFunctions->get_conninfo(conn)
+	WalReceiverFunctions->walrcv_get_conninfo(conn)
 #define walrcv_identify_system(conn, primary_tli) \
-	WalReceiverFunctions->identify_system(conn, primary_tli)
+	WalReceiverFunctions->walrcv_identify_system(conn, primary_tli)
 #define walrcv_readtimelinehistoryfile(conn, tli, filename, content, size) \
-	WalReceiverFunctions->readtimelinehistoryfile(conn, tli, filename, content, size)
+	WalReceiverFunctions->walrcv_readtimelinehistoryfile(conn, tli, filename, content, size)
 #define walrcv_startstreaming(conn, tli, startpoint, slotname) \
-	WalReceiverFunctions->startstreaming(conn, tli, startpoint, slotname)
+	WalReceiverFunctions->walrcv_startstreaming(conn, tli, startpoint, slotname)
 #define walrcv_endstreaming(conn, next_tli) \
-	WalReceiverFunctions->endstreaming(conn, next_tli)
+	WalReceiverFunctions->walrcv_endstreaming(conn, next_tli)
 #define walrcv_receive(conn, buffer, wait_fd) \
-	WalReceiverFunctions->receive(conn, buffer, wait_fd)
+	WalReceiverFunctions->walrcv_receive(conn, buffer, wait_fd)
 #define walrcv_send(conn, buffer, nbytes) \
-	WalReceiverFunctions->send(conn, buffer, nbytes)
+	WalReceiverFunctions->walrcv_send(conn, buffer, nbytes)
 #define walrcv_disconnect(conn) \
-	WalReceiverFunctions->disconnect(conn)
+	WalReceiverFunctions->walrcv_disconnect(conn)
 
 /* prototypes for functions in walreceiver.c */
 extern void WalReceiverMain(void) pg_attribute_noreturn();
-- 
2.7.4

-- 
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Reply via email to