Re: vacuumlo patch - Mailing list pgsql-hackers

From Tim Lewis
Subject Re: vacuumlo patch
Date
Msg-id CA+3zgmti_ooeVFHZO-bJoqEpbeYot3G9wxavwH2=YaNDDxVVqQ@mail.gmail.com
Whole thread Raw
In response to Re: vacuumlo patch  (Aron <me@eunice.de>)
List pgsql-hackers
Hi Aron,<br /><br />Thanks for the input. The "small change" you suggest would change the behavior of the patch which I
wouldprefer not to do as I have reasons for the previous behavior.<br />Because you gave no reasons and "stop after
removingLIMIT LOs" was not changed to "stop after attempting to remove LIMIT LOs" I suspect you were just trying to
keepthe code clean.<br /><br />The difference:<br />In your version of the patch vacuumlo will stop after N
lo_unlink(OID)attempts.<br />The previous behavior of the patch is that vacuumlo will stop after N successful
lo_unlink(OID)s.<br/><br />If you have good reason for your behavior please add another flag so that it is optional.<br
/>There should be a clear distinction between "counting vs not", and "aborting vs continuing" when a lo_unlink(OID) is
unsuccessful.<br/><br /><br /><div class="gmail_quote">On Tue, Jul 26, 2011 at 4:18 AM, Aron <span dir="ltr"><<a
href="mailto:me@eunice.de">me@eunice.de</a>></span>wrote:<br /><blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px#ccc solid;padding-left:1ex;">Here's another small change to the patch, it works fine for me and it
quite<br/> saved my day.<br /><br /> I try to submit the patch by email.<br /><div class="im"><br /><br /> diff --git
a/contrib/vacuumlo/vacuumlo.cb/contrib/vacuumlo/vacuumlo.c<br /></div>index f6e2a28..1f88d72 100644<br /><div
class="im">---a/contrib/vacuumlo/vacuumlo.c<br /> +++ b/contrib/vacuumlo/vacuumlo.c<br /> @@ -48,6 +48,7 @@ struct
_param<br/>        char       *pg_host;<br />        int                     verbose;<br />        int                
   dry_run;<br /> +       int             transaction_limit;<br />  };<br /><br />  int                  
 vacuumlo(char*, struct _param *);<br /></div>@@ -286,6 +287,8 @@ vacuumlo(char *database, struct _param * param)<br
/><divclass="im">                }<br />                else<br />                        deleted++;<br /> +          
   if(param->transaction_limit!=0 &&<br /> deleted>=param->transaction_limit)<br /> +                
 break;<br />        }<br />        PQclear(res);<br /><br /></div>@@ -313,6 +316,7 @@ usage(const char *progname)<br
/><divclass="im">        printf("  -h HOSTNAME  database server host or socket directory\n");<br />        printf("  -n
         don't remove large objects, just show what would be<br /> done\n");<br />        printf("  -p PORT    
 databaseserver port\n");<br /> +       printf("  -l LIMIT     stop after removing LIMIT LOs\n");<br />        printf("
 -UUSERNAME  user name to connect as\n");<br />        printf("  -w           never prompt for password\n");<br />    
  printf("  -W           force password prompt\n");<br /></div>@@ -342,6 +346,7 @@ main(int argc, char **argv)<br
/><divclass="im">        param.pg_port = NULL;<br />        param.verbose = 0;<br />        param.dry_run = 0;<br /> +
     param.transaction_limit = 0;<br /><br />        if (argc > 1)<br />        {<br /></div>@@ -359,7 +364,7 @@
main(intargc, char **argv)<br /><div class="im"><br />        while (1)<br />        {<br /> -               c =
getopt(argc,argv, "h:U:p:vnwW");<br /> +               c = getopt(argc, argv, "h:U:p:l:vnwW");<br />                if
(c== -1)<br />                        break;<br /><br /></div>@@ -395,6 +400,14 @@ main(int argc, char **argv)<br
/><divclass="im">                                }<br />                                param.pg_port =
strdup(optarg);<br/>                                break;<br /> +                       case 'l':<br /> +            
                 param.transaction_limit = strtol(optarg, NULL, 10);<br /> +                               if
((param.transaction_limit< 0) || (param.transaction_limit ><br /><a href="tel:2147483647"
value="+12147483647">2147483647</a>))<br/> +                               {<br /> +                                  
fprintf(stderr,"%s: invalid transaction limit number: %s, valid<br /> range is form 0(disabled) to <a
href="tel:2147483647"value="+12147483647">2147483647</a>.\n", progname, optarg);<br /> +                              
   exit(1);<br /> +                               }<br /> +                               break;<br />                
      case 'h':<br />                                param.pg_host = strdup(optarg);<br />                            
  break;<br /><br /><br /></div>--<br /> View this message in context: <a
href="http://postgresql.1045698.n5.nabble.com/vacuumlo-patch-tp4628522p4634026.html"
target="_blank">http://postgresql.1045698.n5.nabble.com/vacuumlo-patch-tp4628522p4634026.html</a><br/> Sent from the
PostgreSQL- hackers mailing list archive at Nabble.com.<br /><font color="#888888"><br /> --<br /> Sent via
pgsql-hackersmailing list (<a href="mailto:pgsql-hackers@postgresql.org">pgsql-hackers@postgresql.org</a>)<br /> To
makechanges to your subscription:<br /><a href="http://www.postgresql.org/mailpref/pgsql-hackers"
target="_blank">http://www.postgresql.org/mailpref/pgsql-hackers</a><br/></font></blockquote></div><br /><br
clear="all"/><br />-- <br /><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><div
style="font-family:'ArialRounded MT Bold';color:rgb(11, 119, 176);font-size:26px;font-weight:bold"><br
/>Noodle</div><divstyle="font-family:Helvetica;font-size:12px"><div style="font-style:italic;color:rgb(0, 3,
5)">Connecting <spanstyle="font-weight:bold">People, Content & Capabilities</span> within the <span
style="font-weight:bold">Enterprise</span><br/><br /></div><br />Toll Free: 866-258-6951 x 701<br /><a
href="mailto:Tim.Lewis@vialect.com"style="color:rgb(17, 65, 112)" target="_blank">Tim.Lewis@vialect.com</a><br /><a
href="http://www.vialect.com"style="color:rgb(17, 65, 112)" target="_blank">http://www.vialect.com</a><br /><br
/>Noodleis a product of Vialect Inc<br /><br />Follow Noodle on Twitter<br /><a
href="http://www.twitter.com/noodle_news"style="color:rgb(17, 65, 112)"
target="_blank">http://www.twitter.com/noodle_news</a></div></span><br/> 

pgsql-hackers by date:

Previous
From: David Fetter
Date:
Subject: Re: Check constraints on partition parents only?
Next
From: "_石头"
Date:
Subject: How to use CreateFunctionStmt's RETURN TABLE?