"SELECT JobFiles FROM Job WHERE JobId=%s";
/* List last 20 Jobs */
-#if HAVE_INGRES
-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 IN ('T','W') "
- "AND Type='B' ORDER BY StartTime DESC FETCH FIRST 20 ROWS ONLY";
-#else
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 IN ('T','W') "
"AND Type='B' ORDER BY StartTime DESC LIMIT 20";
-#endif
const char *uar_print_jobs =
"SELECT DISTINCT JobId,Level,JobFiles,JobBytes,StartTime,VolumeName"
const char *uar_del_temp = "DROP TABLE temp";
const char *uar_del_temp1 = "DROP TABLE temp1";
-#if HAVE_INGRES
-const char *uar_last_full =
- "INSERT INTO temp1 SELECT Job.JobId,JobTdate "
- "FROM Client,Job,JobMedia,Media,FileSet WHERE Client.ClientId=%s "
- "AND Job.ClientId=%s "
- "AND Job.StartTime < '%s' "
- "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 "
- "AND Job.FileSetId=FileSet.FileSetId "
- "AND FileSet.FileSet='%s' "
- "%s"
- "ORDER BY Job.JobTDate DESC FETCH FIRST 1 ROW ONLY";
-#else
const char *uar_last_full =
"INSERT INTO temp1 SELECT Job.JobId,JobTdate "
"FROM Client,Job,JobMedia,Media,FileSet WHERE Client.ClientId=%s "
"AND FileSet.FileSet='%s' "
"%s"
"ORDER BY Job.JobTDate DESC LIMIT 1";
-#endif
const char *uar_full =
"INSERT INTO temp SELECT Job.JobId,Job.JobTDate,"
"AND JobMedia.JobId=Job.JobId "
"AND JobMedia.MediaId=Media.MediaId";
-#if HAVE_INGRES
-const char *uar_dif =
- "INSERT INTO temp SELECT Job.JobId,Job.JobTDate,Job.ClientId,"
- "Job.Level,Job.JobFiles,Job.JobBytes,"
- "Job.StartTime,Media.VolumeName,JobMedia.StartFile,"
- "Job.VolSessionId,Job.VolSessionTime "
- "FROM Job,JobMedia,Media,FileSet "
- "WHERE Job.JobTDate>%s AND Job.StartTime<'%s' "
- "AND Job.ClientId=%s "
- "AND JobMedia.JobId=Job.JobId "
- "AND Media.Enabled=1 "
- "AND JobMedia.MediaId=Media.MediaId "
- "AND Job.Level='D' AND JobStatus IN ('T','W') AND Type='B' "
- "AND Job.FileSetId=FileSet.FileSetId "
- "AND FileSet.FileSet='%s' "
- "%s"
- "ORDER BY Job.JobTDate DESC FETCH FIRST 1 ROW ONLY";
-#else
const char *uar_dif =
"INSERT INTO temp SELECT Job.JobId,Job.JobTDate,Job.ClientId,"
"Job.Level,Job.JobFiles,Job.JobBytes,"
"AND FileSet.FileSet='%s' "
"%s"
"ORDER BY Job.JobTDate DESC LIMIT 1";
-#endif
const char *uar_inc =
"INSERT INTO temp SELECT Job.JobId,Job.JobTDate,Job.ClientId,"
* Find JobId, FileIndex for a given path/file and date
* for use when inserting individual files into the tree.
*/
-#if HAVE_INGRES
-const char *uar_jobid_fileindex =
- "SELECT Job.JobId,File.FileIndex FROM Job,File,Path,Filename,Client "
- "WHERE Job.JobId=File.JobId "
- "AND Job.StartTime<='%s' "
- "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 "
- "AND JobStatus IN ('T','W') AND Type='B' "
- "ORDER BY Job.StartTime DESC FETCH FIRST 1 ROW ONLY";
-#else
const char *uar_jobid_fileindex =
"SELECT Job.JobId,File.FileIndex FROM Job,File,Path,Filename,Client "
"WHERE Job.JobId=File.JobId "
"AND Filename.FilenameId=File.FilenameId "
"AND JobStatus IN ('T','W') AND Type='B' "
"ORDER BY Job.StartTime DESC LIMIT 1";
-#endif
-#if HAVE_INGRES
-const char *uar_jobids_fileindex =
- "SELECT Job.JobId,File.FileIndex FROM Job,File,Path,Filename,Client "
- "WHERE Job.JobId IN (%s) "
- "AND Job.JobId=File.JobId "
- "AND Job.StartTime<='%s' "
- "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 FETCH FIRST 1 ROW ONLY";
-#else
const char *uar_jobids_fileindex =
"SELECT Job.JobId,File.FileIndex FROM Job,File,Path,Filename,Client "
"WHERE Job.JobId IN (%s) "
"AND Path.PathId=File.PathId "
"AND Filename.FilenameId=File.FilenameId "
"ORDER BY Job.StartTime DESC LIMIT 1";
-#endif
/* Query to get list of files from table -- presuably built by an external program */
const char *uar_jobid_fileindex_from_table =
/* If no Id given, we must find corresponding job */
if (jr->JobId == 0) {
/* Differential is since last Full backup */
-#if HAVE_INGRES
- Mmsg(mdb->cmd,
-"SELECT StartTime FROM Job WHERE JobStatus IN ('T','W') AND Type='%c' AND "
-"Level='%c' AND Name='%s' AND ClientId=%s AND FileSetId=%s "
-"ORDER BY StartTime DESC FETCH FIRST 1 ROW ONLY",
- jr->JobType, L_FULL, jr->Name,
- edit_int64(jr->ClientId, ed1), edit_int64(jr->FileSetId, ed2));
-#else
Mmsg(mdb->cmd,
"SELECT StartTime FROM Job WHERE JobStatus IN ('T','W') AND Type='%c' AND "
"Level='%c' AND Name='%s' AND ClientId=%s AND FileSetId=%s "
"ORDER BY StartTime DESC LIMIT 1",
jr->JobType, L_FULL, jr->Name,
edit_int64(jr->ClientId, ed1), edit_int64(jr->FileSetId, ed2));
-#endif
if (jr->JobLevel == L_DIFFERENTIAL) {
/* SQL cmd for Differential backup already edited above */
}
sql_free_result(mdb);
/* Now edit SQL command for Incremental Job */
-#if HAVE_INGRES
- Mmsg(mdb->cmd,
-"SELECT StartTime FROM Job WHERE JobStatus IN ('T','W') AND Type='%c' AND "
-"Level IN ('%c','%c','%c') AND Name='%s' AND ClientId=%s "
-"AND FileSetId=%s ORDER BY StartTime DESC FETCH FIRST 1 ROW ONLY",
- jr->JobType, L_INCREMENTAL, L_DIFFERENTIAL, L_FULL, jr->Name,
- edit_int64(jr->ClientId, ed1), edit_int64(jr->FileSetId, ed2));
-#else
Mmsg(mdb->cmd,
"SELECT StartTime FROM Job WHERE JobStatus IN ('T','W') AND Type='%c' AND "
"Level IN ('%c','%c','%c') AND Name='%s' AND ClientId=%s "
"AND FileSetId=%s ORDER BY StartTime DESC LIMIT 1",
jr->JobType, L_INCREMENTAL, L_DIFFERENTIAL, L_FULL, jr->Name,
edit_int64(jr->ClientId, ed1), edit_int64(jr->FileSetId, ed2));
-#endif
} else {
Mmsg1(mdb->errmsg, _("Unknown level=%d\n"), jr->JobLevel);
goto bail_out;
pm_strcpy(stime, "0000-00-00 00:00:00"); /* default */
-#if HAVE_INGRES
- Mmsg(mdb->cmd,
-"SELECT StartTime FROM Job WHERE JobStatus IN ('T','W') AND Type='%c' AND "
-"Level='%c' AND Name='%s' AND ClientId=%s AND FileSetId=%s "
-"ORDER BY StartTime DESC FETCH FIRST 1 ROW ONLY",
- jr->JobType, JobLevel, jr->Name,
- edit_int64(jr->ClientId, ed1), edit_int64(jr->FileSetId, ed2));
-#else
Mmsg(mdb->cmd,
"SELECT StartTime FROM Job WHERE JobStatus IN ('T','W') AND Type='%c' AND "
"Level='%c' AND Name='%s' AND ClientId=%s AND FileSetId=%s "
"ORDER BY StartTime DESC LIMIT 1",
jr->JobType, JobLevel, jr->Name,
edit_int64(jr->ClientId, ed1), edit_int64(jr->FileSetId, ed2));
-#endif
if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
Mmsg2(&mdb->errmsg, _("Query error for start time request: ERR=%s\nCMD=%s\n"),
sql_strerror(mdb), mdb->cmd);
db_lock(mdb);
/* Differential is since last Full backup */
-#if HAVE_INGRES
- Mmsg(mdb->cmd,
-"SELECT Level FROM Job WHERE JobStatus NOT IN ('T','W') AND "
-"Type='%c' AND Level IN ('%c','%c') AND Name='%s' AND ClientId=%s "
-"AND FileSetId=%s AND StartTime>'%s' "
-"ORDER BY StartTime DESC FETCH FIRST 1 ROW ONLY",
- jr->JobType, L_FULL, L_DIFFERENTIAL, jr->Name,
- edit_int64(jr->ClientId, ed1), edit_int64(jr->FileSetId, ed2),
- stime);
-#else
Mmsg(mdb->cmd,
"SELECT Level FROM Job WHERE JobStatus NOT IN ('T','W') AND "
"Type='%c' AND Level IN ('%c','%c') AND Name='%s' AND ClientId=%s "
jr->JobType, L_FULL, L_DIFFERENTIAL, jr->Name,
edit_int64(jr->ClientId, ed1), edit_int64(jr->FileSetId, ed2),
stime);
-#endif
if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
db_unlock(mdb);
return false;
db_lock(mdb);
Dmsg2(100, "JobLevel=%d JobType=%d\n", jr->JobLevel, jr->JobType);
if (jr->JobLevel == L_VERIFY_CATALOG) {
-#if HAVE_INGRES
- Mmsg(mdb->cmd,
-"SELECT JobId FROM Job WHERE Type='V' AND Level='%c' AND "
-" JobStatus IN ('T','W') AND Name='%s' AND "
-"ClientId=%s ORDER BY StartTime DESC FETCH FIRST 1 ROW ONLY",
- L_VERIFY_INIT, jr->Name,
- edit_int64(jr->ClientId, ed1));
-#else
Mmsg(mdb->cmd,
"SELECT JobId FROM Job WHERE Type='V' AND Level='%c' AND "
" JobStatus IN ('T','W') AND Name='%s' AND "
"ClientId=%s ORDER BY StartTime DESC LIMIT 1",
L_VERIFY_INIT, jr->Name,
edit_int64(jr->ClientId, ed1));
-#endif
} else if (jr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG ||
jr->JobLevel == L_VERIFY_DISK_TO_CATALOG ||
jr->JobType == JT_BACKUP) {
if (Name) {
-#if HAVE_INGRES
- Mmsg(mdb->cmd,
-"SELECT JobId FROM Job WHERE Type='B' AND JobStatus IN ('T','W') AND "
-"Name='%s' ORDER BY StartTime DESC FETCH FIRST 1 ROW ONLY", Name);
-#else
Mmsg(mdb->cmd,
"SELECT JobId FROM Job WHERE Type='B' AND JobStatus IN ('T','W') AND "
"Name='%s' ORDER BY StartTime DESC LIMIT 1", Name);
-#endif
} else {
-#if HAVE_INGRES
- Mmsg(mdb->cmd,
-"SELECT JobId FROM Job WHERE Type='B' AND JobStatus IN ('T','W') AND "
-"ClientId=%s ORDER BY StartTime DESC FETCH FIRST 1 ROW ONLY",
- edit_int64(jr->ClientId, ed1));
-#else
Mmsg(mdb->cmd,
"SELECT JobId FROM Job WHERE Type='B' AND JobStatus IN ('T','W') AND "
"ClientId=%s ORDER BY StartTime DESC LIMIT 1",
edit_int64(jr->ClientId, ed1));
-#endif
}
} else {
Mmsg1(&mdb->errmsg, _("Unknown Job level=%d\n"), jr->JobLevel);
db_lock(mdb);
if (item == -1) { /* find oldest volume */
/* Find oldest volume */
-#if HAVE_INGRES
- Mmsg(mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,"
- "VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
- "MediaType,VolStatus,PoolId,VolRetention,VolUseDuration,MaxVolJobs,"
- "MaxVolFiles,Recycle,Slot,FirstWritten,LastWritten,InChanger,"
- "EndFile,EndBlock,VolParts,LabelType,LabelDate,StorageId,"
- "Enabled,LocationId,RecycleCount,InitialWrite,"
- "ScratchPoolId,RecyclePoolId,VolReadTime,VolWriteTime,ActionOnPurge "
- "FROM Media WHERE PoolId=%s AND MediaType='%s' AND VolStatus IN ('Full',"
- "'Recycle','Purged','Used','Append') AND Enabled=1 "
- "ORDER BY LastWritten FETCH FIRST 1 ROW ONLY",
- edit_int64(mr->PoolId, ed1), mr->MediaType);
-#else
Mmsg(mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,"
"VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
"MediaType,VolStatus,PoolId,VolRetention,VolUseDuration,MaxVolJobs,"
"'Recycle','Purged','Used','Append') AND Enabled=1 "
"ORDER BY LastWritten LIMIT 1",
edit_int64(mr->PoolId, ed1), mr->MediaType);
-#endif
item = 1;
} else {
POOL_MEM changer(PM_FNAME);
} else {
order = "ORDER BY LastWritten IS NULL,LastWritten DESC,MediaId"; /* take most recently written */
}
-#if HAVE_INGRES
- Mmsg(mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,"
- "VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
- "MediaType,VolStatus,PoolId,VolRetention,VolUseDuration,MaxVolJobs,"
- "MaxVolFiles,Recycle,Slot,FirstWritten,LastWritten,InChanger,"
- "EndFile,EndBlock,VolParts,LabelType,LabelDate,StorageId,"
- "Enabled,LocationId,RecycleCount,InitialWrite,"
- "ScratchPoolId,RecyclePoolId,VolReadTime,VolWriteTime,ActionOnPurge "
- "FROM Media WHERE PoolId=%s AND MediaType='%s' AND Enabled=1 "
- "AND VolStatus='%s' "
- "%s "
- "%s FETCH FIRST %d ROWS ONLY",
- edit_int64(mr->PoolId, ed1), mr->MediaType,
- mr->VolStatus, changer.c_str(), order, item);
-#else
Mmsg(mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,"
"VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
"MediaType,VolStatus,PoolId,VolRetention,VolUseDuration,MaxVolJobs,"
"%s LIMIT %d",
edit_int64(mr->PoolId, ed1), mr->MediaType,
mr->VolStatus, changer.c_str(), order, item);
-#endif
}
Dmsg1(050, "fnextvol=%s\n", mdb->cmd);
if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
char ed1[50], ed2[50], ed3[50];
if (jcr->getJobLevel() == L_VERIFY_DISK_TO_CATALOG) {
-#if HAVE_INGRES
- Mmsg(mdb->cmd,
-"SELECT FileId, LStat, MD5 FROM File,Job WHERE "
-"File.JobId=Job.JobId AND File.PathId=%s AND "
-"File.FilenameId=%s AND Job.Type='B' AND Job.JobStatus IN ('T','W') AND "
-"ClientId=%s ORDER BY StartTime DESC FETCH FIRST 1 ROW ONLY",
- edit_int64(fdbr->PathId, ed1),
- edit_int64(fdbr->FilenameId, ed2),
- edit_int64(jr->ClientId,ed3));
-#else
Mmsg(mdb->cmd,
"SELECT FileId, LStat, MD5 FROM File,Job WHERE "
"File.JobId=Job.JobId AND File.PathId=%s AND "
edit_int64(fdbr->PathId, ed1),
edit_int64(fdbr->FilenameId, ed2),
edit_int64(jr->ClientId,ed3));
-#endif
} else {
Mmsg(mdb->cmd,
"SELECT FileId, LStat, MD5 FROM File WHERE File.JobId=%s AND File.PathId=%s AND "
"WHERE FileSetId=%s",
edit_int64(fsr->FileSetId, ed1));
} else { /* find by name */
-#if HAVE_INGRES
- Mmsg(mdb->cmd,
- "SELECT FileSetId,FileSet,MD5,CreateTime FROM FileSet "
- "WHERE FileSet='%s' ORDER BY CreateTime DESC FETCH FIRST 1 ROW ONLY", fsr->FileSet);
-#else
Mmsg(mdb->cmd,
"SELECT FileSetId,FileSet,MD5,CreateTime FROM FileSet "
"WHERE FileSet='%s' ORDER BY CreateTime DESC LIMIT 1", fsr->FileSet);
-#endif
}
if (QUERY_DB(jcr, mdb, mdb->cmd)) {
jobids->count = 0;
/* First, find the last good Full backup for this job/client/fileset */
-#if HAVE_INGRES
- Mmsg(query,
-"CREATE 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",
- edit_uint64(jcr->JobId, jobid),
- edit_uint64(jr->ClientId, clientid),
- date,
- edit_uint64(jr->FileSetId, filesetid));
-#else
Mmsg(query,
"CREATE TABLE btemp3%s AS "
"SELECT JobId, StartTime, EndTime, JobTDate, PurgedFiles "
edit_uint64(jr->ClientId, clientid),
date,
edit_uint64(jr->FileSetId, filesetid));
-#endif
if (!db_sql_query(mdb, query.c_str(), NULL, NULL)) {
goto bail_out;
if (jr->JobLevel == L_INCREMENTAL || jr->JobLevel == L_VIRTUAL_FULL) {
/* Now, find the last differential backup after the last full */
-#if HAVE_INGRES
- Mmsg(query,
-"INSERT INTO btemp3%s (JobId, StartTime, EndTime, JobTDate, PurgedFiles) "
- "SELECT JobId, StartTime, EndTime, JobTDate, PurgedFiles "
- "FROM Job JOIN FileSet USING (FileSetId) "
- "WHERE ClientId = %s "
- "AND Level='D' AND JobStatus IN ('T','W') AND Type='B' "
- "AND StartTime > (SELECT EndTime FROM btemp3%s ORDER BY EndTime DESC LIMIT 1) "
- "AND StartTime < '%s' "
- "AND FileSet.FileSet= (SELECT FileSet FROM FileSet WHERE FileSetId = %s) "
- "ORDER BY Job.JobTDate DESC FETCH FIRST 1 ROW ONLY ",
- jobid,
- clientid,
- jobid,
- date,
- filesetid);
-#else
Mmsg(query,
"INSERT INTO btemp3%s (JobId, StartTime, EndTime, JobTDate, PurgedFiles) "
"SELECT JobId, StartTime, EndTime, JobTDate, PurgedFiles "
jobid,
date,
filesetid);
-#endif
if (!db_sql_query(mdb, query.c_str(), NULL, NULL)) {
goto bail_out;
}
/* We just have to take all incremental after the last Full/Diff */
-#if HAVE_INGRES
- Mmsg(query,
-"INSERT INTO btemp3%s (JobId, StartTime, EndTime, JobTDate, PurgedFiles) "
- "SELECT JobId, StartTime, EndTime, JobTDate, PurgedFiles "
- "FROM Job JOIN FileSet USING (FileSetId) "
- "WHERE ClientId = %s "
- "AND Level='I' AND JobStatus IN ('T','W') AND Type='B' "
- "AND StartTime > (SELECT EndTime FROM btemp3%s ORDER BY EndTime DESC FETCH FIRST 1 ROW ONLY) "
- "AND StartTime < '%s' "
- "AND FileSet.FileSet= (SELECT FileSet FROM FileSet WHERE FileSetId = %s) "
- "ORDER BY Job.JobTDate DESC ",
- jobid,
- clientid,
- jobid,
- date,
- filesetid);
-#else
Mmsg(query,
"INSERT INTO btemp3%s (JobId, StartTime, EndTime, JobTDate, PurgedFiles) "
"SELECT JobId, StartTime, EndTime, JobTDate, PurgedFiles "
jobid,
date,
filesetid);
-#endif
if (!db_sql_query(mdb, query.c_str(), NULL, NULL)) {
goto bail_out;
}
// "AND FileSet.FileSet= '%s' "
// "AND Client.Name = '%s' "
"AND StartTime<'%s' "
-#if HAVE_INGRES
-#else
- "ORDER BY Job.JobTDate DESC FETCH FIRST 1 ROW ONLY",
-#endif
"ORDER BY Job.JobTDate DESC LIMIT 1",
jr->Name,
// edit_uint64(jr->ClientId, clientid),
POOL_MEM str_jobids(PM_MESSAGE);
if (limit > 0) {
-#if HAVE_INGRES
- Mmsg(str_limit, " FETCH FIRST %d ROWS ONLY", limit);
-#else
Mmsg(str_limit, " LIMIT %d", limit);
-#endif
}
if (JobIds && JobIds[0]) {
char limit[100];
db_lock(mdb);
if (jr->limit > 0) {
-#if HAVE_INGRES
- snprintf(limit, sizeof(limit), " FETCH FIRST %d ROWS ONLY", jr->limit);
-#else
snprintf(limit, sizeof(limit), " LIMIT %d", jr->limit);
-#endif
} else {
limit[0] = 0;
}