Rework echo_hidden for \sf and \ef from commit e4d2817
.
PSQLexec's error reporting turns out to be too verbose for this case, so revert to using PQexec instead with minimal error reporting. Prior to calling PQexec, we call a function that mimics just the echo_hidden piece of PSQLexec.
This commit is contained in:
parent
447770404c
commit
eca2b9ba3e
|
@ -2924,6 +2924,34 @@ do_watch(PQExpBuffer query_buf, long sleep)
|
|||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* a little code borrowed from PSQLexec() to manage ECHO_HIDDEN output.
|
||||
* returns true unless we have ECHO_HIDDEN_NOEXEC.
|
||||
*/
|
||||
static bool
|
||||
lookup_function_echo_hidden(char * query)
|
||||
{
|
||||
if (pset.echo_hidden != PSQL_ECHO_HIDDEN_OFF)
|
||||
{
|
||||
printf(_("********* QUERY **********\n"
|
||||
"%s\n"
|
||||
"**************************\n\n"), query);
|
||||
fflush(stdout);
|
||||
if (pset.logfile)
|
||||
{
|
||||
fprintf(pset.logfile,
|
||||
_("********* QUERY **********\n"
|
||||
"%s\n"
|
||||
"**************************\n\n"), query);
|
||||
fflush(pset.logfile);
|
||||
}
|
||||
|
||||
if (pset.echo_hidden == PSQL_ECHO_HIDDEN_NOEXEC)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function takes a function description, e.g. "x" or "x(int)", and
|
||||
* issues a query on the given connection to retrieve the function's OID
|
||||
|
@ -2945,8 +2973,9 @@ lookup_function_oid(const char *desc, Oid *foid)
|
|||
appendStringLiteralConn(query, desc, pset.db);
|
||||
appendPQExpBuffer(query, "::pg_catalog.%s::pg_catalog.oid",
|
||||
strchr(desc, '(') ? "regprocedure" : "regproc");
|
||||
|
||||
res = PSQLexec(query->data);
|
||||
if (!lookup_function_echo_hidden(query->data))
|
||||
return false;
|
||||
res = PQexec(pset.db, query->data);
|
||||
if (PQresultStatus(res) == PGRES_TUPLES_OK && PQntuples(res) == 1)
|
||||
*foid = atooid(PQgetvalue(res, 0, 0));
|
||||
else
|
||||
|
@ -2975,7 +3004,9 @@ get_create_function_cmd(Oid oid, PQExpBuffer buf)
|
|||
query = createPQExpBuffer();
|
||||
printfPQExpBuffer(query, "SELECT pg_catalog.pg_get_functiondef(%u)", oid);
|
||||
|
||||
res = PSQLexec(query->data);
|
||||
if (!lookup_function_echo_hidden(query->data))
|
||||
return false;
|
||||
res = PQexec(pset.db, query->data);
|
||||
if (PQresultStatus(res) == PGRES_TUPLES_OK && PQntuples(res) == 1)
|
||||
{
|
||||
resetPQExpBuffer(buf);
|
||||
|
|
Loading…
Reference in New Issue