]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/sql_find.c
Use the command line utility dropdb instead of the psql command
[bacula/bacula] / bacula / src / cats / sql_find.c
index 1dd40978dece89efe302a413026c2a0bde6d8ae2..b2d454b5842899880760eeb31f8a53474323b480 100644 (file)
@@ -39,7 +39,7 @@
 #include "bacula.h"
 #include "cats.h"
 
-#if    HAVE_MYSQL || HAVE_SQLITE
+#if    HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL
 
 /* -----------------------------------------------------------------------
  *
@@ -214,7 +214,7 @@ db_find_last_jobid(JCR *jcr, B_DB *mdb, char *Name, JOB_DBR *jr)
  *         numrows on success
  */
 int
-db_find_next_volume(JCR *jcr, B_DB *mdb, int item, MEDIA_DBR *mr) 
+db_find_next_volume(JCR *jcr, B_DB *mdb, int item, bool InChanger, MEDIA_DBR *mr) 
 {
    SQL_ROW row;
    int numrows;
@@ -232,13 +232,23 @@ db_find_next_volume(JCR *jcr, B_DB *mdb, int item, MEDIA_DBR *mr)
      item = 1;
    } else {
       /* Find next available volume */
-      Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,"
-          "VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
-          "VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,Recycle,Slot,"
-          "FirstWritten,LastWritten,VolStatus "
-          "FROM Media WHERE PoolId=%u AND MediaType='%s' AND VolStatus='%s' "
-          "ORDER BY LastWritten", 
-          mr->PoolId, mr->MediaType, mr->VolStatus); 
+      if (InChanger) {
+         Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,"
+             "VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
+             "VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,Recycle,Slot,"
+             "FirstWritten,LastWritten,VolStatus "
+             "FROM Media WHERE PoolId=%u AND MediaType='%s' AND VolStatus='%s' "
+             "AND InChanger=1 ORDER BY LastWritten,MediaId", 
+             mr->PoolId, mr->MediaType, mr->VolStatus); 
+      } else {
+         Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,"
+             "VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,"
+             "VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,Recycle,Slot,"
+             "FirstWritten,LastWritten,VolStatus "
+             "FROM Media WHERE PoolId=%u AND MediaType='%s' AND VolStatus='%s' "
+             "ORDER BY LastWritten,MediaId", 
+             mr->PoolId, mr->MediaType, mr->VolStatus); 
+      }
    }
    if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
       db_unlock(mdb);
@@ -296,4 +306,4 @@ db_find_next_volume(JCR *jcr, B_DB *mdb, int item, MEDIA_DBR *mr)
 }
 
 
-#endif /* HAVE_MYSQL || HAVE_SQLITE */
+#endif /* HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL */