*** a/src/bin/psql/command.c
--- b/src/bin/psql/command.c
***************
*** 2554,2579 **** lookup_function_oid(PGconn *conn, const char *desc, Oid *foid)
  static bool
  get_create_function_cmd(PGconn *conn, Oid oid, PQExpBuffer buf)
  {
! 	bool		result = true;
  	PQExpBuffer query;
  	PGresult   *res;
  
  	query = createPQExpBuffer();
  	printfPQExpBuffer(query, "SELECT pg_catalog.pg_get_functiondef(%u)", oid);
  
! 	res = PQexec(conn, query->data);
! 	if (PQresultStatus(res) == PGRES_TUPLES_OK && PQntuples(res) == 1)
! 	{
! 		resetPQExpBuffer(buf);
! 		appendPQExpBufferStr(buf, PQgetvalue(res, 0, 0));
! 	}
! 	else
  	{
! 		minimal_error_message(res);
! 		result = false;
  	}
  
- 	PQclear(res);
  	destroyPQExpBuffer(query);
  
  	return result;
--- 2554,2579 ----
  static bool
  get_create_function_cmd(PGconn *conn, Oid oid, PQExpBuffer buf)
  {
! 	bool		result = false;
  	PQExpBuffer query;
  	PGresult   *res;
  
  	query = createPQExpBuffer();
  	printfPQExpBuffer(query, "SELECT pg_catalog.pg_get_functiondef(%u)", oid);
  
! 	res = PSQLexec(query->data, false);
! 	if (res)
  	{
! 		if (PQresultStatus(res) == PGRES_TUPLES_OK && PQntuples(res) == 1)
! 		{
! 			resetPQExpBuffer(buf);
! 			appendPQExpBufferStr(buf, PQgetvalue(res, 0, 0));
! 			result = true;
! 		}
! 
! 		PQclear(res);
  	}
  
  	destroyPQExpBuffer(query);
  
  	return result;
