Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,"
"VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
"VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,Recycle,Slot,"
- "FirstWritten,COALESCE(LastWritten,0),VolStatus "
+ "FirstWritten,LastWritten,VolStatus "
"FROM Media WHERE PoolId=%u AND MediaType='%s' AND VolStatus IN ('Full',"
"'Recycle','Purged','Used','Append') "
"ORDER BY LastWritten LIMIT 1", mr->PoolId, mr->MediaType);
strcmp(mr->VolStatus, "Purged") == 0) {
order = "ORDER BY LastWritten ASC,MediaId"; /* take oldest */
} else {
- order = "ORDER BY LastWritten DESC,MediaId"; /* take most recently written */
+ order = "ORDER BY LastWritten IS NULL,LastWritten DESC,MediaId"; /* take most recently written */
}
Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,"
"VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
"VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,Recycle,Slot,"
- "FirstWritten,COALESCE(LastWritten,0),VolStatus "
+ "FirstWritten,LastWritten,VolStatus "
"FROM Media WHERE PoolId=%u AND MediaType='%s' AND VolStatus='%s' "
"%s "
"%s LIMIT 1",
mr->Slot = str_to_int64(row[16]);
bstrncpy(mr->cFirstWritten, row[17]!=NULL?row[17]:"", sizeof(mr->cFirstWritten));
mr->FirstWritten = (time_t)str_to_utime(mr->cFirstWritten);
- /* LastWritten cannot be NULL because of COALESCE() in SQL */
- bstrncpy(mr->cLastWritten, row[18], sizeof(mr->cLastWritten));
+ bstrncpy(mr->cLastWritten, row[18]!=NULL?row[18]:"", sizeof(mr->cLastWritten));
mr->LastWritten = (time_t)str_to_utime(mr->cLastWritten);
bstrncpy(mr->VolStatus, row[19], sizeof(mr->VolStatus));
sql_free_result(mdb);