*** ./contrib/gdlogger/gdlogger.c.orig	2016-01-18 17:21:19.000000000 +0100
--- ./contrib/gdlogger/gdlogger.c	2016-01-19 15:32:48.569251792 +0100
***************
*** 25,30 ****
--- 25,31 ----
  #include "utils/elog.h"
  #include "utils/guc.h"
  #include "utils/lsyscache.h"
+ #include "utils/memutils.h"
  #include "utils/resowner.h"
  
  #include <syslog.h>
***************
*** 161,167 ****
  	if (edata->message != NULL && strncmp(edata->message, "duration: ", 9) == 0)
  	{
  		ResourceOwner local_res_owner = NULL;
! 		Datum	client_addr;
  		char		*client_addr_str = NULL;
  		FunctionCallInfoData			fcinfo;
  		char *database_name;
--- 162,168 ----
  	if (edata->message != NULL && strncmp(edata->message, "duration: ", 9) == 0)
  	{
  		ResourceOwner local_res_owner = NULL;
! 		Datum	client_addr = (Datum) 0;
  		char		*client_addr_str = NULL;
  		FunctionCallInfoData			fcinfo;
  		char *database_name;
***************
*** 172,190 ****
  			CurrentResourceOwner = local_res_owner;
  		}
  
! 		if (!OidIsValid(inet_output_func))
  		{
! 			bool	is_varlena;
! 
! 			getTypeOutputInfo(INETOID, &inet_output_func, &is_varlena);
! 			fmgr_info(inet_output_func, &inet_output);
  		}
  
- 		InitFunctionCallInfoData(fcinfo, NULL, 0, InvalidOid, NULL, NULL);
- 		client_addr = (*inet_client_addr) (&fcinfo);
- 		if (!fcinfo.isnull)
- 			client_addr_str = OutputFunctionCall(&inet_output, client_addr);
- 
  		database_name = get_database_name(MyDatabaseId);
  
  		SpinLockAcquire(&logger->mutex);
--- 173,194 ----
  			CurrentResourceOwner = local_res_owner;
  		}
  
! 		if (TopTransactionContext != NULL)
  		{
! 			if (!OidIsValid(inet_output_func))
! 			{
! 				bool	is_varlena;
! 
! 				getTypeOutputInfo(INETOID, &inet_output_func, &is_varlena);
! 				fmgr_info(inet_output_func, &inet_output);
! 			}
! 
! 			InitFunctionCallInfoData(fcinfo, NULL, 0, InvalidOid, NULL, NULL);
! 			client_addr = (*inet_client_addr) (&fcinfo);
! 			if (!fcinfo.isnull)
! 				client_addr_str = OutputFunctionCall(&inet_output, client_addr);
  		}
  
  		database_name = get_database_name(MyDatabaseId);
  
  		SpinLockAcquire(&logger->mutex);
