X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=inline;f=bacula%2Fsrc%2Fcats%2Fsql_cmds.c;h=476ba63d75821beeba237b79a5b6dfc316aad9b4;hb=9e5f1a99dfc8c786ca9f0e515a830ca64010020b;hp=26b97440512f7276ecead3fd81ba524afd24e16e;hpb=59b4943d6c828fedb6172acd5bcc97055b2fd37a;p=bacula%2Fbacula diff --git a/bacula/src/cats/sql_cmds.c b/bacula/src/cats/sql_cmds.c index 26b9744051..476ba63d75 100644 --- a/bacula/src/cats/sql_cmds.c +++ b/bacula/src/cats/sql_cmds.c @@ -44,6 +44,31 @@ #include "bacula.h" #include "cats.h" +const char *cleanup_created_job = + "UPDATE Job SET JobStatus='f', StartTime=SchedTime, EndTime=SchedTime " + "WHERE JobStatus = 'C'"; +const char *cleanup_running_job = + "UPDATE Job SET JobStatus='f', EndTime=StartTime WHERE JobStatus = 'R'"; + +/* For sql_update.c db_update_stats */ +const char *fill_jobhisto = + "INSERT INTO JobHisto (" + "JobId, Job, Name, Type, Level, ClientId, JobStatus, " + "SchedTime, StartTime, EndTime, RealEndTime, JobTDate, " + "VolSessionId, VolSessionTime, JobFiles, JobBytes, ReadBytes, " + "JobErrors, JobMissingFiles, PoolId, FileSetId, PriorJobId, " + "PurgedFiles, HasBase ) " + "SELECT " + "JobId, Job, Name, Type, Level, ClientId, JobStatus, " + "SchedTime, StartTime, EndTime, RealEndTime, JobTDate, " + "VolSessionId, VolSessionTime, JobFiles, JobBytes, ReadBytes, " + "JobErrors, JobMissingFiles, PoolId, FileSetId, PriorJobId, " + "PurgedFiles, HasBase " + "FROM Job " + "WHERE JobStatus IN ('T','W','f','A','E') " + "AND JobId NOT IN (SELECT JobId FROM JobHisto) " + "AND JobTDate < %s "; + /* For ua_update.c */ const char *list_pool = "SELECT * FROM Pool WHERE PoolId=%s"; @@ -55,7 +80,7 @@ const char *client_backups = " WHERE Client.Name='%s'" " AND FileSet='%s'" " AND Client.ClientId=Job.ClientId" - " AND JobStatus='T' AND Type='B'" + " AND JobStatus IN ('T','W') AND Type='B'" " AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId" " AND Job.FileSetId=FileSet.FileSetId" " ORDER BY Job.StartTime"; @@ -119,10 +144,10 @@ const char *select_backup_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " "WHERE (Job.JobTDate<%s AND ((DelCandidates.JobFiles=0) OR " - "(DelCandidates.JobStatus!='T'))) OR " + "(DelCandidates.JobStatus NOT IN ('T','W')))) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " - "AND Job.Level='F' AND Job.JobStatus='T' AND Job.Type IN ('B','M') " + "AND Job.Level='F' AND Job.JobStatus IN ('T','W') AND Job.Type IN ('B','M') " "AND Job.FileSetId=DelCandidates.FileSetId)"; /* Select Jobs from the DelCandidates table that have a @@ -132,10 +157,10 @@ const char *select_backup_del = const char *select_verify_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " - "AND Job.Type='V' AND Job.Level='V' AND Job.JobStatus='T' " + "AND Job.Type='V' AND Job.Level='V' AND Job.JobStatus IN ('T','W') " "AND Job.FileSetId=DelCandidates.FileSetId)"; @@ -145,7 +170,7 @@ const char *select_verify_del = const char *select_restore_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " "AND Job.Type='R')"; @@ -156,7 +181,7 @@ const char *select_restore_del = const char *select_admin_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " "AND Job.Type='D')"; @@ -168,7 +193,7 @@ const char *select_admin_del = const char *select_migrate_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " "AND Job.Type='g')"; @@ -180,7 +205,7 @@ const char *select_migrate_del = const char *select_copy_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " "AND Job.Type='C')"; @@ -192,10 +217,10 @@ const char *select_backup_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " "WHERE (Job.JobId=DelCandidates.JobId AND ((DelCandidates.JobFiles=0) OR " - "(DelCandidates.JobStatus!='T'))) OR " + "(DelCandidates.JobStatus NOT IN ('T','W')))) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " - "AND Job.Level='F' AND Job.JobStatus='T' AND Job.Type IN ('B','M') " + "AND Job.Level='F' AND Job.JobStatus IN ('T','W') AND Job.Type IN ('B','M') " "AND Job.FileSetId=DelCandidates.FileSetId)"; /* Select Jobs from the DelCandidates table that have a @@ -205,10 +230,10 @@ const char *select_backup_del = const char *select_verify_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " - "AND Job.Type='V' AND Job.Level='V' AND Job.JobStatus='T' " + "AND Job.Type='V' AND Job.Level='V' AND Job.JobStatus IN ('T','W') " "AND Job.FileSetId=DelCandidates.FileSetId)"; @@ -218,7 +243,7 @@ const char *select_verify_del = const char *select_restore_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " "AND Job.Type='R')"; @@ -229,7 +254,7 @@ const char *select_restore_del = const char *select_admin_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " "AND Job.Type='D')"; @@ -241,7 +266,7 @@ const char *select_admin_del = const char *select_migrate_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " "AND Job.Type='g')"; @@ -249,7 +274,7 @@ const char *select_migrate_del = const char *select_copy_del = "SELECT DISTINCT DelCandidates.JobId,DelCandidates.PurgedFiles " "FROM Job,DelCandidates " - "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus!='T') OR " + "WHERE (Job.JobId=DelCandidates.JobId AND DelCandidates.JobStatus NOT IN ('T','W')) OR " "(Job.JobTDate>%s " "AND Job.ClientId=%s " "AND Job.Type='C')"; @@ -265,7 +290,7 @@ const char *uar_count_files = const char *uar_list_jobs = "SELECT JobId,Client.Name as Client,StartTime,Level as " "JobLevel,JobFiles,JobBytes " - "FROM Client,Job WHERE Client.ClientId=Job.ClientId AND JobStatus='T' " + "FROM Client,Job WHERE Client.ClientId=Job.ClientId AND JobStatus IN ('T','W') " "AND Type='B' ORDER BY StartTime DESC LIMIT 20"; /* @@ -286,7 +311,7 @@ const char *uar_last_full = "FROM Client,Job,JobMedia,Media,FileSet WHERE Client.ClientId=%s " "AND Job.ClientId=%s " "AND Job.StartTime<'%s' " - "AND Level='F' AND JobStatus='T' " + "AND Level='F' AND JobStatus IN ('T','W') AND Type='B' " "AND JobMedia.JobId=Job.JobId " "AND Media.Enabled=1 " "AND JobMedia.MediaId=Media.MediaId " @@ -297,14 +322,13 @@ const char *uar_last_full = const char *uar_full = "INSERT INTO temp SELECT Job.JobId,Job.JobTDate," - "Job.ClientId,Job.Level,Job.JobFiles,Job.JobBytes," - "StartTime,VolumeName,JobMedia.StartFile,VolSessionId,VolSessionTime " - "FROM temp1,Job,JobMedia,Media " - "WHERE temp1.JobId=Job.JobId " - "AND Level='F' AND JobStatus='T' " - "AND Media.Enabled=1 " - "AND JobMedia.JobId=Job.JobId " - "AND JobMedia.MediaId=Media.MediaId"; + "Job.ClientId,Job.Level,Job.JobFiles,Job.JobBytes," + "StartTime,VolumeName,JobMedia.StartFile,VolSessionId,VolSessionTime " + "FROM temp1,Job,JobMedia,Media WHERE temp1.JobId=Job.JobId " + "AND Level='F' AND JobStatus IN ('T','W') AND Type='B' " + "AND Media.Enabled=1 " + "AND JobMedia.JobId=Job.JobId " + "AND JobMedia.MediaId=Media.MediaId"; const char *uar_dif = "INSERT INTO temp SELECT Job.JobId,Job.JobTDate,Job.ClientId," @@ -317,7 +341,7 @@ const char *uar_dif = "AND JobMedia.JobId=Job.JobId " "AND Media.Enabled=1 " "AND JobMedia.MediaId=Media.MediaId " - "AND Job.Level='D' AND JobStatus='T' " + "AND Job.Level='D' AND JobStatus IN ('T','W') AND Type='B' " "AND Job.FileSetId=FileSet.FileSetId " "AND FileSet.FileSet='%s' " "%s" @@ -334,7 +358,7 @@ const char *uar_inc = "AND Media.Enabled=1 " "AND JobMedia.JobId=Job.JobId " "AND JobMedia.MediaId=Media.MediaId " - "AND Job.Level='I' AND JobStatus='T' " + "AND Job.Level='I' AND JobStatus IN ('T','W') AND Type='B' " "AND Job.FileSetId=FileSet.FileSetId " "AND FileSet.FileSet='%s' " "%s"; @@ -380,6 +404,7 @@ const char *uar_jobid_fileindex = "AND Job.ClientId=Client.ClientId " "AND Path.PathId=File.PathId " "AND Filename.FilenameId=File.FilenameId " + "AND JobStatus IN ('T','W') AND Type='B' " "ORDER BY Job.StartTime DESC LIMIT 1"; const char *uar_jobids_fileindex = @@ -462,7 +487,7 @@ const char *uar_file[4] = { "StartTime,Type as JobType,JobStatus,JobFiles,JobBytes " "FROM Client,Job,File,Filename,Path WHERE Client.Name='%s' " "AND Client.ClientId=Job.ClientId " - "AND Job.JobId=File.JobId " + "AND Job.JobId=File.JobId AND File.FileIndex > 0 " "AND Path.PathId=File.PathId AND Filename.FilenameId=File.FilenameId " "AND Filename.Name='%s' ORDER BY StartTime DESC LIMIT 20", /* Postgresql */ @@ -471,7 +496,7 @@ const char *uar_file[4] = { "StartTime,Type as JobType,JobStatus,JobFiles,JobBytes " "FROM Client,Job,File,Filename,Path WHERE Client.Name='%s' " "AND Client.ClientId=Job.ClientId " - "AND Job.JobId=File.JobId " + "AND Job.JobId=File.JobId AND File.FileIndex > 0 " "AND Path.PathId=File.PathId AND Filename.FilenameId=File.FilenameId " "AND Filename.Name='%s' ORDER BY StartTime DESC LIMIT 20", /* SQLite */ @@ -480,7 +505,7 @@ const char *uar_file[4] = { "StartTime,Type as JobType,JobStatus,JobFiles,JobBytes " "FROM Client,Job,File,Filename,Path WHERE Client.Name='%s' " "AND Client.ClientId=Job.ClientId " - "AND Job.JobId=File.JobId " + "AND Job.JobId=File.JobId AND File.FileIndex > 0 " "AND Path.PathId=File.PathId AND Filename.FilenameId=File.FilenameId " "AND Filename.Name='%s' ORDER BY StartTime DESC LIMIT 20", /* SQLite3 */ @@ -489,7 +514,7 @@ const char *uar_file[4] = { "StartTime,Type as JobType,JobStatus,JobFiles,JobBytes " "FROM Client,Job,File,Filename,Path WHERE Client.Name='%s' " "AND Client.ClientId=Job.ClientId " - "AND Job.JobId=File.JobId " + "AND Job.JobId=File.JobId AND File.FileIndex > 0 " "AND Path.PathId=File.PathId AND Filename.FilenameId=File.FilenameId " "AND Filename.Name='%s' ORDER BY StartTime DESC LIMIT 20"};