diff options
Diffstat (limited to 'src/bin/scripts')
-rw-r--r-- | src/bin/scripts/clusterdb.c | 31 | ||||
-rw-r--r-- | src/bin/scripts/common.c | 9 | ||||
-rw-r--r-- | src/bin/scripts/common.h | 11 | ||||
-rw-r--r-- | src/bin/scripts/createdb.c | 17 | ||||
-rw-r--r-- | src/bin/scripts/createlang.c | 17 | ||||
-rw-r--r-- | src/bin/scripts/createuser.c | 22 | ||||
-rw-r--r-- | src/bin/scripts/dropdb.c | 15 | ||||
-rw-r--r-- | src/bin/scripts/droplang.c | 17 | ||||
-rw-r--r-- | src/bin/scripts/dropuser.c | 15 | ||||
-rw-r--r-- | src/bin/scripts/reindexdb.c | 43 | ||||
-rw-r--r-- | src/bin/scripts/vacuumdb.c | 31 |
11 files changed, 137 insertions, 91 deletions
diff --git a/src/bin/scripts/clusterdb.c b/src/bin/scripts/clusterdb.c index e2755c5be64..c690de36cc9 100644 --- a/src/bin/scripts/clusterdb.c +++ b/src/bin/scripts/clusterdb.c @@ -4,7 +4,7 @@ * * Portions Copyright (c) 2002-2009, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/scripts/clusterdb.c,v 1.24 2009/02/25 13:03:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/clusterdb.c,v 1.25 2009/02/26 16:02:38 petere Exp $ * *------------------------------------------------------------------------- */ @@ -16,10 +16,10 @@ static void cluster_one_database(const char *dbname, bool verbose, const char *table, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo); static void cluster_all_databases(bool verbose, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo, bool quiet); static void help(const char *progname); @@ -32,6 +32,7 @@ main(int argc, char *argv[]) {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, {"password", no_argument, NULL, 'W'}, {"echo", no_argument, NULL, 'e'}, {"quiet", no_argument, NULL, 'q'}, @@ -50,7 +51,7 @@ main(int argc, char *argv[]) char *host = NULL; char *port = NULL; char *username = NULL; - bool password = false; + enum trivalue prompt_password = TRI_DEFAULT; bool echo = false; bool quiet = false; bool alldb = false; @@ -62,7 +63,7 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "clusterdb", help); - while ((c = getopt_long(argc, argv, "h:p:U:Weqd:at:v", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "h:p:U:wWeqd:at:v", long_options, &optindex)) != -1) { switch (c) { @@ -75,8 +76,11 @@ main(int argc, char *argv[]) case 'U': username = optarg; break; + case 'w': + prompt_password = TRI_NO; + break; case 'W': - password = true; + prompt_password = TRI_YES; break; case 'e': echo = true; @@ -133,7 +137,7 @@ main(int argc, char *argv[]) exit(1); } - cluster_all_databases(verbose, host, port, username, password, + cluster_all_databases(verbose, host, port, username, prompt_password, progname, echo, quiet); } else @@ -149,7 +153,7 @@ main(int argc, char *argv[]) } cluster_one_database(dbname, verbose, table, - host, port, username, password, + host, port, username, prompt_password, progname, echo); } @@ -160,7 +164,7 @@ main(int argc, char *argv[]) static void cluster_one_database(const char *dbname, bool verbose, const char *table, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo) { PQExpBufferData sql; @@ -176,7 +180,7 @@ cluster_one_database(const char *dbname, bool verbose, const char *table, appendPQExpBuffer(&sql, " %s", fmtId(table)); appendPQExpBuffer(&sql, ";\n"); - conn = connectDatabase(dbname, host, port, username, password, progname); + conn = connectDatabase(dbname, host, port, username, prompt_password, progname); if (!executeMaintenanceCommand(conn, sql.data, echo)) { if (table) @@ -195,14 +199,14 @@ cluster_one_database(const char *dbname, bool verbose, const char *table, static void cluster_all_databases(bool verbose, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo, bool quiet) { PGconn *conn; PGresult *result; int i; - conn = connectDatabase("postgres", host, port, username, password, progname); + conn = connectDatabase("postgres", host, port, username, prompt_password, progname); result = executeQuery(conn, "SELECT datname FROM pg_database WHERE datallowconn ORDER BY 1;", progname, echo); PQfinish(conn); @@ -217,7 +221,7 @@ cluster_all_databases(bool verbose, const char *host, const char *port, } cluster_one_database(dbname, verbose, NULL, - host, port, username, password, + host, port, username, prompt_password, progname, echo); } @@ -244,6 +248,7 @@ help(const char *progname) printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as\n")); + printf(_(" -w, --no-password never prompt for password\n")); printf(_(" -W, --password force password prompt\n")); printf(_("\nRead the description of the SQL command CLUSTER for details.\n")); printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n")); diff --git a/src/bin/scripts/common.c b/src/bin/scripts/common.c index 2587f1a99df..c34115a1ba0 100644 --- a/src/bin/scripts/common.c +++ b/src/bin/scripts/common.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/bin/scripts/common.c,v 1.34 2009/02/25 13:24:40 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/common.c,v 1.35 2009/02/26 16:02:38 petere Exp $ * *------------------------------------------------------------------------- */ @@ -96,14 +96,14 @@ handle_help_version_opts(int argc, char *argv[], */ PGconn * connectDatabase(const char *dbname, const char *pghost, const char *pgport, - const char *pguser, bool require_password, + const char *pguser, enum trivalue prompt_password, const char *progname) { PGconn *conn; char *password = NULL; bool new_pass; - if (require_password) + if (prompt_password == TRI_YES) password = simple_prompt("Password: ", 100, false); /* @@ -124,7 +124,8 @@ connectDatabase(const char *dbname, const char *pghost, const char *pgport, if (PQstatus(conn) == CONNECTION_BAD && PQconnectionNeedsPassword(conn) && - password == NULL) + password == NULL && + prompt_password != TRI_NO) { PQfinish(conn); password = simple_prompt("Password: ", 100, false); diff --git a/src/bin/scripts/common.h b/src/bin/scripts/common.h index 5123920be4a..5c94d46add0 100644 --- a/src/bin/scripts/common.h +++ b/src/bin/scripts/common.h @@ -4,7 +4,7 @@ * * Copyright (c) 2003-2009, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/scripts/common.h,v 1.21 2009/01/01 17:23:55 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/common.h,v 1.22 2009/02/26 16:02:39 petere Exp $ */ #ifndef COMMON_H #define COMMON_H @@ -17,6 +17,13 @@ extern int optreset; #endif +enum trivalue +{ + TRI_DEFAULT, + TRI_NO, + TRI_YES +}; + typedef void (*help_handler) (const char *progname); extern const char *get_user_name(const char *progname); @@ -27,7 +34,7 @@ extern void handle_help_version_opts(int argc, char *argv[], extern PGconn *connectDatabase(const char *dbname, const char *pghost, const char *pgport, const char *pguser, - bool require_password, const char *progname); + enum trivalue prompt_password, const char *progname); extern PGresult *executeQuery(PGconn *conn, const char *query, const char *progname, bool echo); diff --git a/src/bin/scripts/createdb.c b/src/bin/scripts/createdb.c index a587771f230..f7cb9cf3de4 100644 --- a/src/bin/scripts/createdb.c +++ b/src/bin/scripts/createdb.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.31 2009/02/25 13:03:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.32 2009/02/26 16:02:39 petere Exp $ * *------------------------------------------------------------------------- */ @@ -25,6 +25,7 @@ main(int argc, char *argv[]) {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, {"password", no_argument, NULL, 'W'}, {"echo", no_argument, NULL, 'e'}, {"quiet", no_argument, NULL, 'q'}, @@ -47,7 +48,7 @@ main(int argc, char *argv[]) char *host = NULL; char *port = NULL; char *username = NULL; - bool password = false; + enum trivalue prompt_password = TRI_DEFAULT; bool echo = false; char *owner = NULL; char *tablespace = NULL; @@ -67,7 +68,7 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "createdb", help); - while ((c = getopt_long(argc, argv, "h:p:U:WeqO:D:T:E:l:", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "h:p:U:wWeqO:D:T:E:l:", long_options, &optindex)) != -1) { switch (c) { @@ -80,8 +81,11 @@ main(int argc, char *argv[]) case 'U': username = optarg; break; + case 'w': + prompt_password = TRI_NO; + break; case 'W': - password = true; + prompt_password = TRI_YES; break; case 'e': echo = true; @@ -193,7 +197,7 @@ main(int argc, char *argv[]) appendPQExpBuffer(&sql, ";\n"); conn = connectDatabase(strcmp(dbname, "postgres") == 0 ? "template1" : "postgres", - host, port, username, password, progname); + host, port, username, prompt_password, progname); if (echo) printf("%s", sql.data); @@ -212,7 +216,7 @@ main(int argc, char *argv[]) if (comment) { - conn = connectDatabase(dbname, host, port, username, password, progname); + conn = connectDatabase(dbname, host, port, username, prompt_password, progname); printfPQExpBuffer(&sql, "COMMENT ON DATABASE %s IS ", fmtId(dbname)); appendStringLiteralConn(&sql, comment, conn); @@ -259,6 +263,7 @@ help(const char *progname) printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as\n")); + printf(_(" -w, --no-password never prompt for password\n")); printf(_(" -W, --password force password prompt\n")); printf(_("\nBy default, a database with the same name as the current user is created.\n")); printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n")); diff --git a/src/bin/scripts/createlang.c b/src/bin/scripts/createlang.c index dcfef2b608d..d00cb63a8b0 100644 --- a/src/bin/scripts/createlang.c +++ b/src/bin/scripts/createlang.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/bin/scripts/createlang.c,v 1.33 2009/02/25 13:03:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/createlang.c,v 1.34 2009/02/26 16:02:39 petere Exp $ * *------------------------------------------------------------------------- */ @@ -25,6 +25,7 @@ main(int argc, char *argv[]) {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, {"password", no_argument, NULL, 'W'}, {"dbname", required_argument, NULL, 'd'}, {"echo", no_argument, NULL, 'e'}, @@ -40,7 +41,7 @@ main(int argc, char *argv[]) char *host = NULL; char *port = NULL; char *username = NULL; - bool password = false; + enum trivalue prompt_password = TRI_DEFAULT; bool echo = false; char *langname = NULL; @@ -56,7 +57,7 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "createlang", help); - while ((c = getopt_long(argc, argv, "lh:p:U:Wd:e", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "lh:p:U:wWd:e", long_options, &optindex)) != -1) { switch (c) { @@ -72,8 +73,11 @@ main(int argc, char *argv[]) case 'U': username = optarg; break; + case 'w': + prompt_password = TRI_NO; + break; case 'W': - password = true; + prompt_password = TRI_YES; break; case 'd': dbname = optarg; @@ -127,7 +131,7 @@ main(int argc, char *argv[]) printQueryOpt popt; static const bool translate_columns[] = {false, true}; - conn = connectDatabase(dbname, host, port, username, password, + conn = connectDatabase(dbname, host, port, username, prompt_password, progname); printfPQExpBuffer(&sql, "SELECT lanname as \"%s\", " @@ -164,7 +168,7 @@ main(int argc, char *argv[]) if (*p >= 'A' && *p <= 'Z') *p += ('a' - 'A'); - conn = connectDatabase(dbname, host, port, username, password, progname); + conn = connectDatabase(dbname, host, port, username, prompt_password, progname); /* * Make sure the language isn't already installed @@ -220,6 +224,7 @@ help(const char *progname) printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as\n")); + printf(_(" -w, --no-password never prompt for password\n")); printf(_(" -W, --password force password prompt\n")); printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n")); } diff --git a/src/bin/scripts/createuser.c b/src/bin/scripts/createuser.c index 852cafd648f..88b9bd30d57 100644 --- a/src/bin/scripts/createuser.c +++ b/src/bin/scripts/createuser.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.41 2009/02/25 13:03:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.42 2009/02/26 16:02:39 petere Exp $ * *------------------------------------------------------------------------- */ @@ -17,13 +17,6 @@ static void help(const char *progname); -enum trivalue -{ - TRI_DEFAULT, - TRI_NO, - TRI_YES -}; - int main(int argc, char *argv[]) { @@ -31,6 +24,7 @@ main(int argc, char *argv[]) {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, {"password", no_argument, NULL, 'W'}, {"echo", no_argument, NULL, 'e'}, {"quiet", no_argument, NULL, 'q'}, @@ -61,7 +55,7 @@ main(int argc, char *argv[]) char *host = NULL; char *port = NULL; char *username = NULL; - bool password = false; + enum trivalue prompt_password = TRI_DEFAULT; bool echo = false; char *conn_limit = NULL; bool pwprompt = false; @@ -85,7 +79,7 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "createuser", help); - while ((c = getopt_long(argc, argv, "h:p:U:WeqdDsSaArRiIlLc:PEN", + while ((c = getopt_long(argc, argv, "h:p:U:wWeqdDsSaArRiIlLc:PEN", long_options, &optindex)) != -1) { switch (c) @@ -99,8 +93,11 @@ main(int argc, char *argv[]) case 'U': username = optarg; break; + case 'w': + prompt_password = TRI_NO; + break; case 'W': - password = true; + prompt_password = TRI_YES; break; case 'e': echo = true; @@ -228,7 +225,7 @@ main(int argc, char *argv[]) if (login == 0) login = TRI_YES; - conn = connectDatabase("postgres", host, port, username, password, progname); + conn = connectDatabase("postgres", host, port, username, prompt_password, progname); initPQExpBuffer(&sql); @@ -329,6 +326,7 @@ help(const char *progname) printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as (not the one to create)\n")); + printf(_(" -w, --no-password never prompt for password\n")); printf(_(" -W, --password force password prompt\n")); printf(_("\nIf one of -d, -D, -r, -R, -s, -S, and ROLENAME is not specified, you will\n" "be prompted interactively.\n")); diff --git a/src/bin/scripts/dropdb.c b/src/bin/scripts/dropdb.c index 28747180788..086e1c15175 100644 --- a/src/bin/scripts/dropdb.c +++ b/src/bin/scripts/dropdb.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/bin/scripts/dropdb.c,v 1.25 2009/02/25 13:03:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/dropdb.c,v 1.26 2009/02/26 16:02:39 petere Exp $ * *------------------------------------------------------------------------- */ @@ -25,6 +25,7 @@ main(int argc, char *argv[]) {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, {"password", no_argument, NULL, 'W'}, {"echo", no_argument, NULL, 'e'}, {"quiet", no_argument, NULL, 'q'}, @@ -40,7 +41,7 @@ main(int argc, char *argv[]) char *host = NULL; char *port = NULL; char *username = NULL; - bool password = false; + enum trivalue prompt_password = TRI_DEFAULT; bool echo = false; bool interactive = false; @@ -54,7 +55,7 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "dropdb", help); - while ((c = getopt_long(argc, argv, "h:p:U:Weqi", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "h:p:U:wWeqi", long_options, &optindex)) != -1) { switch (c) { @@ -67,8 +68,11 @@ main(int argc, char *argv[]) case 'U': username = optarg; break; + case 'w': + prompt_password = TRI_NO; + break; case 'W': - password = true; + prompt_password = TRI_YES; break; case 'e': echo = true; @@ -114,7 +118,7 @@ main(int argc, char *argv[]) fmtId(dbname)); conn = connectDatabase(strcmp(dbname, "postgres") == 0 ? "template1" : "postgres", - host, port, username, password, progname); + host, port, username, prompt_password, progname); if (echo) printf("%s", sql.data); @@ -148,6 +152,7 @@ help(const char *progname) printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as\n")); + printf(_(" -w, --no-password never prompt for password\n")); printf(_(" -W, --password force password prompt\n")); printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n")); } diff --git a/src/bin/scripts/droplang.c b/src/bin/scripts/droplang.c index 13f8e325bb5..7038e08b8af 100644 --- a/src/bin/scripts/droplang.c +++ b/src/bin/scripts/droplang.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/bin/scripts/droplang.c,v 1.30 2009/02/25 13:03:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/droplang.c,v 1.31 2009/02/26 16:02:39 petere Exp $ * *------------------------------------------------------------------------- */ @@ -28,6 +28,7 @@ main(int argc, char *argv[]) {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, {"password", no_argument, NULL, 'W'}, {"dbname", required_argument, NULL, 'd'}, {"echo", no_argument, NULL, 'e'}, @@ -43,7 +44,7 @@ main(int argc, char *argv[]) char *host = NULL; char *port = NULL; char *username = NULL; - bool password = false; + enum trivalue prompt_password = TRI_DEFAULT; bool echo = false; char *langname = NULL; @@ -67,7 +68,7 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "droplang", help); - while ((c = getopt_long(argc, argv, "lh:p:U:Wd:e", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "lh:p:U:wWd:e", long_options, &optindex)) != -1) { switch (c) { @@ -83,8 +84,11 @@ main(int argc, char *argv[]) case 'U': username = optarg; break; + case 'w': + prompt_password = TRI_NO; + break; case 'W': - password = true; + prompt_password = TRI_YES; break; case 'd': dbname = optarg; @@ -138,7 +142,7 @@ main(int argc, char *argv[]) printQueryOpt popt; static const bool translate_columns[] = {false, true}; - conn = connectDatabase(dbname, host, port, username, password, + conn = connectDatabase(dbname, host, port, username, prompt_password, progname); printfPQExpBuffer(&sql, "SELECT lanname as \"%s\", " @@ -177,7 +181,7 @@ main(int argc, char *argv[]) if (*p >= 'A' && *p <= 'Z') *p += ('a' - 'A'); - conn = connectDatabase(dbname, host, port, username, password, progname); + conn = connectDatabase(dbname, host, port, username, prompt_password, progname); /* * Force schema search path to be just pg_catalog, so that we don't have @@ -337,6 +341,7 @@ help(const char *progname) printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as\n")); + printf(_(" -w, --no-password never prompt for password\n")); printf(_(" -W, --password force password prompt\n")); printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n")); } diff --git a/src/bin/scripts/dropuser.c b/src/bin/scripts/dropuser.c index a5087afcf05..be2e2ceda6a 100644 --- a/src/bin/scripts/dropuser.c +++ b/src/bin/scripts/dropuser.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/bin/scripts/dropuser.c,v 1.26 2009/02/25 13:03:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/dropuser.c,v 1.27 2009/02/26 16:02:39 petere Exp $ * *------------------------------------------------------------------------- */ @@ -25,6 +25,7 @@ main(int argc, char *argv[]) {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, {"password", no_argument, NULL, 'W'}, {"echo", no_argument, NULL, 'e'}, {"quiet", no_argument, NULL, 'q'}, @@ -40,7 +41,7 @@ main(int argc, char *argv[]) char *host = NULL; char *port = NULL; char *username = NULL; - bool password = false; + enum trivalue prompt_password = TRI_DEFAULT; bool echo = false; bool interactive = false; @@ -54,7 +55,7 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "dropuser", help); - while ((c = getopt_long(argc, argv, "h:p:U:Weqi", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "h:p:U:wWeqi", long_options, &optindex)) != -1) { switch (c) { @@ -67,8 +68,11 @@ main(int argc, char *argv[]) case 'U': username = optarg; break; + case 'w': + prompt_password = TRI_NO; + break; case 'W': - password = true; + prompt_password = TRI_YES; break; case 'e': echo = true; @@ -112,7 +116,7 @@ main(int argc, char *argv[]) initPQExpBuffer(&sql); appendPQExpBuffer(&sql, "DROP ROLE %s;\n", fmtId(dropuser)); - conn = connectDatabase("postgres", host, port, username, password, progname); + conn = connectDatabase("postgres", host, port, username, prompt_password, progname); if (echo) printf("%s", sql.data); @@ -147,6 +151,7 @@ help(const char *progname) printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as (not the one to drop)\n")); + printf(_(" -w, --no-password never prompt for password\n")); printf(_(" -W, --password force password prompt\n")); printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n")); } diff --git a/src/bin/scripts/reindexdb.c b/src/bin/scripts/reindexdb.c index ebccd04f5e1..3bfa55249a7 100644 --- a/src/bin/scripts/reindexdb.c +++ b/src/bin/scripts/reindexdb.c @@ -4,7 +4,7 @@ * * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/scripts/reindexdb.c,v 1.16 2009/02/25 13:03:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/reindexdb.c,v 1.17 2009/02/26 16:02:39 petere Exp $ * *------------------------------------------------------------------------- */ @@ -17,15 +17,15 @@ static void reindex_one_database(const char *name, const char *dbname, const char *type, const char *host, const char *port, const char *username, - bool password, const char *progname, + enum trivalue prompt_password, const char *progname, bool echo); static void reindex_all_databases(const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo, bool quiet); static void reindex_system_catalogs(const char *dbname, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo); static void help(const char *progname); @@ -36,6 +36,7 @@ main(int argc, char *argv[]) {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, {"password", no_argument, NULL, 'W'}, {"echo", no_argument, NULL, 'e'}, {"quiet", no_argument, NULL, 'q'}, @@ -55,7 +56,7 @@ main(int argc, char *argv[]) const char *host = NULL; const char *port = NULL; const char *username = NULL; - bool password = false; + enum trivalue prompt_password = TRI_DEFAULT; bool syscatalog = false; bool alldb = false; bool echo = false; @@ -69,7 +70,7 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "reindexdb", help); /* process command-line options */ - while ((c = getopt_long(argc, argv, "h:p:U:Weqd:ast:i:", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "h:p:U:wWeqd:ast:i:", long_options, &optindex)) != -1) { switch (c) { @@ -82,8 +83,11 @@ main(int argc, char *argv[]) case 'U': username = optarg; break; + case 'w': + prompt_password = TRI_NO; + break; case 'W': - password = true; + prompt_password = TRI_YES; break; case 'e': echo = true; @@ -150,7 +154,7 @@ main(int argc, char *argv[]) exit(1); } - reindex_all_databases(host, port, username, password, + reindex_all_databases(host, port, username, prompt_password, progname, echo, quiet); } else if (syscatalog) @@ -176,7 +180,7 @@ main(int argc, char *argv[]) dbname = get_user_name(progname); } - reindex_system_catalogs(dbname, host, port, username, password, + reindex_system_catalogs(dbname, host, port, username, prompt_password, progname, echo); } else @@ -193,14 +197,14 @@ main(int argc, char *argv[]) if (index) reindex_one_database(index, dbname, "INDEX", host, port, - username, password, progname, echo); + username, prompt_password, progname, echo); if (table) reindex_one_database(table, dbname, "TABLE", host, port, - username, password, progname, echo); + username, prompt_password, progname, echo); /* reindex database only if index or table is not specified */ if (index == NULL && table == NULL) reindex_one_database(dbname, dbname, "DATABASE", host, port, - username, password, progname, echo); + username, prompt_password, progname, echo); } exit(0); @@ -209,7 +213,7 @@ main(int argc, char *argv[]) static void reindex_one_database(const char *name, const char *dbname, const char *type, const char *host, const char *port, const char *username, - bool password, const char *progname, bool echo) + enum trivalue prompt_password, const char *progname, bool echo) { PQExpBufferData sql; @@ -226,7 +230,7 @@ reindex_one_database(const char *name, const char *dbname, const char *type, appendPQExpBuffer(&sql, " DATABASE %s", fmtId(name)); appendPQExpBuffer(&sql, ";\n"); - conn = connectDatabase(dbname, host, port, username, password, progname); + conn = connectDatabase(dbname, host, port, username, prompt_password, progname); if (!executeMaintenanceCommand(conn, sql.data, echo)) { @@ -249,14 +253,14 @@ reindex_one_database(const char *name, const char *dbname, const char *type, static void reindex_all_databases(const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo, bool quiet) { PGconn *conn; PGresult *result; int i; - conn = connectDatabase("postgres", host, port, username, password, progname); + conn = connectDatabase("postgres", host, port, username, prompt_password, progname); result = executeQuery(conn, "SELECT datname FROM pg_database WHERE datallowconn ORDER BY 1;", progname, echo); PQfinish(conn); @@ -271,7 +275,7 @@ reindex_all_databases(const char *host, const char *port, } reindex_one_database(dbname, dbname, "DATABASE", host, port, username, - password, progname, echo); + prompt_password, progname, echo); } PQclear(result); @@ -279,7 +283,7 @@ reindex_all_databases(const char *host, const char *port, static void reindex_system_catalogs(const char *dbname, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo) { PQExpBufferData sql; @@ -290,7 +294,7 @@ reindex_system_catalogs(const char *dbname, const char *host, const char *port, appendPQExpBuffer(&sql, "REINDEX SYSTEM %s;\n", dbname); - conn = connectDatabase(dbname, host, port, username, password, progname); + conn = connectDatabase(dbname, host, port, username, prompt_password, progname); if (!executeMaintenanceCommand(conn, sql.data, echo)) { fprintf(stderr, _("%s: reindexing of system catalogs failed: %s"), @@ -322,6 +326,7 @@ help(const char *progname) printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as\n")); + printf(_(" -w, --no-password never prompt for password\n")); printf(_(" -W, --password force password prompt\n")); printf(_("\nRead the description of the SQL command REINDEX for details.\n")); printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n")); diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c index 204ec7b7f2b..ada55735beb 100644 --- a/src/bin/scripts/vacuumdb.c +++ b/src/bin/scripts/vacuumdb.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/bin/scripts/vacuumdb.c,v 1.24 2009/02/25 13:03:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/scripts/vacuumdb.c,v 1.25 2009/02/26 16:02:39 petere Exp $ * *------------------------------------------------------------------------- */ @@ -17,11 +17,11 @@ static void vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, bool freeze, const char *table, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo); static void vacuum_all_databases(bool full, bool verbose, bool analyze, bool freeze, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo, bool quiet); static void help(const char *progname); @@ -34,6 +34,7 @@ main(int argc, char *argv[]) {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, {"username", required_argument, NULL, 'U'}, + {"no-password", no_argument, NULL, 'w'}, {"password", no_argument, NULL, 'W'}, {"echo", no_argument, NULL, 'e'}, {"quiet", no_argument, NULL, 'q'}, @@ -55,7 +56,7 @@ main(int argc, char *argv[]) char *host = NULL; char *port = NULL; char *username = NULL; - bool password = false; + enum trivalue prompt_password = TRI_DEFAULT; bool echo = false; bool quiet = false; bool analyze = false; @@ -70,7 +71,7 @@ main(int argc, char *argv[]) handle_help_version_opts(argc, argv, "vacuumdb", help); - while ((c = getopt_long(argc, argv, "h:p:U:Weqd:zaFt:fv", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "h:p:U:wWeqd:zaFt:fv", long_options, &optindex)) != -1) { switch (c) { @@ -83,8 +84,11 @@ main(int argc, char *argv[]) case 'U': username = optarg; break; + case 'w': + prompt_password = TRI_NO; + break; case 'W': - password = true; + prompt_password = TRI_YES; break; case 'e': echo = true; @@ -151,7 +155,7 @@ main(int argc, char *argv[]) } vacuum_all_databases(full, verbose, analyze, freeze, - host, port, username, password, + host, port, username, prompt_password, progname, echo, quiet); } else @@ -167,7 +171,7 @@ main(int argc, char *argv[]) } vacuum_one_database(dbname, full, verbose, analyze, freeze, table, - host, port, username, password, + host, port, username, prompt_password, progname, echo); } @@ -179,7 +183,7 @@ static void vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, bool freeze, const char *table, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo) { PQExpBufferData sql; @@ -201,7 +205,7 @@ vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, appendPQExpBuffer(&sql, " %s", table); appendPQExpBuffer(&sql, ";\n"); - conn = connectDatabase(dbname, host, port, username, password, progname); + conn = connectDatabase(dbname, host, port, username, prompt_password, progname); if (!executeMaintenanceCommand(conn, sql.data, echo)) { if (table) @@ -221,14 +225,14 @@ vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, static void vacuum_all_databases(bool full, bool verbose, bool analyze, bool freeze, const char *host, const char *port, - const char *username, bool password, + const char *username, enum trivalue prompt_password, const char *progname, bool echo, bool quiet) { PGconn *conn; PGresult *result; int i; - conn = connectDatabase("postgres", host, port, username, password, progname); + conn = connectDatabase("postgres", host, port, username, prompt_password, progname); result = executeQuery(conn, "SELECT datname FROM pg_database WHERE datallowconn ORDER BY 1;", progname, echo); PQfinish(conn); @@ -243,7 +247,7 @@ vacuum_all_databases(bool full, bool verbose, bool analyze, bool freeze, } vacuum_one_database(dbname, full, verbose, analyze, freeze, NULL, - host, port, username, password, + host, port, username, prompt_password, progname, echo); } @@ -273,6 +277,7 @@ help(const char *progname) printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); printf(_(" -p, --port=PORT database server port\n")); printf(_(" -U, --username=USERNAME user name to connect as\n")); + printf(_(" -w, --no-password never prompt for password\n")); printf(_(" -W, --password force password prompt\n")); printf(_("\nRead the description of the SQL command VACUUM for details.\n")); printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n")); |