Re: vacuumlo patch - Mailing list pgsql-hackers

From Aron
Subject Re: vacuumlo patch
Date
Msg-id 1311668335687-4634026.post@n5.nabble.com
Whole thread Raw
In response to Re: vacuumlo patch  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: vacuumlo patch
Re: vacuumlo patch
List pgsql-hackers
Here's another small change to the patch, it works fine for me and it quite
saved my day.

I try to submit the patch by email.


diff --git a/contrib/vacuumlo/vacuumlo.c b/contrib/vacuumlo/vacuumlo.c
index f6e2a28..1f88d72 100644
--- a/contrib/vacuumlo/vacuumlo.c
+++ b/contrib/vacuumlo/vacuumlo.c
@@ -48,6 +48,7 @@ struct _param    char       *pg_host;    int            verbose;    int            dry_run;
+    int        transaction_limit;};int            vacuumlo(char *, struct _param *);
@@ -286,6 +287,8 @@ vacuumlo(char *database, struct _param * param)        }        else            deleted++;
+            if(param->transaction_limit!=0 &&
deleted>=param->transaction_limit)
+            break;    }    PQclear(res);
@@ -313,6 +316,7 @@ usage(const char *progname)    printf("  -h HOSTNAME  database server host or socket directory\n");
  printf("  -n           don't remove large objects, just show what would be
 
done\n");    printf("  -p PORT      database server port\n");
+    printf("  -l LIMIT     stop after removing LIMIT LOs\n");    printf("  -U USERNAME  user name to connect as\n");
printf("  -w           never prompt for password\n");    printf("  -W           force password prompt\n");
 
@@ -342,6 +346,7 @@ main(int argc, char **argv)    param.pg_port = NULL;    param.verbose = 0;    param.dry_run = 0;
+    param.transaction_limit = 0;    if (argc > 1)    {
@@ -359,7 +364,7 @@ main(int argc, char **argv)    while (1)    {
-        c = getopt(argc, argv, "h:U:p:vnwW");
+        c = getopt(argc, argv, "h:U:p:l:vnwW");        if (c == -1)            break;
@@ -395,6 +400,14 @@ main(int argc, char **argv)                }                param.pg_port = strdup(optarg);
       break;
 
+            case 'l':
+                param.transaction_limit = strtol(optarg, NULL, 10);
+                if ((param.transaction_limit < 0) || (param.transaction_limit >
2147483647))
+                {
+                    fprintf(stderr, "%s: invalid transaction limit number: %s, valid
range is form 0(disabled) to 2147483647.\n", progname, optarg);
+                    exit(1);
+                }
+                break;            case 'h':                param.pg_host = strdup(optarg);                break;


--
View this message in context: http://postgresql.1045698.n5.nabble.com/vacuumlo-patch-tp4628522p4634026.html
Sent from the PostgreSQL - hackers mailing list archive at Nabble.com.


pgsql-hackers by date:

Previous
From: Nikhil Sontakke
Date:
Subject: Re: Check constraints on partition parents only?
Next
From: "_石头"
Date:
Subject: 回复: [HACKERS] How to use CreateFunctionStmt's RETURN TABLE?