From: Alain Spineux Date: Tue, 6 Dec 2022 10:31:39 +0000 (+0100) Subject: tweak bdb_get_media_record() don't duplicate the field twice X-Git-Tag: Beta-15.0.0~330 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=814889797e8ad4833a86a8b87908498eb5397f79;p=thirdparty%2Fbacula.git tweak bdb_get_media_record() don't duplicate the field twice - just make the "WHERE" clause vary - this reduce the risk of having the field in a different order in both query --- diff --git a/bacula/src/cats/sql_get.c b/bacula/src/cats/sql_get.c index 767a929f8..95a99ecbc 100644 --- a/bacula/src/cats/sql_get.c +++ b/bacula/src/cats/sql_get.c @@ -1362,32 +1362,23 @@ bool BDB::bdb_get_media_record(JCR *jcr, MEDIA_DBR *mr) return true; } if (mr->MediaId != 0) { /* find by id */ - 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," - "EndFile,EndBlock,VolType,VolParts,VolCloudParts,LastPartBytes," - "LabelType,LabelDate,StorageId," - "Enabled,LocationId,RecycleCount,InitialWrite," - "ScratchPoolId,RecyclePoolId,VolReadTime,VolWriteTime,ActionOnPurge," - "CacheRetention,Pool.Name,Protected,UseProtect,VolEncrypted " - "FROM Media WHERE MediaId=%s", - edit_int64(mr->MediaId, ed1)); + Mmsg(filter, "WHERE MediaId=%s", edit_int64(mr->MediaId, ed1)); } else { /* find by name */ bdb_escape_string(jcr, esc, mr->VolumeName, strlen(mr->VolumeName)); - 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," - "EndFile,EndBlock,VolType,VolParts,VolCloudParts,LastPartBytes," - "LabelType,LabelDate,StorageId," - "Enabled,LocationId,RecycleCount,InitialWrite," - "ScratchPoolId,RecyclePoolId,VolReadTime,VolWriteTime,ActionOnPurge," - "CacheRetention,Pool.Name,Protected,UseProtect,VolEncrypted " - "FROM Media WHERE VolumeName='%s'", esc); - } + Mmsg(filter, "WHERE VolumeName='%s'", esc); + } + + 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," + "EndFile,EndBlock,VolType,VolParts,VolCloudParts,LastPartBytes," + "LabelType,LabelDate,StorageId," + "Enabled,LocationId,RecycleCount,InitialWrite," + "ScratchPoolId,RecyclePoolId,VolReadTime,VolWriteTime,ActionOnPurge," + "CacheRetention,Pool.Name,Protected,UseProtect,VolEncrypted " + "FROM Media JOIN Pool USING (PoolId) %s", filter.c_str()); if (QueryDB(jcr, cmd)) { char ed1[50];