@@ -18,16 +18,16 @@ static void reindex_one_database(const char *name, const char *dbname,
18
18
const char * type , const char * host ,
19
19
const char * port , const char * username ,
20
20
enum trivalue prompt_password , const char * progname ,
21
- bool echo );
21
+ bool echo , bool verbose );
22
22
static void reindex_all_databases (const char * maintenance_db ,
23
23
const char * host , const char * port ,
24
24
const char * username , enum trivalue prompt_password ,
25
25
const char * progname , bool echo ,
26
- bool quiet );
26
+ bool quiet , bool verbose );
27
27
static void reindex_system_catalogs (const char * dbname ,
28
28
const char * host , const char * port ,
29
29
const char * username , enum trivalue prompt_password ,
30
- const char * progname , bool echo );
30
+ const char * progname , bool echo , bool verbose );
31
31
static void help (const char * progname );
32
32
33
33
int
@@ -47,6 +47,7 @@ main(int argc, char *argv[])
47
47
{"system" , no_argument , NULL , 's' },
48
48
{"table" , required_argument , NULL , 't' },
49
49
{"index" , required_argument , NULL , 'i' },
50
+ {"verbose" , no_argument , NULL , 'v' },
50
51
{"maintenance-db" , required_argument , NULL , 2 },
51
52
{NULL , 0 , NULL , 0 }
52
53
};
@@ -65,6 +66,7 @@ main(int argc, char *argv[])
65
66
bool alldb = false;
66
67
bool echo = false;
67
68
bool quiet = false;
69
+ bool verbose = false;
68
70
SimpleStringList indexes = {NULL , NULL };
69
71
SimpleStringList tables = {NULL , NULL };
70
72
SimpleStringList schemas = {NULL , NULL };
@@ -75,7 +77,7 @@ main(int argc, char *argv[])
75
77
handle_help_version_opts (argc , argv , "reindexdb" , help );
76
78
77
79
/* 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 )
79
81
{
80
82
switch (c )
81
83
{
@@ -118,6 +120,9 @@ main(int argc, char *argv[])
118
120
case 'i' :
119
121
simple_string_list_append (& indexes , optarg );
120
122
break ;
123
+ case 'v' :
124
+ verbose = true;
125
+ break ;
121
126
case 2 :
122
127
maintenance_db = pg_strdup (optarg );
123
128
break ;
@@ -176,7 +181,7 @@ main(int argc, char *argv[])
176
181
}
177
182
178
183
reindex_all_databases (maintenance_db , host , port , username ,
179
- prompt_password , progname , echo , quiet );
184
+ prompt_password , progname , echo , quiet , verbose );
180
185
}
181
186
else if (syscatalog )
182
187
{
@@ -207,7 +212,7 @@ main(int argc, char *argv[])
207
212
}
208
213
209
214
reindex_system_catalogs (dbname , host , port , username , prompt_password ,
210
- progname , echo );
215
+ progname , echo , verbose );
211
216
}
212
217
else
213
218
{
@@ -228,7 +233,7 @@ main(int argc, char *argv[])
228
233
for (cell = schemas .head ; cell ; cell = cell -> next )
229
234
{
230
235
reindex_one_database (cell -> val , dbname , "SCHEMA" , host , port ,
231
- username , prompt_password , progname , echo );
236
+ username , prompt_password , progname , echo , verbose );
232
237
}
233
238
}
234
239
@@ -239,7 +244,7 @@ main(int argc, char *argv[])
239
244
for (cell = indexes .head ; cell ; cell = cell -> next )
240
245
{
241
246
reindex_one_database (cell -> val , dbname , "INDEX" , host , port ,
242
- username , prompt_password , progname , echo );
247
+ username , prompt_password , progname , echo , verbose );
243
248
}
244
249
}
245
250
if (tables .head != NULL )
@@ -249,13 +254,13 @@ main(int argc, char *argv[])
249
254
for (cell = tables .head ; cell ; cell = cell -> next )
250
255
{
251
256
reindex_one_database (cell -> val , dbname , "TABLE" , host , port ,
252
- username , prompt_password , progname , echo );
257
+ username , prompt_password , progname , echo , verbose );
253
258
}
254
259
}
255
260
/* reindex database only if neither index nor table nor schema is specified */
256
261
if (indexes .head == NULL && tables .head == NULL && schemas .head == NULL )
257
262
reindex_one_database (dbname , dbname , "DATABASE" , host , port ,
258
- username , prompt_password , progname , echo );
263
+ username , prompt_password , progname , echo , verbose );
259
264
}
260
265
261
266
exit (0 );
@@ -264,7 +269,8 @@ main(int argc, char *argv[])
264
269
static void
265
270
reindex_one_database (const char * name , const char * dbname , const char * type ,
266
271
const 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 )
268
274
{
269
275
PQExpBufferData sql ;
270
276
@@ -273,6 +279,10 @@ reindex_one_database(const char *name, const char *dbname, const char *type,
273
279
initPQExpBuffer (& sql );
274
280
275
281
appendPQExpBufferStr (& sql , "REINDEX" );
282
+
283
+ if (verbose )
284
+ appendPQExpBufferStr (& sql , " (VERBOSE)" );
285
+
276
286
if (strcmp (type , "TABLE" ) == 0 )
277
287
appendPQExpBuffer (& sql , " TABLE %s" , name );
278
288
else if (strcmp (type , "INDEX" ) == 0 )
@@ -312,7 +322,7 @@ static void
312
322
reindex_all_databases (const char * maintenance_db ,
313
323
const char * host , const char * port ,
314
324
const char * username , enum trivalue prompt_password ,
315
- const char * progname , bool echo , bool quiet )
325
+ const char * progname , bool echo , bool quiet , bool verbose )
316
326
{
317
327
PGconn * conn ;
318
328
PGresult * result ;
@@ -334,7 +344,7 @@ reindex_all_databases(const char *maintenance_db,
334
344
}
335
345
336
346
reindex_one_database (dbname , dbname , "DATABASE" , host , port , username ,
337
- prompt_password , progname , echo );
347
+ prompt_password , progname , echo , verbose );
338
348
}
339
349
340
350
PQclear (result );
@@ -343,15 +353,20 @@ reindex_all_databases(const char *maintenance_db,
343
353
static void
344
354
reindex_system_catalogs (const char * dbname , const char * host , const char * port ,
345
355
const char * username , enum trivalue prompt_password ,
346
- const char * progname , bool echo )
356
+ const char * progname , bool echo , bool verbose )
347
357
{
348
358
PQExpBufferData sql ;
349
359
350
360
PGconn * conn ;
351
361
352
362
initPQExpBuffer (& sql );
353
363
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 );
355
370
356
371
conn = connectDatabase (dbname , host , port , username , prompt_password ,
357
372
progname , false);
@@ -381,6 +396,7 @@ help(const char *progname)
381
396
printf (_ (" -s, --system reindex system catalogs\n" ));
382
397
printf (_ (" -S, --schema=SCHEMA recreate specific schema(s) only\n" ));
383
398
printf (_ (" -t, --table=TABLE reindex specific table(s) only\n" ));
399
+ printf (_ (" -v, --verbose write a lot of output\n" ));
384
400
printf (_ (" -V, --version output version information, then exit\n" ));
385
401
printf (_ (" -?, --help show this help, then exit\n" ));
386
402
printf (_ ("\nConnection options:\n" ));
0 commit comments