]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Backport sql_get.c
authorEric Bollengier <eric@baculasystems.com>
Wed, 6 Sep 2023 08:25:52 +0000 (10:25 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 14 Sep 2023 11:57:02 +0000 (13:57 +0200)
bacula/src/cats/sql_get.c

index d2c4caaa9d592f76cc1fc4588980ed79b2bfa166..816f9019c0e0bdc6dd9ae3f7bd2fbb98ebb25a0f 100644 (file)
@@ -257,34 +257,30 @@ bool BDB::bdb_get_job_record(JCR *jcr, JOB_DBR *jr)
 "PoolId,StartTime,EndTime,JobFiles,JobBytes,JobTDate,Job,JobStatus,"
 "Type,Level,ClientId,Job.Name,PriorJobId,RealEndTime,JobId,FileSetId,"
 "SchedTime,RealStartTime,ReadBytes,HasBase,PurgedFiles,PriorJob,Comment,"
-"Reviewed,Client.Name AS Client, isVirtualFull,WriteStorageId,LastReadstorageId,StatusInfo,LastReadDevice,WriteDevice,Encrypted "
-"FROM Job WHERE Job='%s'", esc);
+"Reviewed,isVirtualFull,WriteStorageId,LastReadstorageId,StatusInfo,LastReadDevice,WriteDevice,Encrypted, Client.Name AS Client "
+"FROM Job JOIN Client USING (ClientId) WHERE Job='%s'", esc);
 
       } else if (jr->PriorJob[0]) {
          bdb_escape_string(jcr, esc, jr->PriorJob, strlen(jr->PriorJob));
          Mmsg(cmd, "SELECT VolSessionId,VolSessionTime,"
 "PoolId,StartTime,EndTime,JobFiles,JobBytes,JobTDate,Job,JobStatus,"
-"Type,Level,ClientId,Name,PriorJobId,RealEndTime,JobId,FileSetId,"
+"Type,Level,ClientId,Job.Name AS Name,PriorJobId,RealEndTime,JobId,FileSetId,"
 "SchedTime,RealStartTime,ReadBytes,HasBase,PurgedFiles,PriorJob,Comment,"
-"Reviewed,Client.Name AS Client,isVirtualFull,WriteStorageId,LastReadstorageId,StatusInfo,LastReadDevice,WriteDevice,Encrypted "
-"FROM Job WHERE PriorJob='%s' ORDER BY Type ASC LIMIT 1", esc);
+"Reviewed,isVirtualFull,WriteStorageId,LastReadstorageId,StatusInfo,LastReadDevice,WriteDevice,Encrypted, Client.Name AS Client "
+"FROM Job JOIN CLient USING (ClientId) WHERE PriorJob='%s' ORDER BY Type ASC LIMIT 1", esc);
       } else {
          Mmsg0(errmsg, _("No Job found\n"));
          bdb_unlock();
          return false;                   /* failed */
       }
 
-   } else { //                0            1
+   } else {
       Mmsg(cmd, "SELECT VolSessionId,VolSessionTime,"
-// 2      3         4        5       6       7        8    9           
 "PoolId,StartTime,EndTime,JobFiles,JobBytes,JobTDate,Job,JobStatus,"
-// 10 11     12      13    14           15        16     17
-"Type,Level,ClientId,Name,PriorJobId,RealEndTime,JobId,FileSetId,"
-// 18        19            20        21       22            23   24       25       26
-"SchedTime,RealStartTime,ReadBytes,HasBase,PurgedFiles,PriorJob,Comment,Reviewed,Client.Name AS Client,"
-//        27          28           29              30        31              32       33
-"isVirtualFull,WriteStorageId,LastReadStorageId,StatusInfo,LastReadDevice,WriteDevice,Encrypted "
-"FROM Job WHERE JobId=%s",
+"Type,Level,ClientId,Job.Name AS Name,PriorJobId,RealEndTime,JobId,FileSetId,"
+"SchedTime,RealStartTime,ReadBytes,HasBase,PurgedFiles,PriorJob,Comment,"
+"Reviewed,isVirtualFull,WriteStorageId,LastReadStorageId,StatusInfo,LastReadDevice,WriteDevice,Encrypted, Client.Name AS Client "
+"FROM Job JOIN Client USING (ClientId) WHERE JobId=%s",
           edit_int64(jr->JobId, ed1));
    }
 
@@ -339,14 +335,14 @@ bool BDB::bdb_get_job_record(JCR *jcr, JOB_DBR *jr)
    bstrncpy(jr->PriorJob, NPRTB(row[23]), sizeof(jr->PriorJob));
    bstrncpy(jr->Comment, NPRTB(row[24]), sizeof(jr->Comment));
    jr->Reviewed = str_to_int64(row[25]);
-   bstrncpy(jr->Client, NPRTB(row[26]), sizeof(jr->Client));
-   jr->isVirtualFull = str_to_int64(row[27]);
-   jr->WriteStorageId = str_to_int64(row[28]);
-   jr->LastReadStorageId = str_to_int64(row[29]);
-   bstrncpy(jr->StatusInfo, NPRTB(row[30]), sizeof(jr->StatusInfo));
-   bstrncpy(jr->LastReadDevice, NPRTB(row[31]), sizeof(jr->LastReadDevice));
-   bstrncpy(jr->WriteDevice, NPRTB(row[32]), sizeof(jr->WriteDevice));
-   jr->Encrypted = str_to_int64(row[33]);
+   jr->isVirtualFull = str_to_int64(row[26]);
+   jr->WriteStorageId = str_to_int64(row[27]);
+   jr->LastReadStorageId = str_to_int64(row[28]);
+   bstrncpy(jr->StatusInfo, NPRTB(row[29]), sizeof(jr->StatusInfo));
+   bstrncpy(jr->LastReadDevice, NPRTB(row[30]), sizeof(jr->LastReadDevice));
+   bstrncpy(jr->WriteDevice, NPRTB(row[31]), sizeof(jr->WriteDevice));
+   jr->Encrypted = str_to_int64(row[32]);
+   bstrncpy(jr->Client, NPRTB(row[33]), sizeof(jr->Client));
    sql_free_result();
 
    bdb_unlock();
@@ -1378,14 +1374,14 @@ bool BDB::bdb_get_media_record(JCR *jcr, MEDIA_DBR *mr)
 
    Mmsg(cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,"
       "VolBlocks,VolBytes,VolABytes,VolHoleBytes,VolHoles,VolMounts,"
-      "VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
-      "MediaType,VolStatus,PoolId,VolRetention,VolUseDuration,MaxVolJobs,"
-      "MaxVolFiles,Recycle,Slot,FirstWritten,LastWritten,InChanger,"
+      "VolErrors,VolWrites,Media.MaxVolBytes,Media.VolCapacityBytes,"
+      "MediaType,VolStatus,Media.PoolId,Media.VolRetention,Media.VolUseDuration,Media.MaxVolJobs,"
+      "Media.MaxVolFiles,Media.Recycle,Slot,FirstWritten,LastWritten,InChanger,"
       "EndFile,EndBlock,VolType,VolParts,VolCloudParts,LastPartBytes,"
-      "LabelType,LabelDate,StorageId,"
-      "Enabled,LocationId,RecycleCount,InitialWrite,"
-      "ScratchPoolId,RecyclePoolId,VolReadTime,VolWriteTime,ActionOnPurge,"
-      "CacheRetention,Pool.Name,Protected,UseProtect,VolEncrypted "
+      "Media.LabelType,LabelDate,StorageId,"
+      "Media.Enabled,LocationId,RecycleCount,InitialWrite,"
+      "Media.ScratchPoolId,Media.RecyclePoolId,VolReadTime,VolWriteTime,Media.ActionOnPurge,"
+      "Media.CacheRetention,Protected,UseProtect,VolEncrypted,Pool.Name "
       "FROM Media JOIN Pool USING (PoolId) %s", filter.c_str());
 
    if (QueryDB(jcr, cmd)) {
@@ -1449,10 +1445,10 @@ bool BDB::bdb_get_media_record(JCR *jcr, MEDIA_DBR *mr)
             mr->VolWriteTime = str_to_int64(row[42]);
             mr->ActionOnPurge = str_to_int32(row[43]);
             mr->CacheRetention = str_to_int64(row[44]);
-            bstrncpy(mr->Pool, row[45], sizeof(mr->Pool));
-            mr->Protected = str_to_int64(row[46]);
-            mr->UseProtect = str_to_int64(row[47]);
-            mr->VolEncrypted = str_to_int64(row[48]);
+            mr->Protected = str_to_int64(row[45]);
+            mr->UseProtect = str_to_int64(row[46]);
+            mr->VolEncrypted = str_to_int64(row[47]);
+            bstrncpy(mr->Pool, row[48], sizeof(mr->Pool));
 
             ok = true;
          }