#define DBLINK_RES_INTERNALERROR(p2) \
do { \
- msg = pstrdup(PQerrorMessage(conn)); \
+ msg = pchomp(PQerrorMessage(conn)); \
if (res) \
PQclear(res); \
elog(ERROR, "%s: %s", p2, msg); \
conn = PQconnectdb(connstr); \
if (PQstatus(conn) == CONNECTION_BAD) \
{ \
- msg = pstrdup(PQerrorMessage(conn)); \
+ msg = pchomp(PQerrorMessage(conn)); \
PQfinish(conn); \
ereport(ERROR, \
(errcode(ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION), \
if (PQstatus(conn) == CONNECTION_BAD)
{
- msg = pstrdup(PQerrorMessage(conn));
+ msg = pchomp(PQerrorMessage(conn));
PQfinish(conn);
if (rconn)
pfree(rconn);
/* async query send */
retval = PQsendQuery(conn, sql);
if (retval != 1)
- elog(NOTICE, "could not send query: %s", PQerrorMessage(conn));
+ elog(NOTICE, "could not send query: %s", pchomp(PQerrorMessage(conn)));
PG_RETURN_INT32(retval);
}
PGresult *res;
if (!PQsendQuery(conn, sql))
- elog(ERROR, "could not send query: %s", PQerrorMessage(conn));
+ elog(ERROR, "could not send query: %s", pchomp(PQerrorMessage(conn)));
if (!PQsetSingleRowMode(conn)) /* shouldn't fail */
elog(ERROR, "failed to set single-row mode for dblink query");
if (msg == NULL || msg[0] == '\0')
PG_RETURN_TEXT_P(cstring_to_text("OK"));
else
- PG_RETURN_TEXT_P(cstring_to_text(msg));
+ PG_RETURN_TEXT_P(cstring_to_text(pchomp(msg)));
}
/*
* return NULL, not a PGresult at all.
*/
if (message_primary == NULL)
- message_primary = PQerrorMessage(conn);
+ message_primary = pchomp(PQerrorMessage(conn));
if (res)
PQclear(res);
conn = PQconnectdbParams(keywords, values, false);
if (!conn || PQstatus(conn) != CONNECTION_OK)
- {
- char *connmessage;
- int msglen;
-
- /* libpq typically appends a newline, strip that */
- connmessage = pstrdup(PQerrorMessage(conn));
- msglen = strlen(connmessage);
- if (msglen > 0 && connmessage[msglen - 1] == '\n')
- connmessage[msglen - 1] = '\0';
ereport(ERROR,
(errcode(ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION),
errmsg("could not connect to server \"%s\"",
server->servername),
- errdetail_internal("%s", connmessage)));
- }
+ errdetail_internal("%s", pchomp(PQerrorMessage(conn)))));
/*
* Check that non-superuser has used password to establish connection;
* return NULL, not a PGresult at all.
*/
if (message_primary == NULL)
- message_primary = PQerrorMessage(conn);
+ message_primary = pchomp(PQerrorMessage(conn));
ereport(elevel,
(errcode(sqlstate),
conn->streamConn = PQconnectdbParams(keys, vals, /* expand_dbname = */ true);
if (PQstatus(conn->streamConn) != CONNECTION_OK)
{
- *err = pstrdup(PQerrorMessage(conn->streamConn));
+ *err = pchomp(PQerrorMessage(conn->streamConn));
return NULL;
}
ereport(ERROR,
(errmsg("could not receive database system identifier and timeline ID from "
"the primary server: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
}
if (PQnfields(res) < 3 || PQntuples(res) != 1)
{
if (!pubnames_str)
ereport(ERROR,
(errmsg("could not start WAL streaming: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
pubnames_literal = PQescapeLiteral(conn->streamConn, pubnames_str,
strlen(pubnames_str));
if (!pubnames_literal)
ereport(ERROR,
(errmsg("could not start WAL streaming: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
appendStringInfo(&cmd, ", publication_names %s", pubnames_literal);
PQfreemem(pubnames_literal);
pfree(pubnames_str);
PQclear(res);
ereport(ERROR,
(errmsg("could not start WAL streaming: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
}
PQclear(res);
return true;
PQflush(conn->streamConn))
ereport(ERROR,
(errmsg("could not send end-of-streaming message to primary: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
*next_tli = 0;
if (PQresultStatus(res) != PGRES_COMMAND_OK)
ereport(ERROR,
(errmsg("error reading result of streaming command: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
PQclear(res);
/* Verify that there are no more results */
if (res != NULL)
ereport(ERROR,
(errmsg("unexpected result after CommandComplete: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
}
/*
ereport(ERROR,
(errmsg("could not receive timeline history file from "
"the primary server: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
}
if (PQnfields(res) != 2 || PQntuples(res) != 1)
{
if (PQconsumeInput(conn->streamConn) == 0)
ereport(ERROR,
(errmsg("could not receive data from WAL stream: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
/* Now that we've consumed some input, try again */
rawlen = PQgetCopyData(conn->streamConn, &conn->recvBuf, 1);
PQclear(res);
ereport(ERROR,
(errmsg("could not receive data from WAL stream: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
}
}
if (rawlen < -1)
ereport(ERROR,
(errmsg("could not receive data from WAL stream: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
/* Return received messages to caller */
*buffer = conn->recvBuf;
PQflush(conn->streamConn))
ereport(ERROR,
(errmsg("could not send data to WAL stream: %s",
- PQerrorMessage(conn->streamConn))));
+ pchomp(PQerrorMessage(conn->streamConn)))));
}
/*
PQclear(res);
ereport(ERROR,
(errmsg("could not create replication slot \"%s\": %s",
- slotname, PQerrorMessage(conn->streamConn))));
+ slotname, pchomp(PQerrorMessage(conn->streamConn)))));
}
*lsn = DatumGetLSN(DirectFunctionCall1Coll(pg_lsn_in, InvalidOid,
if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
PQclear(res);
- *err = pstrdup(PQerrorMessage(conn->streamConn));
+ *err = pchomp(PQerrorMessage(conn->streamConn));
return false;
}