Skip to content

Commit

Permalink
Merge pull request #1198 from HediBenFraj/dev/HediBenFraj/master/avoi…
Browse files Browse the repository at this point in the history
…d-negative-duration-values

SQL: queries: fix sql queries to handle negative job duration value
  • Loading branch information
joergsteffens committed Jul 7, 2022
2 parents 5a0e6e2 + 430aa62 commit 8888eb1
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 48 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -64,6 +64,7 @@ and since Bareos version 20 this project adheres to [Semantic Versioning](https:
- Fix director connects to client while `Connection From Director To Client` is disabled. [PR #1099]
- dir: miscalculation when using `always incremental keep number` [PR #1159]
- Windows Installer: made 'Director PotsgreSQL Backend Support' checked by default if 'Full PostgreSQL' installation selected. [PR #1185]
- SQL: queries: fix sql queries to handle negative job duration value [PR 1198]

### Changed
- contrib: rename Python modules to satisfy PEP8 [PR #768]
Expand Down
6 changes: 3 additions & 3 deletions core/src/cats/dml/0006_list_jobs
Expand Up @@ -7,9 +7,9 @@
SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client,
Job.StartTime,
CASE
WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime
ELSE CURRENT_TIMESTAMP(0) - Job.starttime
END as Duration,
WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime
ELSE CURRENT_TIMESTAMP(0) - Job.starttime
END as Duration,
Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus
FROM Job
LEFT JOIN Client ON Client.ClientId=Job.ClientId
Expand Down
6 changes: 3 additions & 3 deletions core/src/cats/dml/0007_list_jobs_long
Expand Up @@ -9,9 +9,9 @@ SELECT DISTINCT Job.JobId, Job.Job, Job.Name, Job.PurgedFiles, Job.Type, Job.Lev
Job.ClientId, Client.Name as Client, Job.JobStatus, Job.SchedTime, Job.StartTime,
Job.EndTime,Job.RealEndtime,
CASE
WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime
ELSE CURRENT_TIMESTAMP(0) - Job.starttime
END as Duration,
WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime
ELSE CURRENT_TIMESTAMP(0) - Job.starttime
END as Duration,
Job.JobTDate, Job.VolSessionId, Job.VolSessionTime,
Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId,
Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet
Expand Down
6 changes: 3 additions & 3 deletions core/src/cats/dml/0009_list_jobs_last
Expand Up @@ -5,9 +5,9 @@
SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client,
Job.StartTime,
CASE
WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime
ELSE CURRENT_TIMESTAMP(0) - Job.starttime
END as Duration,
WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime
ELSE CURRENT_TIMESTAMP(0) - Job.starttime
END as Duration,
Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus
FROM Job
LEFT JOIN Client ON Client.ClientId=Job.ClientId
Expand Down
6 changes: 3 additions & 3 deletions core/src/cats/dml/0010_list_jobs_long_last
Expand Up @@ -6,9 +6,9 @@ SELECT DISTINCT Job.JobId, Job.Job, Job.Name, Job.PurgedFiles, Job.Type, Job.Lev
Job.ClientId, Client.Name as Client, Job.JobStatus, Job.SchedTime, Job.StartTime,
Job.EndTime, Job.RealEndTime,
CASE
WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime
ELSE CURRENT_TIMESTAMP(0) - Job.starttime
END as Duration,
WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime
ELSE CURRENT_TIMESTAMP(0) - Job.starttime
END as Duration,
Job.JobTDate, Job.VolSessionId, Job.VolSessionTime,
Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId,
Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet
Expand Down
24 changes: 12 additions & 12 deletions core/src/cats/mysql_queries.inc
Expand Up @@ -53,9 +53,9 @@ const char *BareosDbMysql::query_definitions[] = {
"SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client, "
"Job.StartTime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
Expand All @@ -72,9 +72,9 @@ const char *BareosDbMysql::query_definitions[] = {
"Job.ClientId, Client.Name as Client, Job.JobStatus, Job.SchedTime, Job.StartTime, "
"Job.EndTime,Job.RealEndtime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.JobTDate, Job.VolSessionId, Job.VolSessionTime, "
"Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId, "
"Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet "
Expand Down Expand Up @@ -105,9 +105,9 @@ const char *BareosDbMysql::query_definitions[] = {
"SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client, "
"Job.StartTime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
Expand Down Expand Up @@ -135,9 +135,9 @@ const char *BareosDbMysql::query_definitions[] = {
"Job.ClientId, Client.Name as Client, Job.JobStatus, Job.SchedTime, Job.StartTime, "
"Job.EndTime, Job.RealEndTime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.JobTDate, Job.VolSessionId, Job.VolSessionTime, "
"Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId, "
"Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet "
Expand Down
24 changes: 12 additions & 12 deletions core/src/cats/postgresql_queries.inc
Expand Up @@ -53,9 +53,9 @@ const char *BareosDbPostgresql::query_definitions[] = {
"SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client, "
"Job.StartTime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
Expand All @@ -72,9 +72,9 @@ const char *BareosDbPostgresql::query_definitions[] = {
"Job.ClientId, Client.Name as Client, Job.JobStatus, Job.SchedTime, Job.StartTime, "
"Job.EndTime,Job.RealEndtime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.JobTDate, Job.VolSessionId, Job.VolSessionTime, "
"Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId, "
"Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet "
Expand Down Expand Up @@ -105,9 +105,9 @@ const char *BareosDbPostgresql::query_definitions[] = {
"SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client, "
"Job.StartTime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
Expand Down Expand Up @@ -135,9 +135,9 @@ const char *BareosDbPostgresql::query_definitions[] = {
"Job.ClientId, Client.Name as Client, Job.JobStatus, Job.SchedTime, Job.StartTime, "
"Job.EndTime, Job.RealEndTime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.JobTDate, Job.VolSessionId, Job.VolSessionTime, "
"Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId, "
"Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet "
Expand Down
24 changes: 12 additions & 12 deletions core/src/cats/sqlite_queries.inc
Expand Up @@ -53,9 +53,9 @@ const char *BareosDbSqlite::query_definitions[] = {
"SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client, "
"Job.StartTime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
Expand All @@ -72,9 +72,9 @@ const char *BareosDbSqlite::query_definitions[] = {
"Job.ClientId, Client.Name as Client, Job.JobStatus, Job.SchedTime, Job.StartTime, "
"Job.EndTime,Job.RealEndtime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.JobTDate, Job.VolSessionId, Job.VolSessionTime, "
"Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId, "
"Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet "
Expand Down Expand Up @@ -105,9 +105,9 @@ const char *BareosDbSqlite::query_definitions[] = {
"SELECT DISTINCT Job.JobId,Job.Name, Client.Name as Client, "
"Job.StartTime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.Type,Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus "
"FROM Job "
"LEFT JOIN Client ON Client.ClientId=Job.ClientId "
Expand Down Expand Up @@ -135,9 +135,9 @@ const char *BareosDbSqlite::query_definitions[] = {
"Job.ClientId, Client.Name as Client, Job.JobStatus, Job.SchedTime, Job.StartTime, "
"Job.EndTime, Job.RealEndTime, "
"CASE "
"WHEN Job.endtime IS NOT NULL THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"WHEN Job.endtime IS NOT NULL AND Job.endtime >= Job.starttime THEN Job.endtime - Job.starttime "
"ELSE CURRENT_TIMESTAMP(0) - Job.starttime "
"END as Duration, "
"Job.JobTDate, Job.VolSessionId, Job.VolSessionTime, "
"Job.JobFiles, Job.JobBytes, Job.JobErrors, Job.JobMissingFiles, Job.PoolId, "
"Pool.Name as PoolName, Job.PriorJobId, Job.FileSetId, FileSet.FileSet "
Expand Down

0 comments on commit 8888eb1

Please sign in to comment.