]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix find_next_volume sorting again
authorKern Sibbald <kern@sibbald.com>
Fri, 13 Feb 2004 13:52:10 +0000 (13:52 +0000)
committerKern Sibbald <kern@sibbald.com>
Fri, 13 Feb 2004 13:52:10 +0000 (13:52 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1052 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/cats/create_bacula_database.in
bacula/src/cats/sql_find.c

index 27e2efa46ade77aa6ad1529cfc9aaf3fcc03f2b2..9609be8ad6d9aea69bf0834fd9d50e8cc06a3b94 100644 (file)
@@ -12,6 +12,6 @@ else
     @scriptdir@/create_mysql_database $*
   else
     echo "Creating PostgreSQL database"
-    @scriptdir@/create_postgresql_database
+    @scriptdir@/create_postgresql_database template1
   fi
 fi
index 347c2a01bce04d59d624ec432264e9813a47e5fe..8a9371bccbd57be5d56293ef1935a203f7ba0dc8 100644 (file)
@@ -226,7 +226,7 @@ db_find_next_volume(JCR *jcr, B_DB *mdb, int item, bool InChanger, MEDIA_DBR *mr
       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); 
@@ -242,12 +242,12 @@ db_find_next_volume(JCR *jcr, B_DB *mdb, int item, bool InChanger, MEDIA_DBR *mr
           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",
@@ -298,8 +298,7 @@ db_find_next_volume(JCR *jcr, B_DB *mdb, int item, bool InChanger, MEDIA_DBR *mr
    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);