mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-01 19:45:33 +08:00
Teach psql's \lo slash commands to respect quiet mode, and to output
HTML in HTML mode. Patch from Jeremy Drake.
This commit is contained in:
parent
24ac4c968c
commit
4945a8fad4
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.179 2006/12/19 01:53:36 adunstan Exp $
|
||||
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.180 2007/01/20 16:57:31 neilc Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -1329,11 +1329,12 @@ Tue Oct 26 21:40:57 CEST 1999
|
||||
foo=> <userinput>\lo_import '/home/peter/pictures/photo.xcf' 'a picture of me'</userinput>
|
||||
lo_import 152801
|
||||
</programlisting>
|
||||
The response indicates that the large object received object ID
|
||||
152801 which one ought to remember if one wants to access the
|
||||
object ever again. For that reason it is recommended to always
|
||||
associate a human-readable comment with every object. Those can
|
||||
then be seen with the <command>\lo_list</command> command.
|
||||
The response indicates that the large object received object
|
||||
ID 152801, which can be used to access the newly-created large
|
||||
object in the future. For the sake of readability, it is
|
||||
recommended to always associate a human-readable comment with
|
||||
every object. Both OIDs and comments can be viewed with the
|
||||
<command>\lo_list</command> command.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/bin/psql/large_obj.c,v 1.47 2007/01/05 22:19:49 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/bin/psql/large_obj.c,v 1.48 2007/01/20 16:57:31 neilc Exp $
|
||||
*/
|
||||
#include "postgres_fe.h"
|
||||
#include "large_obj.h"
|
||||
@ -12,6 +12,39 @@
|
||||
#include "settings.h"
|
||||
#include "common.h"
|
||||
|
||||
static void
|
||||
print_lo_result(const char *fmt,...)
|
||||
__attribute__((format(printf, 1, 2)));
|
||||
|
||||
static void
|
||||
print_lo_result(const char *fmt,...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
if (!pset.quiet)
|
||||
{
|
||||
if (pset.popt.topt.format == PRINT_HTML)
|
||||
fputs("<p>", pset.queryFout);
|
||||
|
||||
va_start(ap, fmt);
|
||||
vfprintf(pset.queryFout, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (pset.popt.topt.format == PRINT_HTML)
|
||||
fputs("</p>\n", pset.queryFout);
|
||||
else
|
||||
fputs("\n", pset.queryFout);
|
||||
}
|
||||
|
||||
if (pset.logfile)
|
||||
{
|
||||
va_start(ap, fmt);
|
||||
vfprintf(pset.logfile, fmt, ap);
|
||||
va_end(ap);
|
||||
fputs("\n", pset.logfile);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Prepare to do a large-object operation. We *must* be inside a transaction
|
||||
@ -129,7 +162,7 @@ do_lo_export(const char *loid_arg, const char *filename_arg)
|
||||
if (!finish_lo_xact("\\lo_export", own_transaction))
|
||||
return false;
|
||||
|
||||
fprintf(pset.queryFout, "lo_export\n");
|
||||
print_lo_result("lo_export");
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -189,7 +222,8 @@ do_lo_import(const char *filename_arg, const char *comment_arg)
|
||||
if (!finish_lo_xact("\\lo_import", own_transaction))
|
||||
return false;
|
||||
|
||||
fprintf(pset.queryFout, "lo_import %u\n", loid);
|
||||
print_lo_result("lo_import %u", loid);
|
||||
|
||||
sprintf(oidbuf, "%u", loid);
|
||||
SetVariable(pset.vars, "LASTOID", oidbuf);
|
||||
|
||||
@ -225,7 +259,7 @@ do_lo_unlink(const char *loid_arg)
|
||||
if (!finish_lo_xact("\\lo_unlink", own_transaction))
|
||||
return false;
|
||||
|
||||
fprintf(pset.queryFout, "lo_unlink %u\n", loid);
|
||||
print_lo_result("lo_unlink %u", loid);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user