[PATCHES] psql \lo_* quiet mode patch

2006-12-24 Thread Jeremy Drake
I sent this in rather late in the 8.2 cycle, so now that 8.3 development
is underway I thought I'd try sending it again.  This patch was necessary
in the development of a large object regression test, but is logically
seperate and reasonable even without that test, so I'm sending it in
seperately for independant consideration.  I'll save my pushing on the
large object test until this one gets in ;)

-- Forwarded message --
Date: Thu, 26 Oct 2006 15:58:07 -0700 (PDT)
From: Jeremy Drake <[EMAIL PROTECTED]>
To: PostgreSQL Patches 
Subject: [PATCHES] psql \lo_* quiet mode patch

I sent this in a while back, but never heard anything about it.

This patch makes psql's \lo_* commands respect the -q flag (or other
methods of setting quiet mode) as well as HTML output mode.  This came in
very handy when writing a regression test which uses the \lo_import
command since it would otherwise output the OID of the new large object
which would be different every run.

Please let me know if it is ok, or if I need to do it differently.

-- 
Let me assure you that to us here at First National, you're not just a
number.  You're two numbers, a dash, three more numbers, another dash
and another number.
-- James EstesIndex: src/bin/psql/large_obj.c
===
RCS file: 
/home/jeremyd/local/postgres/cvsuproot/pgsql/src/bin/psql/large_obj.c,v
retrieving revision 1.46
diff -c -r1.46 large_obj.c
*** src/bin/psql/large_obj.c29 Aug 2006 15:19:51 -  1.46
--- src/bin/psql/large_obj.c25 Sep 2006 23:02:33 -
***
*** 12,17 
--- 12,54 
  #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("", pset.queryFout);
+   // XXX should probably use html_escaped_print here
+   // but I know the strings have no bad chars
+   }
+ 
+   va_start(ap, fmt);
+   vfprintf(pset.queryFout, fmt, ap);
+   va_end(ap);
+ 
+   if (pset.popt.topt.format == PRINT_HTML)
+   fputs("\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,135 
if (!finish_lo_xact("\\lo_export", own_transaction))
return false;
  
!   fprintf(pset.queryFout, "lo_export\n");
  
return true;
  }
--- 166,172 
if (!finish_lo_xact("\\lo_export", own_transaction))
return false;
  
!   print_lo_result("lo_export");
  
return true;
  }
***
*** 189,195 
if (!finish_lo_xact("\\lo_import", own_transaction))
return false;
  
!   fprintf(pset.queryFout, "lo_import %u\n", loid);
sprintf(oidbuf, "%u", loid);
SetVariable(pset.vars, "LASTOID", oidbuf);
  
--- 226,233 
if (!finish_lo_xact("\\lo_import", own_transaction))
return false;
  
!   print_lo_result("lo_import %u", loid);
! 
sprintf(oidbuf, "%u", loid);
SetVariable(pset.vars, "LASTOID", oidbuf);
  
***
*** 225,231 
if (!finish_lo_xact("\\lo_unlink", own_transaction))
return false;
  
!   fprintf(pset.queryFout, "lo_unlink %u\n", loid);
  
return true;
  }
--- 263,269 
if (!finish_lo_xact("\\lo_unlink", own_transaction))
return false;
  
!   print_lo_result("lo_unlink %u", loid);
  
return true;
  }

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [PATCHES] Tablespace for temporary objects and sort files

2006-12-24 Thread Jaime Casanova

On 12/24/06, Albert Cervera Areny <[EMAIL PROTECTED]> wrote:

Hi,
   yes I'm working on it. I've got a more recent version that doesn't crash 
on
initdb and works with sort files. I've got a couple of things pending and
will post it as soon as I can. If you want I could make a diff and send it to
you in case you wanted to test/improve the patch.
   Refering to some of the comment I never answered (sorry about that) I 
prefer
to use GetTempTablespace() as I think it's easier to read/understand than
GetDefaultTablespace(true).
   And thanks for pointing to temporary indexes. There seems not to be 
temporary
indexes but indexes of temporary tables, which could use GetTempTablespace()
too...



yeah, it was late and i was almost asleep... i was thinking in
temporary sequences, but indexes on temporary tables it's not a bad
idea too...
that was the reason i think it's better to use the same
GetDefaultTablespace() function it's less intrussive and is not
directed to one particular object but all temp objects can benefit...

i will wait your patch when you think is ready for discussion...

--
regards,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
  Richard Cook

---(end of broadcast)---
TIP 6: explain analyze is your friend