@@ -18,16 +18,16 @@ static void reindex_one_database(const char *name, const char *dbname,
1818const char * type ,const char * host ,
1919const char * port ,const char * username ,
2020enum trivalue prompt_password ,const char * progname ,
21- bool echo );
21+ bool echo , bool verbose );
2222static void reindex_all_databases (const char * maintenance_db ,
2323const char * host ,const char * port ,
2424const char * username ,enum trivalue prompt_password ,
2525const char * progname ,bool echo ,
26- bool quiet );
26+ bool quiet , bool verbose );
2727static void reindex_system_catalogs (const char * dbname ,
2828const char * host ,const char * port ,
2929const char * username ,enum trivalue prompt_password ,
30- const char * progname ,bool echo );
30+ const char * progname ,bool echo , bool verbose );
3131static void help (const char * progname );
3232
3333int
@@ -47,6 +47,7 @@ main(int argc, char *argv[])
4747{"system" ,no_argument ,NULL ,'s' },
4848{"table" ,required_argument ,NULL ,'t' },
4949{"index" ,required_argument ,NULL ,'i' },
50+ {"verbose" ,no_argument ,NULL ,'v' },
5051{"maintenance-db" ,required_argument ,NULL ,2 },
5152{NULL ,0 ,NULL ,0 }
5253};
@@ -65,6 +66,7 @@ main(int argc, char *argv[])
6566bool alldb = false;
6667bool echo = false;
6768bool quiet = false;
69+ bool verbose = false;
6870SimpleStringList indexes = {NULL ,NULL };
6971SimpleStringList tables = {NULL ,NULL };
7072SimpleStringList schemas = {NULL ,NULL };
@@ -75,7 +77,7 @@ main(int argc, char *argv[])
7577handle_help_version_opts (argc ,argv ,"reindexdb" ,help );
7678
7779/* process command-line options */
78- while ((c = getopt_long (argc ,argv ,"h:p:U:wWeqS:d:ast:i:" ,long_options ,& optindex ))!= -1 )
80+ while ((c = getopt_long (argc ,argv ,"h:p:U:wWeqS:d:ast:i:v " ,long_options ,& optindex ))!= -1 )
7981{
8082switch (c )
8183{
@@ -118,6 +120,9 @@ main(int argc, char *argv[])
118120case 'i' :
119121simple_string_list_append (& indexes ,optarg );
120122break ;
123+ case 'v' :
124+ verbose = true;
125+ break ;
121126case 2 :
122127maintenance_db = pg_strdup (optarg );
123128break ;
@@ -176,7 +181,7 @@ main(int argc, char *argv[])
176181}
177182
178183reindex_all_databases (maintenance_db ,host ,port ,username ,
179- prompt_password ,progname ,echo ,quiet );
184+ prompt_password ,progname ,echo ,quiet , verbose );
180185}
181186else if (syscatalog )
182187{
@@ -207,7 +212,7 @@ main(int argc, char *argv[])
207212}
208213
209214reindex_system_catalogs (dbname ,host ,port ,username ,prompt_password ,
210- progname ,echo );
215+ progname ,echo , verbose );
211216}
212217else
213218{
@@ -228,7 +233,7 @@ main(int argc, char *argv[])
228233for (cell = schemas .head ;cell ;cell = cell -> next )
229234{
230235reindex_one_database (cell -> val ,dbname ,"SCHEMA" ,host ,port ,
231- username ,prompt_password ,progname ,echo );
236+ username ,prompt_password ,progname ,echo , verbose );
232237}
233238}
234239
@@ -239,7 +244,7 @@ main(int argc, char *argv[])
239244for (cell = indexes .head ;cell ;cell = cell -> next )
240245{
241246reindex_one_database (cell -> val ,dbname ,"INDEX" ,host ,port ,
242- username ,prompt_password ,progname ,echo );
247+ username ,prompt_password ,progname ,echo , verbose );
243248}
244249}
245250if (tables .head != NULL )
@@ -249,13 +254,13 @@ main(int argc, char *argv[])
249254for (cell = tables .head ;cell ;cell = cell -> next )
250255{
251256reindex_one_database (cell -> val ,dbname ,"TABLE" ,host ,port ,
252- username ,prompt_password ,progname ,echo );
257+ username ,prompt_password ,progname ,echo , verbose );
253258}
254259}
255260/* reindex database only if neither index nor table nor schema is specified */
256261if (indexes .head == NULL && tables .head == NULL && schemas .head == NULL )
257262reindex_one_database (dbname ,dbname ,"DATABASE" ,host ,port ,
258- username ,prompt_password ,progname ,echo );
263+ username ,prompt_password ,progname ,echo , verbose );
259264}
260265
261266exit (0 );
@@ -264,7 +269,8 @@ main(int argc, char *argv[])
264269static void
265270reindex_one_database (const char * name ,const char * dbname ,const char * type ,
266271const char * host ,const char * port ,const char * username ,
267- enum trivalue prompt_password ,const char * progname ,bool echo )
272+ enum trivalue prompt_password ,const char * progname ,bool echo ,
273+ bool verbose )
268274{
269275PQExpBufferData sql ;
270276
@@ -273,6 +279,10 @@ reindex_one_database(const char *name, const char *dbname, const char *type,
273279initPQExpBuffer (& sql );
274280
275281appendPQExpBufferStr (& sql ,"REINDEX" );
282+
283+ if (verbose )
284+ appendPQExpBufferStr (& sql ," (VERBOSE)" );
285+
276286if (strcmp (type ,"TABLE" )== 0 )
277287appendPQExpBuffer (& sql ," TABLE %s" ,name );
278288else if (strcmp (type ,"INDEX" )== 0 )
@@ -312,7 +322,7 @@ static void
312322reindex_all_databases (const char * maintenance_db ,
313323const char * host ,const char * port ,
314324const char * username ,enum trivalue prompt_password ,
315- const char * progname ,bool echo ,bool quiet )
325+ const char * progname ,bool echo ,bool quiet , bool verbose )
316326{
317327PGconn * conn ;
318328PGresult * result ;
@@ -334,7 +344,7 @@ reindex_all_databases(const char *maintenance_db,
334344}
335345
336346reindex_one_database (dbname ,dbname ,"DATABASE" ,host ,port ,username ,
337- prompt_password ,progname ,echo );
347+ prompt_password ,progname ,echo , verbose );
338348}
339349
340350PQclear (result );
@@ -343,15 +353,20 @@ reindex_all_databases(const char *maintenance_db,
343353static void
344354reindex_system_catalogs (const char * dbname ,const char * host ,const char * port ,
345355const char * username ,enum trivalue prompt_password ,
346- const char * progname ,bool echo )
356+ const char * progname ,bool echo , bool verbose )
347357{
348358PQExpBufferData sql ;
349359
350360PGconn * conn ;
351361
352362initPQExpBuffer (& sql );
353363
354- appendPQExpBuffer (& sql ,"REINDEX SYSTEM %s;" ,dbname );
364+ appendPQExpBuffer (& sql ,"REINDEX" );
365+
366+ if (verbose )
367+ appendPQExpBuffer (& sql ," (VERBOSE)" );
368+
369+ appendPQExpBuffer (& sql ," SYSTEM %s;" ,dbname );
355370
356371conn = connectDatabase (dbname ,host ,port ,username ,prompt_password ,
357372progname , false);
@@ -381,6 +396,7 @@ help(const char *progname)
381396printf (_ (" -s, --system reindex system catalogs\n" ));
382397printf (_ (" -S, --schema=SCHEMA recreate specific schema(s) only\n" ));
383398printf (_ (" -t, --table=TABLE reindex specific table(s) only\n" ));
399+ printf (_ (" -v, --verbose write a lot of output\n" ));
384400printf (_ (" -V, --version output version information, then exit\n" ));
385401printf (_ (" -?, --help show this help, then exit\n" ));
386402printf (_ ("\nConnection options:\n" ));