aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/psql/common.c64
-rw-r--r--src/test/regress/expected/psql.out8
2 files changed, 4 insertions, 68 deletions
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c
index 03e6d9ce8f8..974959c5959 100644
--- a/src/bin/psql/common.c
+++ b/src/bin/psql/common.c
@@ -1062,44 +1062,6 @@ PrintQueryResult(PGresult *result, bool last, bool is_watch, const printQueryOpt
}
/*
- * Data structure and functions to record notices while they are
- * emitted, so that they can be shown later.
- *
- * We need to know which result is last, which requires to extract
- * one result in advance, hence two buffers are needed.
- */
-struct t_notice_messages
-{
- PQExpBufferData messages[2];
- int current;
-};
-
-/*
- * Store notices in appropriate buffer, for later display.
- */
-static void
-AppendNoticeMessage(void *arg, const char *msg)
-{
- struct t_notice_messages *notices = arg;
-
- appendPQExpBufferStr(&notices->messages[notices->current], msg);
-}
-
-/*
- * Show notices stored in buffer, which is then reset.
- */
-static void
-ShowNoticeMessage(struct t_notice_messages *notices)
-{
- PQExpBufferData *current = &notices->messages[notices->current];
-
- if (*current->data != '\0')
- pg_log_info("%s", current->data);
- resetPQExpBuffer(current);
-}
-
-
-/*
* SendQuery: send the query string to the backend
* (and print out result)
*
@@ -1483,7 +1445,6 @@ ExecQueryAndProcessResults(const char *query, double *elapsed_msec, bool *svpt_g
instr_time before,
after;
PGresult *result;
- struct t_notice_messages notices;
if (timing)
INSTR_TIME_SET_CURRENT(before);
@@ -1513,12 +1474,6 @@ ExecQueryAndProcessResults(const char *query, double *elapsed_msec, bool *svpt_g
return 0;
}
- /* intercept notices */
- notices.current = 0;
- initPQExpBuffer(&notices.messages[0]);
- initPQExpBuffer(&notices.messages[1]);
- PQsetNoticeProcessor(pset.db, AppendNoticeMessage, &notices);
-
/* first result */
result = PQgetResult(pset.db);
@@ -1536,7 +1491,6 @@ ExecQueryAndProcessResults(const char *query, double *elapsed_msec, bool *svpt_g
*/
const char *error = PQresultErrorMessage(result);
- ShowNoticeMessage(&notices);
if (strlen(error))
pg_log_info("%s", error);
@@ -1601,8 +1555,6 @@ ExecQueryAndProcessResults(const char *query, double *elapsed_msec, bool *svpt_g
if (result_status == PGRES_COPY_IN ||
result_status == PGRES_COPY_OUT)
{
- ShowNoticeMessage(&notices);
-
if (is_watch)
{
ClearOrSaveAllResults();
@@ -1610,12 +1562,7 @@ ExecQueryAndProcessResults(const char *query, double *elapsed_msec, bool *svpt_g
return -1;
}
- /* use normal notice processor during COPY */
- PQsetNoticeProcessor(pset.db, NoticeProcessor, NULL);
-
success &= HandleCopyResult(&result);
-
- PQsetNoticeProcessor(pset.db, AppendNoticeMessage, &notices);
}
/*
@@ -1623,9 +1570,7 @@ ExecQueryAndProcessResults(const char *query, double *elapsed_msec, bool *svpt_g
* string, it will return NULL. Otherwise, we'll have other results
* to process. We need to do that to check whether this is the last.
*/
- notices.current ^= 1;
next_result = PQgetResult(pset.db);
- notices.current ^= 1;
last = (next_result == NULL);
/*
@@ -1647,9 +1592,6 @@ ExecQueryAndProcessResults(const char *query, double *elapsed_msec, bool *svpt_g
*elapsed_msec = INSTR_TIME_GET_MILLISEC(after);
}
- /* notices already shown above for copy */
- ShowNoticeMessage(&notices);
-
/* this may or may not print something depending on settings */
if (result != NULL)
success &= PrintQueryResult(result, last, false, opt, printQueryFout);
@@ -1659,7 +1601,6 @@ ExecQueryAndProcessResults(const char *query, double *elapsed_msec, bool *svpt_g
SetResultVariables(result, true);
ClearOrSaveResult(result);
- notices.current ^= 1;
result = next_result;
if (cancel_pressed)
@@ -1669,11 +1610,6 @@ ExecQueryAndProcessResults(const char *query, double *elapsed_msec, bool *svpt_g
}
}
- /* reset notice hook */
- PQsetNoticeProcessor(pset.db, NoticeProcessor, NULL);
- termPQExpBuffer(&notices.messages[0]);
- termPQExpBuffer(&notices.messages[1]);
-
/* may need this to recover from conn loss during COPY */
if (!CheckConnection())
return -1;
diff --git a/src/test/regress/expected/psql.out b/src/test/regress/expected/psql.out
index 2a38a93a3b3..60acbd1241e 100644
--- a/src/test/regress/expected/psql.out
+++ b/src/test/regress/expected/psql.out
@@ -5316,13 +5316,13 @@ AS $$
$$;
-- show both
SELECT 1 AS one \; SELECT warn('1.5') \; SELECT 2 AS two ;
+NOTICE: warn 1.5
+CONTEXT: PL/pgSQL function warn(text) line 2 at RAISE
one
-----
1
(1 row)
-NOTICE: warn 1.5
-CONTEXT: PL/pgSQL function warn(text) line 2 at RAISE
warn
------
t
@@ -5335,13 +5335,13 @@ CONTEXT: PL/pgSQL function warn(text) line 2 at RAISE
-- \gset applies to last query only
SELECT 3 AS three \; SELECT warn('3.5') \; SELECT 4 AS four \gset
+NOTICE: warn 3.5
+CONTEXT: PL/pgSQL function warn(text) line 2 at RAISE
three
-------
3
(1 row)
-NOTICE: warn 3.5
-CONTEXT: PL/pgSQL function warn(text) line 2 at RAISE
warn
------
t