@ -34,6 +34,7 @@ main(int argc, char *argv[])
{ " interactive " , no_argument , NULL , ' i ' } ,
{ " if-exists " , no_argument , & if_exists , 1 } ,
{ " maintenance-db " , required_argument , NULL , 2 } ,
{ " force " , no_argument , NULL , ' f ' } ,
{ NULL , 0 , NULL , 0 }
} ;
@ -49,6 +50,7 @@ main(int argc, char *argv[])
enum trivalue prompt_password = TRI_DEFAULT ;
bool echo = false ;
bool interactive = false ;
bool force = false ;
PQExpBufferData sql ;
@ -61,7 +63,7 @@ main(int argc, char *argv[])
handle_help_version_opts ( argc , argv , " dropdb " , help ) ;
while ( ( c = getopt_long ( argc , argv , " h:p:U:wWei " , long_options , & optindex ) ) ! = - 1 )
while ( ( c = getopt_long ( argc , argv , " h:p:U:wWeif " , long_options , & optindex ) ) ! = - 1 )
{
switch ( c )
{
@ -86,6 +88,9 @@ main(int argc, char *argv[])
case ' i ' :
interactive = true ;
break ;
case ' f ' :
force = true ;
break ;
case 0 :
/* this covers the long options */
break ;
@ -123,8 +128,10 @@ main(int argc, char *argv[])
initPQExpBuffer ( & sql ) ;
appendPQExpBuffer ( & sql , " DROP DATABASE %s%s; " ,
( if_exists ? " IF EXISTS " : " " ) , fmtId ( dbname ) ) ;
appendPQExpBuffer ( & sql , " DROP DATABASE %s%s%s; " ,
( if_exists ? " IF EXISTS " : " " ) ,
fmtId ( dbname ) ,
force ? " WITH (FORCE) " : " " ) ;
/* Avoid trying to drop postgres db while we are connected to it. */
if ( maintenance_db = = NULL & & strcmp ( dbname , " postgres " ) = = 0 )
@ -159,6 +166,7 @@ help(const char *progname)
printf ( _ ( " \n Options: \n " ) ) ;
printf ( _ ( " -e, --echo show the commands being sent to the server \n " ) ) ;
printf ( _ ( " -i, --interactive prompt before deleting anything \n " ) ) ;
printf ( _ ( " -f, --force try to terminate other connections before dropping \n " ) ) ;
printf ( _ ( " -V, --version output version information, then exit \n " ) ) ;
printf ( _ ( " --if-exists don't report error if database doesn't exist \n " ) ) ;
printf ( _ ( " -?, --help show this help, then exit \n " ) ) ;