summaryrefslogtreecommitdiff
path: root/contrib/vacuumlo
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2002-09-04 20:31:48 +0000
committerBruce Momjian <bruce@momjian.us>2002-09-04 20:31:48 +0000
commite50f52a074bdf0d6a9dc384840e641c4c0b0bb1a (patch)
treeab73e8c8ec94a6ddc774c1f9c49b87aa6b93fd13 /contrib/vacuumlo
parentc91ceec21d357d6d857163d897ac75a79c883dee (diff)
downloadpostgresql-e50f52a074bdf0d6a9dc384840e641c4c0b0bb1a.tar.gz
pgindent run.
Diffstat (limited to 'contrib/vacuumlo')
-rw-r--r--contrib/vacuumlo/vacuumlo.c237
1 files changed, 126 insertions, 111 deletions
diff --git a/contrib/vacuumlo/vacuumlo.c b/contrib/vacuumlo/vacuumlo.c
index ac80ea361a..83b53a9696 100644
--- a/contrib/vacuumlo/vacuumlo.c
+++ b/contrib/vacuumlo/vacuumlo.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/contrib/vacuumlo/vacuumlo.c,v 1.13 2002/08/15 02:58:29 momjian Exp $
+ * $Header: /cvsroot/pgsql/contrib/vacuumlo/vacuumlo.c,v 1.14 2002/09/04 20:31:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,20 +35,23 @@
#define BUFSIZE 1024
extern char *optarg;
-extern int optind, opterr, optopt;
-
-struct _param {
- char *pg_user;
- int pg_prompt;
- char *pg_port;
- char *pg_host;
- int verbose;
- int dry_run;
+extern int optind,
+ opterr,
+ optopt;
+
+struct _param
+{
+ char *pg_user;
+ int pg_prompt;
+ char *pg_port;
+ char *pg_host;
+ int verbose;
+ int dry_run;
};
-int vacuumlo(char *, struct _param *);
-char *simple_prompt(const char *prompt, int , int);
-void usage(void);
+int vacuumlo(char *, struct _param *);
+char *simple_prompt(const char *prompt, int, int);
+void usage(void);
/*
@@ -63,7 +66,7 @@ void usage(void);
*
* Returns a malloc()'ed string with the input (w/o trailing newline).
*/
-static int prompt_state = 0;
+static int prompt_state = 0;
char *
simple_prompt(const char *prompt, int maxlen, int echo)
@@ -82,7 +85,7 @@ simple_prompt(const char *prompt, int maxlen, int echo)
if (!destination)
return NULL;
- prompt_state = 1; /* disable SIGINT */
+ prompt_state = 1; /* disable SIGINT */
/*
* Do not try to collapse these into one "w+" mode file. Doesn't work
@@ -153,7 +156,7 @@ simple_prompt(const char *prompt, int maxlen, int echo)
fclose(termout);
}
- prompt_state = 0; /* SIGINT okay again */
+ prompt_state = 0; /* SIGINT okay again */
return destination;
}
@@ -164,33 +167,35 @@ simple_prompt(const char *prompt, int maxlen, int echo)
* This vacuums LOs of one database. It returns 0 on success, -1 on failure.
*/
int
-vacuumlo(char *database, struct _param *param)
+vacuumlo(char *database, struct _param * param)
{
PGconn *conn;
PGresult *res,
- *res2;
+ *res2;
char buf[BUFSIZE];
- int matched;
- int deleted;
- int i;
- char *password = NULL;
-
- if(param->pg_prompt) {
- password = simple_prompt("Password: ", 32, 0);
- if(!password) {
- fprintf(stderr, "failed to get password\n");
- exit(1);
+ int matched;
+ int deleted;
+ int i;
+ char *password = NULL;
+
+ if (param->pg_prompt)
+ {
+ password = simple_prompt("Password: ", 32, 0);
+ if (!password)
+ {
+ fprintf(stderr, "failed to get password\n");
+ exit(1);
}
}
- conn = PQsetdbLogin( param->pg_host,
- param->pg_port,
- NULL,
- NULL,
- database,
- param->pg_user,
- password
- );
+ conn = PQsetdbLogin(param->pg_host,
+ param->pg_port,
+ NULL,
+ NULL,
+ database,
+ param->pg_user,
+ password
+ );
/* check to see that the backend connection was successfully made */
if (PQstatus(conn) == CONNECTION_BAD)
@@ -201,10 +206,11 @@ vacuumlo(char *database, struct _param *param)
return -1;
}
- if (param->verbose) {
+ if (param->verbose)
+ {
fprintf(stdout, "Connected to %s\n", database);
- if(param->dry_run)
- fprintf(stdout, "Test run: no large objects will be removed!\n");
+ if (param->dry_run)
+ fprintf(stdout, "Test run: no large objects will be removed!\n");
}
/*
@@ -289,7 +295,7 @@ vacuumlo(char *database, struct _param *param)
* whole program is a Postgres-ism.
*/
snprintf(buf, BUFSIZE, "DELETE FROM vacuum_l WHERE lo = \"%s\".\"%s\" ",
- table, field);
+ table, field);
res2 = PQexec(conn, buf);
if (PQresultStatus(res2) != PGRES_COMMAND_OK)
{
@@ -342,16 +348,18 @@ vacuumlo(char *database, struct _param *param)
fflush(stdout);
}
- if(param->dry_run == 0) {
- if (lo_unlink(conn, lo) < 0)
- {
- fprintf(stderr, "\nFailed to remove lo %u: ", lo);
- fprintf(stderr, "%s", PQerrorMessage(conn));
- }
- else
- deleted++;
- } else
- deleted++;
+ if (param->dry_run == 0)
+ {
+ if (lo_unlink(conn, lo) < 0)
+ {
+ fprintf(stderr, "\nFailed to remove lo %u: ", lo);
+ fprintf(stderr, "%s", PQerrorMessage(conn));
+ }
+ else
+ deleted++;
+ }
+ else
+ deleted++;
}
PQclear(res);
@@ -365,23 +373,24 @@ vacuumlo(char *database, struct _param *param)
if (param->verbose)
fprintf(stdout, "\r%s %d large objects from %s.\n",
- (param->dry_run?"Would remove":"Removed"), deleted, database);
+ (param->dry_run ? "Would remove" : "Removed"), deleted, database);
return 0;
}
void
-usage(void) {
- fprintf(stdout, "vacuumlo removes unreferenced large objects from databases\n\n");
- fprintf(stdout, "Usage:\n vacuumlo [options] dbname [dbnames...]\n\n");
- fprintf(stdout, "Options:\n");
+usage(void)
+{
+ fprintf(stdout, "vacuumlo removes unreferenced large objects from databases\n\n");
+ fprintf(stdout, "Usage:\n vacuumlo [options] dbname [dbnames...]\n\n");
+ fprintf(stdout, "Options:\n");
fprintf(stdout, " -v\t\tWrite a lot of output\n");
fprintf(stdout, " -n\t\tDon't remove any large object, just show what would be done\n");
- fprintf(stdout, " -U username\tUsername to connect as\n");
- fprintf(stdout, " -W\t\tPrompt for password\n");
- fprintf(stdout, " -h hostname\tDatabase server host\n");
+ fprintf(stdout, " -U username\tUsername to connect as\n");
+ fprintf(stdout, " -W\t\tPrompt for password\n");
+ fprintf(stdout, " -h hostname\tDatabase server host\n");
fprintf(stdout, " -p port\tDatabase server port\n");
- fprintf(stdout, " -p port\tDatabase server port\n\n");
+ fprintf(stdout, " -p port\tDatabase server port\n\n");
}
@@ -389,69 +398,75 @@ int
main(int argc, char **argv)
{
int rc = 0;
- struct _param param;
- int c;
- int port;
+ struct _param param;
+ int c;
+ int port;
/* Parameter handling */
- param.pg_user = NULL;
+ param.pg_user = NULL;
param.pg_prompt = 0;
param.pg_host = NULL;
param.pg_port = 0;
- param.verbose = 0;
+ param.verbose = 0;
param.dry_run = 0;
- while( 1 ) {
- c = getopt(argc, argv, "?h:U:p:vnW");
- if(c == -1)
- break;
-
- switch(c) {
- case '?':
- if(optopt == '?') {
- usage();
- exit(0);
- }
- exit(1);
- case ':':
- exit(1);
- case 'v':
- param.verbose = 1;
- break;
- case 'n':
- param.dry_run = 1;
- param.verbose = 1;
- break;
- case 'U':
- param.pg_user = strdup(optarg);
- break;
- case 'W':
- param.pg_prompt = 1;
- break;
- case 'p':
- port = strtol(optarg, NULL, 10);
- if( (port < 1) || (port > 65535)) {
- fprintf(stderr, "[%s]: invalid port number '%s'\n", argv[0], optarg);
- exit(1);
- }
- param.pg_port = strdup(optarg);
- break;
- case 'h':
- param.pg_host = strdup(optarg);
- break;
- }
+ while (1)
+ {
+ c = getopt(argc, argv, "?h:U:p:vnW");
+ if (c == -1)
+ break;
+
+ switch (c)
+ {
+ case '?':
+ if (optopt == '?')
+ {
+ usage();
+ exit(0);
+ }
+ exit(1);
+ case ':':
+ exit(1);
+ case 'v':
+ param.verbose = 1;
+ break;
+ case 'n':
+ param.dry_run = 1;
+ param.verbose = 1;
+ break;
+ case 'U':
+ param.pg_user = strdup(optarg);
+ break;
+ case 'W':
+ param.pg_prompt = 1;
+ break;
+ case 'p':
+ port = strtol(optarg, NULL, 10);
+ if ((port < 1) || (port > 65535))
+ {
+ fprintf(stderr, "[%s]: invalid port number '%s'\n", argv[0], optarg);
+ exit(1);
+ }
+ param.pg_port = strdup(optarg);
+ break;
+ case 'h':
+ param.pg_host = strdup(optarg);
+ break;
+ }
}
-
+
/* No database given? Show usage */
- if(optind >= argc-1) {
- fprintf(stderr, "vacuumlo: missing required argument: database name\n");
- fprintf(stderr, "Try 'vacuumlo -?' for help.\n");
- exit(1);
+ if (optind >= argc - 1)
+ {
+ fprintf(stderr, "vacuumlo: missing required argument: database name\n");
+ fprintf(stderr, "Try 'vacuumlo -?' for help.\n");
+ exit(1);
}
- for(c = optind; c < argc; c++) {
- /* Work on selected database */
- rc += (vacuumlo(argv[c], &param) != 0);
+ for (c = optind; c < argc; c++)
+ {
+ /* Work on selected database */
+ rc += (vacuumlo(argv[c], &param) != 0);
}
return rc;