From fd8bde8e10748b561830b72adff718dc04a3556a Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Fri, 13 Dec 2013 00:53:27 +0900 Subject: [PATCH] Merge "show timeline" and "show" as a single command It is just troublesome to have to type a subcommands for something that could be merged into a single table. The output could be made in a smarter way though... --- pg_rman.c | 7 +------ pg_rman.h | 2 +- show.c | 58 ++++++++++++------------------------------------------- 3 files changed, 14 insertions(+), 53 deletions(-) diff --git a/pg_rman.c b/pg_rman.c index bbed52d4..044d7877 100644 --- a/pg_rman.c +++ b/pg_rman.c @@ -104,7 +104,6 @@ main(int argc, char *argv[]) const char *cmd = NULL; const char *range1 = NULL; const char *range2 = NULL; - bool show_timeline = false; pgBackupRange range; int i; @@ -121,9 +120,6 @@ main(int argc, char *argv[]) { if (cmd == NULL) cmd = argv[i]; - else if (pg_strcasecmp(argv[i], "timeline") == 0 && - pg_strcasecmp(cmd, "show") == 0) - show_timeline = true; else if (range1 == NULL) range1 = argv[i]; else if (range2 == NULL) @@ -207,7 +203,7 @@ main(int argc, char *argv[]) target_inclusive, target_tli, is_hard_copy); } else if (pg_strcasecmp(cmd, "show") == 0) - return do_show(&range, show_timeline, show_all); + return do_show(&range, show_all); else if (pg_strcasecmp(cmd, "validate") == 0) return do_validate(&range); else if (pg_strcasecmp(cmd, "delete") == 0) @@ -227,7 +223,6 @@ pgut_help(bool details) printf(_(" %s OPTION backup\n"), PROGRAM_NAME); printf(_(" %s OPTION restore\n"), PROGRAM_NAME); printf(_(" %s OPTION show [DATE]\n"), PROGRAM_NAME); - printf(_(" %s OPTION show timeline [DATE]\n"), PROGRAM_NAME); printf(_(" %s OPTION validate [DATE]\n"), PROGRAM_NAME); printf(_(" %s OPTION delete DATE\n"), PROGRAM_NAME); diff --git a/pg_rman.h b/pg_rman.h index 08cf8211..a7f68810 100644 --- a/pg_rman.h +++ b/pg_rman.h @@ -247,7 +247,7 @@ extern int do_restore(const char *target_time, extern int do_init(void); /* in show.c */ -extern int do_show(pgBackupRange *range, bool show_timeline, bool show_all); +extern int do_show(pgBackupRange *range, bool show_all); /* in delete.c */ extern int do_delete(pgBackupRange *range, bool force); diff --git a/show.c b/show.c index 7f4062af..8ccbd8f5 100644 --- a/show.c +++ b/show.c @@ -10,7 +10,6 @@ #include "pg_rman.h" static void show_backup_list(FILE *out, parray *backup_list, bool show_all); -static void show_timeline_backup_list(FILE *out, parray *backup_list, bool show_all); static void show_backup_detail(FILE *out, pgBackup *backup); /* @@ -19,7 +18,7 @@ static void show_backup_detail(FILE *out, pgBackup *backup); * backup indicated by id. */ int -do_show(pgBackupRange *range, bool show_timeline, bool show_all) +do_show(pgBackupRange *range, bool show_all) { if (pgBackupRangeIsSingle(range)) { @@ -49,10 +48,7 @@ do_show(pgBackupRange *range, bool show_timeline, bool show_all) elog(ERROR_SYSTEM, _("can't process any more.")); } - if (!show_timeline) - show_backup_list(stdout, backup_list, show_all); - else - show_timeline_backup_list(stdout, backup_list, show_all); + show_backup_list(stdout, backup_list, show_all); /* cleanup */ parray_walk(backup_list, pgBackupFree); @@ -165,13 +161,15 @@ show_backup_list(FILE *out, parray *backup_list, bool show_all) int i; /* show header */ - fputs("============================================================================\n", out); - fputs("Start Time Total Data WAL Log Backup Status \n", out); - fputs("============================================================================\n", out); + fputs("===========================================================================================================\n", out); + fputs("Start Mode Current TLI Parent TLI Time Total Data WAL Log Backup Status \n", out); + fputs("===========================================================================================================\n", out); for (i = 0; i < parray_num(backup_list); i++) { pgBackup *backup; + const char *modes[] = { "", "ARCH", "INCR", "FULL"}; + TimeLineID parent_tli; char timestamp[20]; char duration[20] = "----"; char total_data_bytes_str[10] = "----"; @@ -206,45 +204,13 @@ show_backup_list(FILE *out, parray *backup_list, bool show_all) pretty_size(backup->write_bytes, write_bytes_str, lengthof(write_bytes_str)); - fprintf(out, "%-19s %5s %6s %6s %6s %6s %6s %s\n", - timestamp, duration, - total_data_bytes_str, read_data_bytes_str, read_arclog_bytes_str, - read_srvlog_bytes_str, write_bytes_str, status2str(backup->status)); - } -} - -static void -show_timeline_backup_list(FILE *out, parray *backup_list, bool show_all) -{ - int i; - - /* show header */ - fputs("============================================================\n", out); - fputs("Start Mode Current TLI Parent TLI Status \n", out); - fputs("============================================================\n", out); - - for (i = 0; i < parray_num(backup_list); i++) - { - static const char *modes[] = { "", "ARCH", "INCR", "FULL"}; - - pgBackup *backup; - char timestamp[20]; - TimeLineID parent_tli; - - backup = parray_get(backup_list, i); - - /* skip deleted backup and serverlog backup */ - if ((backup->status == BACKUP_STATUS_DELETED || !HAVE_ARCLOG(backup)) && - !show_all) - continue; - - time2iso(timestamp, lengthof(timestamp), backup->start_time); - + /* Get parent timeline before printing */ parent_tli = get_parent_tli(backup->tli); - fprintf(out, "%-19s %-4s %10d %10d %s\n", - timestamp, modes[backup->backup_mode], backup->tli, parent_tli, - status2str(backup->status)); + fprintf(out, "%-19s %-4s %10d %10d %5s %6s %6s %6s %6s %6s %s\n", + timestamp, modes[backup->backup_mode], backup->tli, parent_tli, duration, + total_data_bytes_str, read_data_bytes_str, read_arclog_bytes_str, + read_srvlog_bytes_str, write_bytes_str, status2str(backup->status)); } }