/* For ua_cmds.c */
const char *list_pool = "SELECT * FROM Pool WHERE PoolId=%u";
+/* For ua_dotcmds.c */
+const char *client_backups =
+"SELECT DISTINCT Job.JobId,Client.Name as Client,Level,StartTime,"
+"JobFiles,JobBytes,VolumeName"
+" FROM Client,Job,JobMedia,Media"
+" WHERE Client.Name='%s'"
+" AND Client.ClientId=Job.ClientId"
+" AND JobStatus='T'"
+" AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId"
+" ORDER BY Job.StartTime";
+
+
/* ====== ua_prune.c */
const char *cnt_File = "SELECT count(*) FROM File WHERE JobId=%u";
* (i.e. no files, ...) for deletion.
*/
const char *select_backup_del =
- "SELECT DelCandidates.JobId "
+ "SELECT DISTINCT DelCandidates.JobId "
"FROM Job,DelCandidates "
- "WHERE (JobTDate<%s AND ((DelCandidates.JobFiles=0) OR "
+ "WHERE (Job.JobTDate<%s AND ((DelCandidates.JobFiles=0) OR "
"(DelCandidates.JobStatus!='T'))) OR "
"(Job.JobTDate>%s "
"AND Job.ClientId=%u "
"AND Job.Type='B' "
"AND Job.Level='F' "
"AND Job.JobStatus='T' "
- "AND Job.FileSetId=DelCandidates.FileSetId) "
- "GROUP BY DelCandidates.JobId";
+ "AND Job.FileSetId=DelCandidates.FileSetId)";
/* Select Jobs from the DelCandidates table that have a
* more recent InitCatalog -- i.e. are not the only InitCatalog
* This is the list of Jobs to delete for a Verify Job.
*/
const char *select_verify_del =
- "SELECT DelCandidates.JobId "
+ "SELECT DISTINCT DelCandidates.JobId "
"FROM Job,DelCandidates "
- "WHERE Job.JobTDate>%s "
+ "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus!='T') OR "
+ "(Job.JobTDate>%s "
"AND Job.ClientId=%u "
"AND Job.Type='V' "
"AND Job.Level='V' "
"AND Job.JobStatus='T' "
- "AND Job.FileSetId=DelCandidates.FileSetId "
- "GROUP BY DelCandidates.JobId";
+ "AND Job.FileSetId=DelCandidates.FileSetId)";
/* Select Jobs from the DelCandidates table.
* This is the list of Jobs to delete for a Restore Job.
*/
const char *select_restore_del =
- "SELECT DelCandidates.JobId "
+ "SELECT DISTINCT DelCandidates.JobId "
"FROM Job,DelCandidates "
- "WHERE Job.JobTDate>%s "
+ "WHERE (Job.JobTdate<%s AND delCandidates.JobStatus!='T') OR "
+ "(Job.JobTDate>%s "
"AND Job.ClientId=%u "
- "AND Job.Type='R' "
- "GROUP BY DelCandidates.JobId";
+ "AND Job.Type='R')";
+/* Select Jobs from the DelCandidates table.
+ * This is the list of Jobs to delete for an Admin Job.
+ */
+const char *select_admin_del =
+ "SELECT DISTINCT DelCandidates.JobId "
+ "FROM Job,DelCandidates "
+ "WHERE (Job.JobTdate<%s AND delCandidates.JobStatus!='T') OR "
+ "(Job.JobTDate>%s "
+ "AND Job.ClientId=%u "
+ "AND Job.Type='D')";
/* ======= ua_restore.c */
+const char *uar_count_files =
+ "SELECT JobFiles FROM Job WHERE JobId=%u";
/* List last 20 Jobs */
const char *uar_list_jobs =
"FROM Client,Job,File,Filename,Path WHERE Client.ClientId=Job.ClientId "
"AND JobStatus='T' AND Job.JobId=File.JobId "
"AND Path.PathId=File.PathId AND Filename.FilenameId=File.FilenameId "
- "AND Filename.Name='%s' LIMIT 20";
+ "AND Filename.Name='%s' ORDER BY StartTime DESC LIMIT 20";
#else
/* List Jobs where a particular file is saved */
const char *uar_file =
"FROM Client,Job,File,Filename,Path WHERE Client.ClientId=Job.ClientId "
"AND JobStatus='T' AND Job.JobId=File.JobId "
"AND Path.PathId=File.PathId AND Filename.FilenameId=File.FilenameId "
- "AND Filename.Name='%s' LIMIT 20";
+ "AND Filename.Name='%s' ORDER BY StartTime DESC LIMIT 20";
#endif
"ORDER BY StartTime ASC";
-const char *uar_sel_jobid_temp = "SELECT JobId FROM temp";
+const char *uar_sel_jobid_temp = "SELECT JobId FROM temp ORDER BY StartTime ASC";
const char *uar_sel_all_temp1 = "SELECT * FROM temp1";
"AND Path.Path='%s' "
"AND Filename.Name='%s' "
"AND Client.Name='%s' "
+ "AND Job.ClientId=Client.ClientId "
"AND Path.PathId=File.PathId "
"AND Filename.FilenameId=File.FilenameId "
"ORDER BY Job.StartTime DESC LIMIT 1";