char ed1[50];
bool ok = false;
char esc[MAX_ESCAPE_NAME_LENGTH];
+ POOL_MEM filter;
bdb_lock();
if (mr->MediaId == 0 && mr->VolumeName[0] == 0) {
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 "
- "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 "
- "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,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,"
+ "Media.LabelType,LabelDate,StorageId,"
+ "Media.Enabled,LocationId,RecycleCount,InitialWrite,"
+ "Media.ScratchPoolId,Media.RecyclePoolId,VolReadTime,VolWriteTime,Media.ActionOnPurge,"
+ "Media.CacheRetention,Pool.Name "
+ "FROM Media JOIN Pool USING (PoolId) %s", filter.c_str());
+
if (QueryDB(jcr, cmd)) {
char ed1[50];
if (sql_num_rows() > 1) {
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));
ok = true;
}