]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/sql_cmds.c
Correct copy/paste typos
[bacula/bacula] / bacula / src / cats / sql_cmds.c
index 6ee166d7c70fb907814c93c216859ae079230dfc..d48d926d708689a128e87e9ce7292f0853e8fde7 100644 (file)
@@ -627,6 +627,37 @@ const char *select_recent_version[5] = {
       "AND j1.JobId = f1.JobId"
 };
 
+const char *create_temp_accurate_jobids_default =
+   "CREATE TEMPORARY TABLE btemp3%s AS "
+   "SELECT JobId, StartTime, EndTime, JobTDate, PurgedFiles "
+   "FROM Job JOIN FileSet USING (FileSetId) "
+   "WHERE ClientId = %s "
+   "AND Level='F' AND JobStatus IN ('T','W') AND Type='B' "
+   "AND StartTime<'%s' "
+   "AND FileSet.FileSet=(SELECT FileSet FROM FileSet WHERE FileSetId = %s) "
+   "ORDER BY Job.JobTDate DESC LIMIT 1";
+
+const char *create_temp_accurate_jobids[5] = {
+   /* Mysql */
+   create_temp_accurate_jobids_default,
+   /* Postgresql */
+   create_temp_accurate_jobids_default,
+   /* SQLite */
+   create_temp_accurate_jobids_default,
+   /* SQLite3 */
+   create_temp_accurate_jobids_default,
+   /* Ingres */
+   "DECLARE GLOBAL TEMPORARY TABLE btemp3%s AS "
+   "SELECT JobId, StartTime, EndTime, JobTDate, PurgedFiles "
+   "FROM Job JOIN FileSet USING (FileSetId) "
+   "WHERE ClientId = %s "
+   "AND Level='F' AND JobStatus IN ('T','W') AND Type='B' "
+   "AND StartTime<'%s' "
+   "AND FileSet.FileSet=(SELECT FileSet FROM FileSet WHERE FileSetId = %s) "
+   "ORDER BY Job.JobTDate DESC FETCH FIRST 1 ROW ONLY "
+   "ON COMMIT PRESERVE ROWS WITH NORECOVERY"
+};
+
 const char *create_temp_basefile[5] = {
    /* Mysql */
    "CREATE TEMPORARY TABLE basefile%lld ("
@@ -697,7 +728,7 @@ const char *create_temp_new_basefile[5] = {
    "JOIN Filename ON (Filename.FilenameId = Temp.FilenameId) "
    "JOIN Path ON (Path.PathId = Temp.PathId) "
    "WHERE Temp.FileIndex > 0 "
-   "ON COMMIT PRESERVE ROWS WITH NORECOVERY",
+   "ON COMMIT PRESERVE ROWS WITH NORECOVERY"
 };
 
 /* ====== ua_prune.c */
@@ -746,42 +777,44 @@ const char *create_deltabs[5] = {
 
 /* Select the first available Copy Job that must be upgraded to a Backup job when the original backup job is expired. */
 
+const char *uap_upgrade_copies_oldest_job_default = 
+"CREATE TEMPORARY TABLE cpy_tmp AS "
+       "SELECT MIN(JobId) AS JobId FROM Job "     /* Choose the oldest job */
+        "WHERE Type='%c' "                        /* JT_JOB_COPY */
+          "AND ( PriorJobId IN (%s) "             /* JobId selection */
+              "OR "
+               " PriorJobId IN ( "
+                  "SELECT PriorJobId "
+                    "FROM Job "
+                   "WHERE JobId IN (%s) "         /* JobId selection */
+                    " AND Type='B' "
+                 ") "
+              ") "
+          "GROUP BY PriorJobId ";           /* one result per copy */
+
 const char *uap_upgrade_copies_oldest_job[5] = {
    /* Mysql */
-   "CREATE TEMPORARY TABLE cpy_tmp AS "
-   "SELECT MIN(JobId) AS JobId FROM Job "
-   "WHERE Type='%c' AND (PriorJobId IN (%s) OR PriorJobId IN ( "
-   "SELECT PriorJobId FROM Job "
-   "WHERE JobId IN (%s) AND Type='B' ))"
-   "GROUP BY PriorJobId",
+   uap_upgrade_copies_oldest_job_default,
    /* Postgresql */
-   "CREATE TEMPORARY TABLE cpy_tmp AS "
-   "SELECT MIN(JobId) AS JobId FROM Job "
-   "WHERE Type='%c' AND (PriorJobId IN (%s) OR PriorJobId IN ( "
-   "SELECT PriorJobId FROM Job "
-   "WHERE JobId IN (%s) AND Type='B' ))"
-   "GROUP BY PriorJobId",
+   uap_upgrade_copies_oldest_job_default,
    /* SQLite */
-   "CREATE TEMPORARY TABLE cpy_tmp AS "
-   "SELECT MIN(JobId) AS JobId FROM Job "
-   "WHERE Type='%c' AND (PriorJobId IN (%s) OR PriorJobId IN ( "
-   "SELECT PriorJobId FROM Job "
-   "WHERE JobId IN (%s) AND Type='B' ))"
-   "GROUP BY PriorJobId",
+   uap_upgrade_copies_oldest_job_default,
    /* SQLite3 */
-   "CREATE TEMPORARY TABLE cpy_tmp AS "
-   "SELECT MIN(JobId) AS JobId FROM Job "
-   "WHERE Type='%c' AND (PriorJobId IN (%s) OR PriorJobId IN ( "
-   "SELECT PriorJobId FROM Job "
-   "WHERE JobId IN (%s) AND Type='B' ))"
-   "GROUP BY PriorJobId",
+   uap_upgrade_copies_oldest_job_default,
    /* Ingres */
    "DECLARE GLOBAL TEMPORARY TABLE cpy_tmp AS "
-   "SELECT MIN(JobId) AS JobId FROM Job "
-   "WHERE Type='%c' AND (PriorJobId IN (%s) OR PriorJobId IN ( "
-   "SELECT PriorJobId FROM Job "
-   "WHERE JobId IN (%s) AND Type='B' ))"
-   "GROUP BY PriorJobId "
+       "SELECT MIN(JobId) AS JobId FROM Job "     /* Choose the oldest job */
+        "WHERE Type='%c' "                        /* JT_JOB_COPY */
+          "AND ( PriorJobId IN (%s) "             /* JobId selection */
+              "OR "
+               " PriorJobId IN ( "
+                  "SELECT PriorJobId "
+                    "FROM Job "
+                   "WHERE JobId IN (%s) "         /* JobId selection */
+                    " AND Type='B' "
+                 ") "
+              ") "
+          "GROUP BY PriorJobId "           /* one result per copy */
    "ON COMMIT PRESERVE ROWS WITH NORECOVERY"
 };