[pkg-bacula-commits] [bacula] 01/01: Imported upstream version 7.4.1

Carsten Leonhardt leo at moszumanska.debian.org
Wed Jun 1 15:45:38 UTC 2016


This is an automated email from the git hooks/post-receive script.

leo pushed a commit to branch upstream
in repository bacula.

commit 43ed07d0e9dfb524a002d64a3908f0041b4f487c
Author: Carsten Leonhardt <leo at debian.org>
Date:   Wed Jun 1 17:44:29 2016 +0200

    Imported upstream version 7.4.1
    
    Changes from upstream:
    src/lib/sha1.{h,c}: (#658326) remove, DFSG-nonfree, RFC 3174
---
 .gitignore                                    | 11 ++++
 ChangeLog                                     | 61 +++++++++++++++++++++-
 ReleaseNotes                                  | 33 +++++++++++-
 src/c                                         |  2 +-
 src/cats/make_catalog_backup.in               |  7 +--
 src/cats/make_mysql_tables.in                 | 34 ++++++-------
 src/cats/sql_list.c                           | 16 +++---
 src/dird/mac.c                                | 29 +++++++++--
 src/dird/restore.c                            |  4 ++
 src/dird/ua_cmds.c                            |  2 +-
 src/dird/ua_run.c                             |  2 +-
 src/dird/ua_update.c                          | 28 ++++++----
 src/filed/acl.c                               |  2 +-
 src/filed/filed_conf.c                        |  2 +-
 src/jcr.h                                     |  2 +-
 src/lib/alist.c                               |  3 ++
 src/lib/bsock.c                               |  2 +-
 src/lib/mem_pool.c                            |  8 +--
 src/lib/smartall.h                            |  8 +--
 src/qt-console/medialist/medialist.cpp        |  2 +-
 src/version.h                                 |  4 +-
 updatedb/update_mysql_tables.in               |  3 --
 updatedb/update_mysql_tables_12_to_13.in      | 53 -------------------
 updatedb/update_mysql_tables_13_to_14.in      | 37 --------------
 updatedb/update_postgresql_tables.in          |  2 +-
 updatedb/update_postgresql_tables_12_to_13.in | 53 -------------------
 updatedb/update_postgresql_tables_13_to_14.in | 38 --------------
 updatedb/update_sqlite3_tables.in             | 73 +++++++++++++++++++++++----
 28 files changed, 263 insertions(+), 258 deletions(-)

diff --git a/.gitignore b/.gitignore
index 447e49c..2e7992f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,8 @@
 *.o
 *.lo
 *~
+*.patch
+*.bak
 1
 2
 autom4te.cache
@@ -24,6 +26,7 @@ config.status
 configure.lineno
 console.log
 console.sum
+count-lines
 diff
 fd
 update
@@ -235,6 +238,8 @@ src/python
 src/pyqt
 src/xqt-console
 src/TAGS
+src/bsd
+src/add-bsd
 
 # src/cats/
 src/cats/1
@@ -488,6 +493,9 @@ src/qt-console/testprogs/putz/Makefile
 src/qt-console/testprogs/putz/moc
 
 # src/qt-console/tray-monitor
+src/qt-console/tray-monitor/.libs/
+src/qt-console/tray-monitor/bacula-tray-monitor
+src/qt-console/tray-monitor/qrc_main.cpp
 src/qt-console/tray-monitor/Makefile.mingw32
 src/qt-console/tray-monitor/Makefile.mingw32.Debug
 src/qt-console/tray-monitor/Makefile.mingw32.Release
@@ -805,6 +813,9 @@ src/wx-console/bwx-console.conf
 src/wx-console/.libs
 
 # updatedb/
+updatedb/update_mysql_tables
+updatedb/update_postgresql_tables
+updatedb/update_sqlite3_tables
 updatedb/update_mysql_tables_12_to_14
 updatedb/update_postgresql_tables_12_to_14
 updatedb/update_sqlite3_tables_12_to_14
diff --git a/ChangeLog b/ChangeLog
index e2b91d7..723cd2d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,66 @@
-              Changelog on version 7.4.0
+              Changelog on version 7.4.1
 
 
-Release Version 7.4.0
+Release version 7.4.1
+
+31May16
+ - Fix bug #1849 MySQL does not accept 0 for DATETIME default
+
+12May16
+ - Modify the alist object to be reused after a destroy()
+
+24Apr16
+ - baculum: Fix setting invalid timezone value for PHP
+
+18Apr16
+ - Fix compilation for AIX
+
+07Apr16
+ - Fix the restore termination string in the job report to take in account 
+  JobErrors and SDErrors
+
+12Mar16
+ - baculum: Show jobs for client
+
+04Mar16
+ - Fix bconsole "llist job=<xxxx>" output
+
+01Mar16
+ - Fix #146 about update volume command line usage
+
+29Feb16
+ - bat: Fix #1066 about bad update pool command
+ - Fix #1653 about make_catalog_backup default user name
 
+28Feb16
+ - baculum: Show jobs stored on volume
 
+15Feb16
+ - Fix update Volume=x Slot=nn when Slot > MaxVols
+ - Set exit code for create_postgresql_database.in
+
+09Feb16
+ - Fix bug #2197 -- build failure with --disable-libtool
+ - Fix bug #2204 -- superfluous END-OF-DATA in update_mysql_tables.in
+
+02Feb16
+ - Convert a Migration job with errors into a Copy job
+
+31Jan16
+ - Remove exporting add_mtab_item -- fixes bug #2198
+
+23Jan16
+ - Fix possible problem of show multiple resources
+
+18Jan16
+ - Comment out tools/smtp-orig.c as it is for reference only
+
+Bugs fixed/closed since last release:
+1066 146 1653 1849 2197 2198 2204
+
+=================
+
+Release Version 7.4.0
 
 14Jan16
  - Put back missing line in copyright
diff --git a/ReleaseNotes b/ReleaseNotes
index 89d6983..a868ca0 100644
--- a/ReleaseNotes
+++ b/ReleaseNotes
@@ -1,6 +1,37 @@
 
-               Release Notes for Bacula 7.4.0
+               Release Notes for Bacula 7.4.1
+
+Release version 7.4.1
+
+This is a minor bug fix release to version 7.4.0.  Most of the
+fixes have been kindly contributed by Bacula Systems SA.
+
+31May16
+ - Fix bug #1849 MySQL does not accept 0 for DATETIME default
+ - Modify the alist object to be reused after a destroy()
+ - baculum: Fix setting invalid timezone value for PHP
+ - Fix compilation for AIX
+ - Fix the restore termination string in the job report to take in account 
+   JobErrors and SDErrors
+ - baculum: Show jobs for client
+ - Fix bconsole "llist job=<xxxx>" output
+ - Fix #146 about update volume command line usage
+ - bat: Fix #1066 about bad update pool command
+ - Fix #1653 about make_catalog_backup default user name
+ - baculum: Show jobs stored on volume
+ - Fix update Volume=x Slot=nn when Slot > MaxVols
+ - Set exit code for create_postgresql_database.in
+ - Fix bug #2197 -- build failure with --disable-libtool
+ - Fix bug #2204 -- superfluous END-OF-DATA in update_mysql_tables.in
+ - Convert a Migration job with errors into a Copy job
+ - Remove exporting add_mtab_item -- fixes bug #2198
+ - Fix possible problem of show multiple resources
+ - Comment out tools/smtp-orig.c as it is for reference only
 
+Bugs fixed/closed since last release:
+1066 146 1653 1849 2197 2198 2204
+
+=======================
 Release version 7.4.0
 
 For the most part the changes were contributed to the Bacula 
diff --git a/src/c b/src/c
index 04d8f08..6dc5054 100644
--- a/src/c
+++ b/src/c
@@ -1,6 +1,6 @@
    Bacula(R) - The Network Backup Solution
 
-   Copyright (C) 2000-2015 Kern Sibbald
+   Copyright (C) 2000-2016 Kern Sibbald
 
    The original author of Bacula is Kern Sibbald, with contributions
    from many others, a complete list can be found in the file AUTHORS.
diff --git a/src/cats/make_catalog_backup.in b/src/cats/make_catalog_backup.in
index 637fcf7..dabd717 100755
--- a/src/cats/make_catalog_backup.in
+++ b/src/cats/make_catalog_backup.in
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (C) 2000-2015 Kern Sibbald
+# Copyright (C) 2000-2016 Kern Sibbald
 # License: BSD 2-Clause; see file LICENSE-FOSS
 #
 # This script dumps your Bacula catalog in ASCII format
@@ -23,6 +23,7 @@
 #
 
 default_db_type=@DEFAULT_DB_TYPE@
+user=${2:- at db_user@}
 
 #
 # See if the fifth argument is a valid backend name.
@@ -74,7 +75,7 @@ case ${db_type} in
     else
       MYSQLHOST=""
     fi
-    ${BINDIR}/mysqldump -u ${2}${MYSQLPASSWORD}${MYSQLHOST} -f --opt $1 >$1.sql
+    ${BINDIR}/mysqldump -u ${user}${MYSQLPASSWORD}${MYSQLHOST} -f --opt $1 >$1.sql
     ;;
   postgresql)
     BINDIR=@POSTGRESQL_BINDIR@
@@ -88,7 +89,7 @@ case ${db_type} in
       PGHOST=""
     fi
     # you could also add --compress for compression.  See man pg_dump
-    exec ${BINDIR}/pg_dump -c $PGHOST -U $2 $1 >$1.sql
+    exec ${BINDIR}/pg_dump -c $PGHOST -U $user $1 >$1.sql
     ;;
 esac
 #
diff --git a/src/cats/make_mysql_tables.in b/src/cats/make_mysql_tables.in
index 788617d..8ed8598 100644
--- a/src/cats/make_mysql_tables.in
+++ b/src/cats/make_mysql_tables.in
@@ -118,7 +118,7 @@ CREATE TABLE Device (
    DevWriteTime BIGINT UNSIGNED DEFAULT 0,
    DevReadTimeSinceCleaning BIGINT UNSIGNED DEFAULT 0,
    DevWriteTimeSinceCleaning BIGINT UNSIGNED DEFAULT 0,
-   CleaningDate DATETIME DEFAULT 0,
+   CleaningDate DATETIME,
    CleaningPeriod BIGINT UNSIGNED DEFAULT 0,
    PRIMARY KEY(DeviceId)
    );
@@ -132,10 +132,10 @@ CREATE TABLE Job (
    Level BINARY(1) NOT NULL,
    ClientId INTEGER DEFAULT 0 REFERENCES Client,
    JobStatus BINARY(1) NOT NULL,
-   SchedTime DATETIME DEFAULT 0,
-   StartTime DATETIME DEFAULT 0,
-   EndTime DATETIME DEFAULT 0,
-   RealEndTime DATETIME DEFAULT 0,
+   SchedTime DATETIME,
+   StartTime DATETIME,
+   EndTime DATETIME,
+   RealEndTime DATETIME,
    JobTDate BIGINT UNSIGNED DEFAULT 0,
    VolSessionId INTEGER UNSIGNED DEFAULT 0,
    VolSessionTime INTEGER UNSIGNED DEFAULT 0,
@@ -166,10 +166,10 @@ CREATE TABLE JobHisto (
    Level BINARY(1) NOT NULL,
    ClientId INTEGER DEFAULT 0,
    JobStatus BINARY(1) NOT NULL,
-   SchedTime DATETIME DEFAULT 0,
-   StartTime DATETIME DEFAULT 0,
-   EndTime DATETIME DEFAULT 0,
-   RealEndTime DATETIME DEFAULT 0,
+   SchedTime DATETIME,
+   StartTime DATETIME,
+   EndTime DATETIME,
+   RealEndTime DATETIME,
    JobTDate BIGINT UNSIGNED DEFAULT 0,
    VolSessionId INTEGER UNSIGNED DEFAULT 0,
    VolSessionTime INTEGER UNSIGNED DEFAULT 0,
@@ -202,7 +202,7 @@ CREATE TABLE Location (
 
 CREATE TABLE LocationLog (
    LocLogId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
-   Date DATETIME DEFAULT 0,
+   Date DATETIME,
    Comment BLOB NOT NULL,
    MediaId INTEGER UNSIGNED DEFAULT 0 REFERENCES Media,
    LocationId INTEGER UNSIGNED DEFAULT 0 REFERENCES Location,
@@ -218,7 +218,7 @@ CREATE TABLE FileSet (
    FileSetId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    FileSet TINYBLOB NOT NULL,
    MD5 TINYBLOB,
-   CreateTime DATETIME DEFAULT 0,
+   CreateTime DATETIME,
    PRIMARY KEY(FileSetId)
    );
 
@@ -246,9 +246,9 @@ CREATE TABLE Media (
    MediaType TINYBLOB NOT NULL,
    MediaTypeId INTEGER UNSIGNED DEFAULT 0 REFERENCES MediaType,
    LabelType TINYINT DEFAULT 0,
-   FirstWritten DATETIME DEFAULT 0,
-   LastWritten DATETIME DEFAULT 0,
-   LabelDate DATETIME DEFAULT 0,
+   FirstWritten DATETIME,
+   LastWritten DATETIME,
+   LabelDate DATETIME,
    VolJobs INTEGER UNSIGNED DEFAULT 0,
    VolFiles INTEGER UNSIGNED DEFAULT 0,
    VolBlocks INTEGER UNSIGNED DEFAULT 0,
@@ -282,7 +282,7 @@ CREATE TABLE Media (
    EndBlock INTEGER UNSIGNED DEFAULT 0,
    LocationId INTEGER UNSIGNED DEFAULT 0 REFERENCES Location,
    RecycleCount INTEGER UNSIGNED DEFAULT 0,
-   InitialWrite DATETIME DEFAULT 0,
+   InitialWrite DATETIME,
    ScratchPoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool,
    RecyclePoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool,
    Comment BLOB,
@@ -337,7 +337,7 @@ CREATE TABLE Client (
 CREATE TABLE Log (
    LogId INTEGER UNSIGNED AUTO_INCREMENT,
    JobId INTEGER UNSIGNED DEFAULT 0 REFERENCES Job,
-   Time DATETIME DEFAULT 0,
+   Time DATETIME,
    LogText BLOB NOT NULL,
    PRIMARY KEY(LogId),
    INDEX (JobId)
@@ -376,7 +376,7 @@ CREATE TABLE Counters (
 
 CREATE TABLE CDImages (
    MediaId INTEGER UNSIGNED NOT NULL,
-   LastBurn DATETIME NOT NULL,
+   LastBurn DATETIME,
    PRIMARY KEY (MediaId)
    );
 
diff --git a/src/cats/sql_list.c b/src/cats/sql_list.c
index 55b6a85..b5a2175 100644
--- a/src/cats/sql_list.c
+++ b/src/cats/sql_list.c
@@ -396,40 +396,40 @@ alist *BDB::bdb_list_job_records(JCR *jcr, JOB_DBR *jr, DB_LIST_HANDLER *sendit,
    }
    if (jr->Name[0]) {
       bdb_escape_string(jcr, esc, jr->Name, strlen(jr->Name));
-      Mmsg(tmp, " Name='%s' ", esc);
+      Mmsg(tmp, " Job.Name='%s' ", esc);
       append_filter(where, tmp);
 
    } else if (jr->JobId != 0) {
-      Mmsg(tmp, " JobId=%s ", edit_int64(jr->JobId, ed1));
+      Mmsg(tmp, " Job.JobId=%s ", edit_int64(jr->JobId, ed1));
       append_filter(where, tmp);
 
    } else if (jr->Job[0] != 0) {
       bdb_escape_string(jcr, esc, jr->Job, strlen(jr->Job));
-      Mmsg(tmp, " Job='%s' ", esc);
+      Mmsg(tmp, " Job.Job='%s' ", esc);
       append_filter(where, tmp);
    }
 
    if (type == INCOMPLETE_JOBS && jr->JobStatus == JS_FatalError) {
-      Mmsg(tmp, " JobStatus IN ('E', 'f') ");
+      Mmsg(tmp, " Job.JobStatus IN ('E', 'f') ");
       append_filter(where, tmp);
 
    } else if (jr->JobStatus) {
-      Mmsg(tmp, " JobStatus='%c' ", jr->JobStatus);
+      Mmsg(tmp, " Job.JobStatus='%c' ", jr->JobStatus);
       append_filter(where, tmp);
    }
 
    if (jr->JobType) {
-      Mmsg(tmp, " Type='%c' ", jr->JobType);
+      Mmsg(tmp, " Job.Type='%c' ", jr->JobType);
       append_filter(where, tmp);
    }
 
    if (jr->JobErrors > 0) {
-      Mmsg(tmp, " JobErrors > 0 ");
+      Mmsg(tmp, " Job.JobErrors > 0 ");
       append_filter(where, tmp);
    }
 
    if (jr->ClientId > 0) {
-      Mmsg(tmp, " ClientId=%s ", edit_int64(jr->ClientId, ed1));
+      Mmsg(tmp, " Job.ClientId=%s ", edit_int64(jr->ClientId, ed1));
       append_filter(where, tmp);
    }
 
diff --git a/src/dird/mac.c b/src/dird/mac.c
index 134276b..58d50a5 100644
--- a/src/dird/mac.c
+++ b/src/dird/mac.c
@@ -626,6 +626,7 @@ void mac_cleanup(JCR *jcr, int TermCode, int writeTermCode)
    MEDIA_DBR mr;
    double kbps;
    utime_t RunTime;
+   bool goterrors=false;
    JCR *wjcr = jcr->wjcr;
    POOL_MEM query(PM_MESSAGE);
    POOL_MEM vol_info;
@@ -658,13 +659,24 @@ void mac_cleanup(JCR *jcr, int TermCode, int writeTermCode)
          new_jobid);
       db_sql_query(wjcr->db, query.c_str(), NULL, NULL);
 
+      goterrors = jcr->SDErrors > 0 || jcr->JobErrors > 0 ||
+         jcr->SDJobStatus == JS_Canceled ||
+         jcr->SDJobStatus == JS_ErrorTerminated ||
+         jcr->SDJobStatus == JS_FatalError;
+
+      if (goterrors && jcr->getJobType() == JT_MIGRATE && jcr->JobStatus == JS_Terminated) {
+         Jmsg(jcr, M_WARNING, 0, _("Found errors during the migration process. "
+                                   "The original job %s will be kept in the catalog "
+                                   "and the Migration job will be marked in Error\n"), old_jobid);
+      }
+
       /*
        * If we terminated a migration normally:
        *   - mark the previous job as migrated
        *   - move any Log records to the new JobId
        *   - Purge the File records from the previous job
        */
-      if (jcr->getJobType() == JT_MIGRATE && jcr->JobStatus == JS_Terminated) {
+      if (!goterrors && jcr->getJobType() == JT_MIGRATE && jcr->JobStatus == JS_Terminated) {
          Mmsg(query, "UPDATE Job SET Type='%c' WHERE JobId=%s",
               (char)JT_MIGRATED_JOB, old_jobid);
          db_sql_query(wjcr->db, query.c_str(), NULL, NULL);
@@ -695,13 +707,14 @@ void mac_cleanup(JCR *jcr, int TermCode, int writeTermCode)
        *   - copy any Log records to the new JobId
        *   - set type="Job Copy" for the new job
        */
-      if (jcr->getJobType() == JT_COPY && jcr->JobStatus == JS_Terminated) {
+      if (goterrors || (jcr->getJobType() == JT_COPY && jcr->JobStatus == JS_Terminated)) {
          /* Copy JobLog to new JobId */
          Mmsg(query, "INSERT INTO Log (JobId, Time, LogText ) "
                       "SELECT %s, Time, LogText FROM Log WHERE JobId=%s",
               new_jobid, old_jobid);
          db_sql_query(wjcr->db, query.c_str(), NULL, NULL);
 
+         /* We are in a real copy job */
          Mmsg(query, "UPDATE Job SET Type='%c' WHERE JobId=%s",
               (char)JT_JOB_COPY, new_jobid);
          db_sql_query(wjcr->db, query.c_str(), NULL, NULL);
@@ -753,6 +766,16 @@ void mac_cleanup(JCR *jcr, int TermCode, int writeTermCode)
          }
       }
 
+      /* We keep all information in the catalog because most of the work is
+       * done, and users might restore things from what we have
+       */
+      if (goterrors) {
+         jcr->setJobStatus(JS_ErrorTerminated);
+         Mmsg(query, "UPDATE Job SET JobStatus='%c' WHERE JobId=%s",
+              JS_ErrorTerminated, new_jobid);
+         db_sql_query(wjcr->db, query.c_str(), NULL, NULL);
+      }
+
       switch (jcr->JobStatus) {
       case JS_Terminated:
          if (jcr->JobErrors || jcr->SDErrors) {
@@ -798,7 +821,7 @@ void mac_cleanup(JCR *jcr, int TermCode, int writeTermCode)
          break;
       }
    } else {
-      if (jcr->getJobType() == JT_MIGRATE && jcr->previous_jr.JobId != 0) {
+      if (!goterrors && jcr->getJobType() == JT_MIGRATE && jcr->previous_jr.JobId != 0) {
          /* Mark previous job as migrated */
          Mmsg(query, "UPDATE Job SET Type='%c' WHERE JobId=%s",
               (char)JT_MIGRATED_JOB, edit_uint64(jcr->previous_jr.JobId, ec1));
diff --git a/src/dird/restore.c b/src/dird/restore.c
index 8a00a0f..1fe0d74 100644
--- a/src/dird/restore.c
+++ b/src/dird/restore.c
@@ -608,6 +608,10 @@ void restore_cleanup(JCR *jcr, int TermCode)
    case JS_Terminated:
       if (jcr->ExpectedFiles > jcr->jr.JobFiles) {
          term_msg = _("Restore OK -- warning file count mismatch");
+
+      } else if (jcr->JobErrors > 0 || jcr->SDErrors > 0) {
+         term_msg = _("Restore OK -- with errors");
+         
       } else {
          term_msg = _("Restore OK");
       }
diff --git a/src/dird/ua_cmds.c b/src/dird/ua_cmds.c
index 33b93af..e9cc929 100644
--- a/src/dird/ua_cmds.c
+++ b/src/dird/ua_cmds.c
@@ -197,7 +197,7 @@ static struct cmdstruct commands[] = {                                      /* C
        "\n\t pool=<pool> recycle=<yes/no> slot=<number>\n\t inchanger=<yes/no>"
        "\n\t maxvolbytes=<size> maxvolfiles=<nb> maxvoljobs=<nb>"
        "\n\t enabled=<yes/no> recyclepool=<pool> actiononpurge=<action>"
-       "\n\t allfrompool=<pool> fromallpools"),true},
+       "\n\t allfrompool=<pool> fromallpools frompool"),true},
  { NT_("use"),        use_cmd,       _("Use catalog xxx"), NT_("catalog=<catalog>"),     false},
  { NT_("var"),        var_cmd,       _("Does variable expansion"), NT_(""),  false},
  { NT_("version"),    version_cmd,   _("Print Director version"),  NT_(""),  true},
diff --git a/src/dird/ua_run.c b/src/dird/ua_run.c
index 03c3f2f..f54df8f 100644
--- a/src/dird/ua_run.c
+++ b/src/dird/ua_run.c
@@ -1024,7 +1024,7 @@ static bool set_run_context_in_jcr(UAContext *ua, JCR *jcr, run_ctx &rc)
    }
    rc.replace = ReplaceOptions[0].name;
    for (i=0; ReplaceOptions[i].name; i++) {
-      if (ReplaceOptions[i].token == jcr->replace) {
+      if ((int)ReplaceOptions[i].token == jcr->replace) {
          rc.replace = ReplaceOptions[i].name;
       }
    }
diff --git a/src/dird/ua_update.c b/src/dird/ua_update.c
index 9d1a170..3ed1613 100644
--- a/src/dird/ua_update.c
+++ b/src/dird/ua_update.c
@@ -520,22 +520,31 @@ static int update_volume(UAContext *ua)
       NT_("InChanger"),                /* 7 */
       NT_("Slot"),                     /* 8 */
       NT_("Pool"),                     /* 9 */
-      NT_("FromPool"),                 /* 10 */
+      NT_("FromPool"),                 /* 10 !!! see below !!! */
       NT_("AllFromPool"),              /* 11 !!! see below !!! */
       NT_("Enabled"),                  /* 12 */
       NT_("RecyclePool"),              /* 13 */
       NT_("ActionOnPurge"),            /* 14 */
+      NT_("FromAllPools"),             /* 15 !!! see bellow !!! */
       NULL };
 
-#define AllFromPool 11               /* keep this updated with above */
+#define FromPool     10              /* keep this updated */
+#define AllFromPool  11              /* keep this updated with above */
+#define FromAllPools 15              /* keep this updated */
 
    for (i=0; kw[i]; i++) {
       int j;
       POOL_DBR pr;
+      /* No argv with these parameters */
+      if (i == FromPool || i == FromAllPools) {
+         j = find_arg(ua, kw[i]);
 
-      if ((j=find_arg_with_value(ua, kw[i])) > 0) {
-         /* If all from pool don't select a media record */
-         if (i != AllFromPool && !select_media_dbr(ua, &mr)) {
+      } else {
+         j = find_arg_with_value(ua, kw[i]);
+      }
+      if (j > 0) {
+         /* If all from pool/from all pools don't select a media record */
+         if (i != AllFromPool && i != FromAllPools && !select_media_dbr(ua, &mr)) {
             return 0;
          }
          switch (i) {
@@ -590,17 +599,14 @@ static int update_volume(UAContext *ua)
          case 14:
             update_vol_actiononpurge(ua, ua->argv[j], &mr);
             break;
+         case 15:
+            update_all_vols(ua);
+            break;
          }
          done = true;
       }
    }
 
-   /* Allow user to simply update all volumes */
-   if (find_arg(ua, NT_("fromallpools")) > 0) {
-      update_all_vols(ua);
-      return 1;
-   }
-
    for ( ; !done; ) {
       start_prompt(ua, _("Parameters to modify:\n"));
       add_prompt(ua, _("Volume Status"));              /* 0 */
diff --git a/src/filed/acl.c b/src/filed/acl.c
index f8c3dd8..5285a4c 100644
--- a/src/filed/acl.c
+++ b/src/filed/acl.c
@@ -266,7 +266,7 @@ static bacl_rtn_code aix_backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt)
    acltxtsize = sizeof_pool_memory(jcr->acl_ctx->content);
    if (aclx_printStr(jcr->acl_ctx->content, &acltxtsize, aclbuf,
                      aclsize, type, jcr->last_fname, 0) < 0) {
-      if ((errno == ENOSPC) {
+      if (errno == ENOSPC) {
          /*
           * Our buffer is not big enough, acltxtsize should be updated with the value
           * the aclx_printStr really need. So we increase the buffer and try again.
diff --git a/src/filed/filed_conf.c b/src/filed/filed_conf.c
index cd41ad9..71fbf5b 100644
--- a/src/filed/filed_conf.c
+++ b/src/filed/filed_conf.c
@@ -97,7 +97,7 @@ static RES_ITEM cli_items[] = {
    {"Messages",      store_res, ITEM(res_client.messages), R_MSGS, 0, 0},
    {"SdConnectTimeout", store_time,ITEM(res_client.SDConnectTimeout), 0, ITEM_DEFAULT, 60 * 30},
    {"HeartbeatInterval", store_time, ITEM(res_client.heartbeat_interval), 0, ITEM_DEFAULT, 5 * 60},
-   {"MaximumNetWorkBufferSize", store_pint32, ITEM(res_client.max_network_buffer_size), 0, 0, 0},
+   {"MaximumNetworkBufferSize", store_pint32, ITEM(res_client.max_network_buffer_size), 0, 0, 0},
 #ifdef DATA_ENCRYPTION
    {"PkiSignatures",         store_bool,    ITEM(res_client.pki_sign), 0, ITEM_DEFAULT, 0},
    {"PkiEncryption",         store_bool,    ITEM(res_client.pki_encrypt), 0, ITEM_DEFAULT, 0},
diff --git a/src/jcr.h b/src/jcr.h
index f8bf739..8ac46c2 100644
--- a/src/jcr.h
+++ b/src/jcr.h
@@ -368,7 +368,7 @@ public:
    POOLMEM *wstore_source;            /* Where write storage came from */
    POOLMEM *catalog_source;           /* Where catalog came from */
    POOLMEM *next_vol_list;            /* Volumes previously requested */
-   uint32_t replace;                  /* Replace option */
+   int32_t replace;                   /* Replace option */
    int32_t NumVols;                   /* Number of Volume used in pool */
    int32_t reschedule_count;          /* Number of times rescheduled */
    int32_t FDVersion;                 /* File daemon version number */
diff --git a/src/lib/alist.c b/src/lib/alist.c
index 132d1a0..ff88cf5 100644
--- a/src/lib/alist.c
+++ b/src/lib/alist.c
@@ -148,6 +148,9 @@ void alist::destroy()
       free(items);
       items = NULL;
    }
+   num_items = 0;
+   max_items = 0;
+   num_grow = 0;
 }
 
 #ifdef TEST_PROGRAM
diff --git a/src/lib/bsock.c b/src/lib/bsock.c
index ced1112..5cb5d63 100644
--- a/src/lib/bsock.c
+++ b/src/lib/bsock.c
@@ -483,7 +483,7 @@ bool BSOCK::fsend(const char *fmt, ...)
       va_start(arg_ptr, fmt);
       msglen = bvsnprintf(msg, maxlen, fmt, arg_ptr);
       va_end(arg_ptr);
-      if (msglen > 0 && msglen < (maxlen - 5)) {
+      if (msglen >= 0 && msglen < (maxlen - 5)) {
          break;
       }
       msg = realloc_pool_memory(msg, maxlen + maxlen / 2);
diff --git a/src/lib/mem_pool.c b/src/lib/mem_pool.c
index fd748e7..a2e7606 100644
--- a/src/lib/mem_pool.c
+++ b/src/lib/mem_pool.c
@@ -93,10 +93,10 @@ struct abufhead {
 
 static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 
-#ifdef SMARTALLOC
-
 #define HEAD_SIZE BALIGN(sizeof(struct abufhead))
 
+#ifdef SMARTALLOC
+
 POOLMEM *sm_get_pool_memory(const char *fname, int lineno, int pool)
 {
    struct abufhead *buf;
@@ -247,7 +247,7 @@ POOLMEM *get_pool_memory(int pool)
       return (POOLMEM *)((char *)buf+HEAD_SIZE);
    }
 
-   if ((buf=malloc(pool_ctl[pool].size+HEAD_SIZE)) == NULL) {
+   if ((buf=(struct abufhead*)malloc(pool_ctl[pool].size+HEAD_SIZE)) == NULL) {
       V(mutex);
       Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), pool_ctl[pool].size);
    }
@@ -268,7 +268,7 @@ POOLMEM *get_memory(int32_t size)
    struct abufhead *buf;
    int pool = 0;
 
-   if ((buf=malloc(size+HEAD_SIZE)) == NULL) {
+   if ((buf=(struct abufhead *)malloc(size+HEAD_SIZE)) == NULL) {
       Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), size);
    }
    buf->ablen = size;
diff --git a/src/lib/smartall.h b/src/lib/smartall.h
index 7878183..61ec9a9 100644
--- a/src/lib/smartall.h
+++ b/src/lib/smartall.h
@@ -76,7 +76,7 @@ extern int sm_check_rtn(const char *fname, int lineno, bool bufdump);
 #define actuallymalloc(x)    malloc(x)
 #define actuallycalloc(x,y)  calloc(x,y)
 #define actuallyrealloc(x,y) realloc(x,y)
-#define sm_dump(x)
+inline void sm_dump(int x, int y=0) {} /* with default arguments, we can't use a #define */
 #define sm_static(x)
 #define sm_new_owner(a, b, c)
 #define sm_malloc(f, l, n)     malloc(n)
@@ -84,9 +84,12 @@ extern int sm_check_rtn(const char *fname, int lineno, bool bufdump);
 #define sm_check(f, l, fl)
 #define sm_check_rtn(f, l, fl) 1
 
-extern void *b_malloc();
+extern void *b_malloc(const char *file, int line, size_t size);
 #define malloc(x) b_malloc(__FILE__, __LINE__, (x))
 
+#define Dsm_check(lvl)
+#define sm_check(f, l, fl)
+#define sm_check_rtn(f, l, fl) 1
 
 #endif
 
@@ -166,5 +169,4 @@ class SMARTALLOC
       }
 };
 #endif  /* SMARTALLOC */
-
 #endif  /* !SMARTALLOC_H */
diff --git a/src/qt-console/medialist/medialist.cpp b/src/qt-console/medialist/medialist.cpp
index b8a255f..04ce282 100644
--- a/src/qt-console/medialist/medialist.cpp
+++ b/src/qt-console/medialist/medialist.cpp
@@ -443,7 +443,7 @@ void MediaList::allVolumesFromPool()
 
 void MediaList::allVolumes()
 {
-   QString cmd = "update volume allfrompools";
+   QString cmd = "update volume fromallpools";
    consoleCommand(cmd);
    populateTree();
 }
diff --git a/src/version.h b/src/version.h
index 90d2813..2cc1f64 100644
--- a/src/version.h
+++ b/src/version.h
@@ -6,8 +6,8 @@
 
 /* Note: there can be only *one* VERSION in this file */
 #define VERSION "7.4.1"
-#define BDATE   "15 February 2016"
-#define LSMDATE "15Feb16"
+#define BDATE   "02 May 2016"
+#define LSMDATE "02May16"
 
 #define RELEASE 1   /* Use ONLY in rpms */
 
diff --git a/updatedb/update_mysql_tables.in b/updatedb/update_mysql_tables.in
index 4ae0513..08df0d8 100644
--- a/updatedb/update_mysql_tables.in
+++ b/updatedb/update_mysql_tables.in
@@ -143,7 +143,4 @@ END-OF-DATA
     fi
 fi
 
-
-END-OF-DATA
-
 exit 0
diff --git a/updatedb/update_mysql_tables_12_to_13.in b/updatedb/update_mysql_tables_12_to_13.in
deleted file mode 100644
index 2590e3d..0000000
--- a/updatedb/update_mysql_tables_12_to_13.in
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2000-2015 Kern Sibbald
-# License: BSD 2-Clause; see file LICENSE-FOSS
-#
-# Shell script to update MySQL
-#
-echo " "
-echo "This script will update a Bacula MySQL database from version 12 to 13"
-echo " which is needed to convert from Bacula"
-echo " "
-bindir=@MYSQL_BINDIR@
-PATH="$bindir:$PATH"
-db_name=${db_name:- at db_name@}
-
-mysql $* -D ${db_name} -e "select VersionId from Version\G" >/tmp/$$
-DBVERSION=`sed -n -e 's/^VersionId: \(.*\)$/\1/p' /tmp/$$`
-if [ $DBVERSION != 12 ] ; then
-   echo " "
-   echo "The existing database is version $DBVERSION !!"
-   echo "This script can only update an existing version 12 database to version 13."
-   echo "Error. Cannot upgrade this database."
-   echo " "
-   exit 1
-fi
-
-if mysql $* -f <<END-OF-DATA
-USE ${db_name};
-CREATE TABLE RestoreObject (
-   RestoreObjectId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
-   ObjectName BLOB NOT NULL,
-   RestoreObject LONGBLOB NOT NULL,
-   PluginName TINYBLOB NOT NULL,
-   ObjectLength INTEGER DEFAULT 0,
-   ObjectFullLength INTEGER DEFAULT 0,
-   ObjectIndex INTEGER DEFAULT 0,
-   ObjectType INTEGER DEFAULT 0,
-   FileIndex INTEGER UNSIGNED DEFAULT 0,
-   JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
-   ObjectCompression INTEGER DEFAULT 0,
-   PRIMARY KEY(RestoreObjectId),
-   INDEX (JobId)
-);
-
-CREATE INDEX jobhisto_jobid_idx ON JobHisto (JobId);
-UPDATE Version SET VersionId=13;
-END-OF-DATA
-then
-   echo "Update of Bacula MySQL tables succeeded."
-else
-   echo "Update of Bacula MySQL tables failed."
-fi
-exit 0
diff --git a/updatedb/update_mysql_tables_13_to_14.in b/updatedb/update_mysql_tables_13_to_14.in
deleted file mode 100644
index a51f171..0000000
--- a/updatedb/update_mysql_tables_13_to_14.in
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2000-2015 Kern Sibbald
-# License: BSD 2-Clause; see file LICENSE-FOSS
-#
-# Shell script to update MySQL
-#
-echo " "
-echo "This script will update a Bacula MySQL database from version 13 to 14"
-echo " which is needed to convert from Bacula"
-echo " "
-bindir=@MYSQL_BINDIR@
-PATH="$bindir:$PATH"
-db_name=${db_name:- at db_name@}
-
-mysql $* -D ${db_name} -e "select VersionId from Version\G" >/tmp/$$
-DBVERSION=`sed -n -e 's/^VersionId: \(.*\)$/\1/p' /tmp/$$`
-if [ $DBVERSION != 13 ] ; then
-   echo " "
-   echo "The existing database is version $DBVERSION !!"
-   echo "This script can only update an existing version 13 database to version 14."
-   echo "Error. Cannot upgrade this database."
-   echo " "
-   exit 1
-fi
-
-if mysql $* -f <<END-OF-DATA
-USE ${db_name};
-ALTER TABLE File ADD COLUMN DeltaSeq smallint default 0;
-UPDATE Version SET VersionId=14;
-END-OF-DATA
-then
-   echo "Update of Bacula MySQL tables succeeded."
-else
-   echo "Update of Bacula MySQL tables failed."
-fi
-exit 0
diff --git a/updatedb/update_postgresql_tables.in b/updatedb/update_postgresql_tables.in
index c3db92a..6690d60 100644
--- a/updatedb/update_postgresql_tables.in
+++ b/updatedb/update_postgresql_tables.in
@@ -63,7 +63,7 @@ CREATE TABLE RestoreObject (
    );
 
 CREATE INDEX restore_jobid_idx on RestoreObject(JobId);
-UPDATE Version SET VersionId=12;
+UPDATE Version SET VersionId=13;
 
 COMMIT;
 END-OF-DATA
diff --git a/updatedb/update_postgresql_tables_12_to_13.in b/updatedb/update_postgresql_tables_12_to_13.in
deleted file mode 100644
index 47e0809..0000000
--- a/updatedb/update_postgresql_tables_12_to_13.in
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2000-2015 Kern Sibbald
-# License: BSD 2-Clause; see file LICENSE-FOSS
-#
-# Shell script to update PostgreSQL tables from Bacula
-#
-echo " "
-echo "This script will update a Bacula PostgreSQL database from version 12 to 13"
-echo "	which is needed to convert from Bacula"
-echo " "
-
-bindir=@POSTGRESQL_BINDIR@
-PATH="$bindir:$PATH"
-db_name=${db_name:- at db_name@}
-
-DBVERSION=`psql -d ${db_name} -t --pset format=unaligned -c "select VersionId from Version" $*`
-if [ $DBVERSION != 12 ] ; then
-   echo " "
-   echo "The existing database is version $DBVERSION !!"
-   echo "This script can only update an existing version 12 database to version 13."
-   echo "Error. Cannot upgrade this database."
-   echo " "
-   exit 1
-fi
-
-if psql -f - -d ${db_name} $* <<END-OF-DATA
-BEGIN; -- Necessary for Bacula core
-CREATE TABLE RestoreObject (
-   RestoreObjectId SERIAL NOT NULL,
-   ObjectName TEXT NOT NULL,
-   RestoreObject BYTEA NOT NULL,
-   PluginName TEXT NOT NULL,
-   ObjectLength INTEGER DEFAULT 0,
-   ObjectFullLength INTEGER DEFAULT 0,
-   ObjectIndex INTEGER DEFAULT 0,
-   ObjectType INTEGER DEFAULT 0,
-   FileIndex INTEGER DEFAULT 0,
-   JobId INTEGER,
-   ObjectCompression INTEGER DEFAULT 0,
-   PRIMARY KEY(RestoreObjectId)
-   );
-
-CREATE INDEX restore_jobid_idx on RestoreObject(JobId);
-UPDATE Version SET VersionId=13;
-COMMIT;
-END-OF-DATA
-then
-   echo "Update of Bacula PostgreSQL tables succeeded."
-else
-   echo "Update of Bacula PostgreSQL tables failed."
-fi
-exit 0
diff --git a/updatedb/update_postgresql_tables_13_to_14.in b/updatedb/update_postgresql_tables_13_to_14.in
deleted file mode 100644
index 1ffdc21..0000000
--- a/updatedb/update_postgresql_tables_13_to_14.in
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2000-2015 Kern Sibbald
-# License: BSD 2-Clause; see file LICENSE-FOSS
-#
-# Shell script to update PostgreSQL tables from Bacula
-#
-echo " "
-echo "This script will update a Bacula PostgreSQL database from version 13 to 14"
-echo "	which is needed to convert from Bacula"
-echo " "
-
-bindir=@POSTGRESQL_BINDIR@
-PATH="$bindir:$PATH"
-db_name=${db_name:- at db_name@}
-
-DBVERSION=`psql -d ${db_name} -t --pset format=unaligned -c "select VersionId from Version" $*`
-if [ $DBVERSION != 13 ] ; then
-   echo " "
-   echo "The existing database is version $DBVERSION !!"
-   echo "This script can only update an existing version 13 database to version 14."
-   echo "Error. Cannot upgrade this database."
-   echo " "
-   exit 1
-fi
-
-if psql -f - -d ${db_name} $* <<END-OF-DATA
-BEGIN; -- Necessary for Bacula core
-ALTER TABLE File ADD COLUMN DeltaSeq smallint default 0;
-UPDATE Version SET VersionId=14;
-COMMIT;
-END-OF-DATA
-then
-   echo "Update of Bacula PostgreSQL tables succeeded."
-else
-   echo "Update of Bacula PostgreSQL tables failed."
-fi
-exit 0
diff --git a/updatedb/update_sqlite3_tables.in b/updatedb/update_sqlite3_tables.in
index 0f1f15a..bd468c6 100644
--- a/updatedb/update_sqlite3_tables.in
+++ b/updatedb/update_sqlite3_tables.in
@@ -3,11 +3,11 @@
 # Copyright (C) 2000-2015 Kern Sibbald
 # License: BSD 2-Clause; see file LICENSE-FOSS
 #
-# Shell script to update MySQL tables from Bacula Community version 
+# Shell script to update SQLite tables from Bacula Community version 
 #  5.0.x, 5.2.x, 7.0.x
 #
 echo " "
-echo "This script will update a Bacula MySQL database from version 12-14 to 15"
+echo "This script will update a Bacula SQLite database from version 12-14 to 15"
 echo " "
 echo "Depending on the current version of your catalog, you may have to run this script"
 echo "	multiple times"
@@ -76,19 +76,70 @@ fi
 
 if [ "$DBVERSION" = 14 ] ; then
     sqlite3 $* ${db_name}.db  <<END-OF-DATA
+BEGIN;
+
 INSERT INTO Status (JobStatus,JobStatusLong,Severity) VALUES
    ('I', 'Incomplete Job',25);
-ALTER TABLE Media ADD COLUMN VolABytes BIGINT UNSIGNED DEFAULT 0;
-ALTER TABLE Media ADD COLUMN VolAPadding BIGINT UNSIGNED DEFAULT 0;
-ALTER TABLE Media ADD COLUMN VolHoleBytes BIGINT UNSIGNED DEFAULT 0;
-ALTER TABLE Media ADD COLUMN VolHoles INTEGER UNSIGNED DEFAULT 0;
-ALTER TABLE Media CHANGE VolWrites VolWrites BIGINT UNSIGNED;
+
+CREATE TABLE new_Media (
+   MediaId INTEGER,
+   VolumeName VARCHAR(128) NOT NULL,
+   Slot INTEGER DEFAULT 0,
+   PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   MediaType VARCHAR(128) NOT NULL,
+   MediaTypeId INTEGER UNSIGNED REFERENCES MediaType DEFAULT 0,
+   LabelType TINYINT DEFAULT 0,
+   FirstWritten DATETIME DEFAULT 0,
+   LastWritten DATETIME DEFAULT 0,
+   LabelDate DATETIME DEFAULT 0,
+   VolJobs INTEGER UNSIGNED DEFAULT 0,
+   VolFiles INTEGER UNSIGNED DEFAULT 0,
+   VolBlocks INTEGER UNSIGNED DEFAULT 0,
+   VolMounts INTEGER UNSIGNED DEFAULT 0,
+   VolBytes BIGINT UNSIGNED DEFAULT 0,
+   VolParts INTEGER UNSIGNED DEFAULT 0,
+   VolErrors INTEGER UNSIGNED DEFAULT 0,
+   VolWrites BIGINT UNSIGNED DEFAULT 0,
+   VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
+   VolStatus VARCHAR(20) NOT NULL,
+   Enabled TINYINT DEFAULT 1,
+   Recycle TINYINT DEFAULT 0,
+   ActionOnPurge     TINYINT    DEFAULT 0,
+   VolRetention BIGINT UNSIGNED DEFAULT 0,
+   VolUseDuration BIGINT UNSIGNED DEFAULT 0,
+   MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
+   MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
+   MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
+   InChanger TINYINT DEFAULT 0,
+   StorageId INTEGER UNSIGNED REFERENCES Storage DEFAULT 0,
+   DeviceId INTEGER UNSIGNED REFERENCES Device DEFAULT 0,
+   MediaAddressing TINYINT DEFAULT 0,
+   VolReadTime BIGINT UNSIGNED DEFAULT 0,
+   VolWriteTime BIGINT UNSIGNED DEFAULT 0,
+   EndFile INTEGER UNSIGNED DEFAULT 0,
+   EndBlock INTEGER UNSIGNED DEFAULT 0,
+   LocationId INTEGER UNSIGNED REFERENCES Location DEFAULT 0,
+   RecycleCount INTEGER UNSIGNED DEFAULT 0,
+   InitialWrite DATETIME DEFAULT 0,
+   ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   Comment TEXT,
+   VolABytes BIGINT UNSIGNED DEFAULT 0,
+   VolAPadding BIGINT UNSIGNED DEFAULT 0,
+   VolHoleBytes BIGINT UNSIGNED DEFAULT 0,
+   VolHoles INTEGER UNSIGNED DEFAULT 0,
+   PRIMARY KEY(MediaId)
+   );
+INSERT INTO new_Media (MediaId, VolumeName, Slot, PoolId, MediaType, MediaTypeId, LabelType, FirstWritten, LastWritten, LabelDate, VolJobs, VolFiles, VolBlocks, VolMounts, VolBytes, VolParts, VolErrors, VolWrites, VolCapacityBytes, VolStatus, Enabled, Recycle, ActionOnPurge, VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles, MaxVolBytes, InChanger, StorageId, DeviceId, MediaAddressing, VolReadTime, VolWriteTime, EndFile, EndBlock, LocationId, RecycleCount, InitialWrite, ScratchPoolId [...]
+DROP TABLE Media;
+ALTER TABLE new_Media RENAME TO Media;
+CREATE INDEX inx8 ON Media (PoolId);
 
 CREATE TABLE Snapshot (
   SnapshotId	  INTEGER UNSIGNED AUTO_INCREMENT,
   Name		  TINYBLOB NOT NULL,
   JobId 	  INTEGER UNSIGNED DEFAULT 0,
-  FileSetId INTEGER UNSIGNED DEFAULT 0;
+  FileSetId INTEGER UNSIGNED DEFAULT 0,
   CreateTDate	  BIGINT   NOT NULL,
   CreateDate	  DATETIME NOT NULL,
   ClientId	  INTEGER DEFAULT 0,
@@ -100,13 +151,13 @@ CREATE TABLE Snapshot (
   primary key (SnapshotId)
 );
 
-CREATE UNIQUE INDEX snapshot_idx ON Snapshot (Device(255), Volume(255), Name(255));
+CREATE UNIQUE INDEX snapshot_idx ON Snapshot (Device, Volume, Name);
 
 CREATE INDEX jobtdate_idx on JobHisto (JobTDate);
 
 UPDATE Version SET VersionId=15;
+
+COMMIT;
 END-OF-DATA
 DBVERSION=15
 fi
-
-END-OF-DATA

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-bacula/bacula.git



More information about the pkg-bacula-commits mailing list