Hi, pgfdw_report_error() in postgres_fdw is implemented to report the message "could not obtain ..." if message_primary is NULL as follows. But, just before this ereport(), message_primary is set to pchomp(PQerrorMessage()) if it's NULL. So ISTM that message_primary is always not NULL in ereport() and the message "could not obtain ..." is never reported. Is this a bug?
------------------- if (message_primary == NULL) message_primary = pchomp(PQerrorMessage(conn)); ereport(elevel, (errcode(sqlstate), message_primary ? errmsg_internal("%s", message_primary) : errmsg("could not obtain message string for remote error"), ------------------- If this is a bug, IMO the following change needs to be applied. Thought? ------------------- ereport(elevel, (errcode(sqlstate), - message_primary ? errmsg_internal("%s", message_primary) : + (message_primary != NULL && message_primary[0] != '\0') ? + errmsg_internal("%s", message_primary) : errmsg("could not obtain message string for remote error"), ------------------- Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION