*** ./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 *************** *** 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);