"AND Client.Name='%s' "
"AND Job.ClientId=Client.ClientId "
"AND Path.PathId=File.Pathid "
- "GROUP BY File.FileIndex ",
+ "GROUP BY File.FileIndex ORDER BY Job.StartTime",
/* PostgreSQL */
"SELECT Job.JobId,File.FileIndex FROM Job,File,Path,Client "
"AND Path.Path='%s' "
"AND Client.Name='%s' "
"AND Job.ClientId=Client.ClientId "
- "AND Path.PathId=File.Pathid ",
+ "AND Path.PathId=File.Pathid ORDER BY Job.StartTime ",
/* SQLite */
"SELECT Job.JobId,File.FileIndex FROM Job,File,Path,Client "
"AND Client.Name='%s' "
"AND Job.ClientId=Client.ClientId "
"AND Path.PathId=File.Pathid "
- "GROUP BY File.FileIndex "
+ "GROUP BY File.FileIndex ORDER BY Job.StartTime "
};
const char *sql_media_order_most_recently_written[] =
Mmsg(rx->query, uar_jobid_fileindex_from_dir[db_get_type_index(ua->db)], rx->JobIds, dir, rx->ClientName);
}
rx->found = false;
+ rx->JobId = 0; /* The jobid_fileindex_handler uses JobId to fill JobIds if needed */
+
/* Find and insert jobid and File Index */
if (!db_sql_query(ua->db, rx->query, jobid_fileindex_handler, (void *)rx)) {
ua->error_msg(_("Query failed: %s. ERR=%s\n"),
*
* It will permit to find restore objects to send during the restore
*/
+ if (rx->JobId == 0) { /* Avoid to duplicate the JobId inside JobIds */
+ rx->JobId = JobId;
+ }
if (rx->JobId != JobId) {
if (*rx->JobIds) {
pm_strcat(rx->JobIds, ",");