1
/*-------------------------------------------------------------------------
5
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
6
* Portions Copyright (c) 1994, Regents of the University of California
8
* $PostgreSQL: pgsql/src/bin/scripts/dropdb.c,v 1.14 2004-12-31 22:03:17 pgsql Exp $
10
*-------------------------------------------------------------------------
13
#include "postgres_fe.h"
15
#include "dumputils.h"
18
static void help(const char *progname);
22
main(int argc, char *argv[])
24
static struct option long_options[] = {
25
{"host", required_argument, NULL, 'h'},
26
{"port", required_argument, NULL, 'p'},
27
{"username", required_argument, NULL, 'U'},
28
{"password", no_argument, NULL, 'W'},
29
{"echo", no_argument, NULL, 'e'},
30
{"quiet", no_argument, NULL, 'q'},
31
{"interactive", no_argument, NULL, 'i'},
42
char *username = NULL;
43
bool password = false;
46
bool interactive = false;
53
progname = get_progname(argv[0]);
54
set_pglocale_pgservice(argv[0], "pgscripts");
56
handle_help_version_opts(argc, argv, "dropdb", help);
58
while ((c = getopt_long(argc, argv, "h:p:U:Weqi", long_options, &optindex)) != -1)
84
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
89
switch (argc - optind)
92
fprintf(stderr, _("%s: missing required argument database name\n"), progname);
93
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
96
dbname = argv[optind];
99
fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"),
100
progname, argv[optind + 1]);
101
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
109
printf(_("Database \"%s\" will be permanently removed.\n"), dbname);
110
reply = simple_prompt("Are you sure? (y/n) ", 1, true);
111
if (check_yesno_response(reply) != 1)
115
initPQExpBuffer(&sql);
117
appendPQExpBuffer(&sql, "DROP DATABASE %s;\n",
120
conn = connectDatabase("template1", host, port, username, password, progname);
123
printf("%s", sql.data);
124
result = PQexec(conn, sql.data);
125
if (PQresultStatus(result) != PGRES_COMMAND_OK)
127
fprintf(stderr, _("%s: database removal failed: %s"),
128
progname, PQerrorMessage(conn));
136
puts("DROP DATABASE");
144
help(const char *progname)
146
printf(_("%s removes a PostgreSQL database.\n\n"), progname);
147
printf(_("Usage:\n"));
148
printf(_(" %s [OPTION]... DBNAME\n"), progname);
149
printf(_("\nOptions:\n"));
150
printf(_(" -e, --echo show the commands being sent to the server\n"));
151
printf(_(" -i, --interactive prompt before deleting anything\n"));
152
printf(_(" -q, --quiet don't write any messages\n"));
153
printf(_(" -h, --host=HOSTNAME database server host or socket directory\n"));
154
printf(_(" -p, --port=PORT database server port\n"));
155
printf(_(" -U, --username=USERNAME user name to connect as\n"));
156
printf(_(" -W, --password prompt for password\n"));
157
printf(_(" --help show this help, then exit\n"));
158
printf(_(" --version output version information, then exit\n"));
159
printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n"));