]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/sql_create.c
Correct compile error
[bacula/bacula] / bacula / src / cats / sql_create.c
index 5909e4420f80c21e11b56b9039231c5de1d5abec..95d4afdf8564a2de8b087db4e2cb37c393ff0a87 100644 (file)
@@ -7,8 +7,8 @@
    many others, a complete list can be found in the file AUTHORS.
    This program is Free Software; you can redistribute it and/or
    modify it under the terms of version two of the GNU General Public
-   License as published by the Free Software Foundation plus additions
-   that are listed in the file LICENSE.
+   License as published by the Free Software Foundation and included
+   in the file LICENSE.
 
    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -686,7 +686,10 @@ bool db_create_fileset_record(JCR *jcr, B_DB *mdb, FILESET_DBR *fsr)
  */
 bool my_batch_start(JCR *jcr, B_DB *mdb)
 {
-   return db_sql_query(mdb,
+   bool ok;
+
+   db_lock(mdb);
+   ok =  db_sql_query(mdb,
              " CREATE TEMPORARY TABLE batch "
              "        (fileindex integer,   "
              "        jobid integer,        "
@@ -694,6 +697,8 @@ bool my_batch_start(JCR *jcr, B_DB *mdb)
              "        name blob,            "
              "        lstat tinyblob,       "
              "        md5 tinyblob)         ",NULL, NULL);
+   db_unlock(mdb);
+   return ok;
 }
 
 /* 
@@ -709,8 +714,8 @@ bool my_batch_insert(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
    mdb->esc_name = check_pool_memory_size(mdb->esc_name, mdb->fnl*2+1);
    db_escape_string(mdb->esc_name, mdb->fname, mdb->fnl);
 
-   mdb->esc_name2 = check_pool_memory_size(mdb->esc_name2, mdb->pnl*2+1);
-   db_escape_string(mdb->esc_name2, mdb->path, mdb->pnl);
+   mdb->esc_path = check_pool_memory_size(mdb->esc_path, mdb->pnl*2+1);
+   db_escape_string(mdb->esc_path, mdb->path, mdb->pnl);
 
    if (ar->Digest == NULL || ar->Digest[0] == 0) {
       digest = "0";
@@ -719,7 +724,7 @@ bool my_batch_insert(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
    }
 
    len = Mmsg(mdb->cmd, "INSERT INTO batch VALUES (%u,%s,'%s','%s','%s','%s')",
-              ar->FileIndex, edit_int64(ar->JobId,ed1), mdb->esc_name2
+              ar->FileIndex, edit_int64(ar->JobId,ed1), mdb->esc_path
               mdb->esc_name, ar->attr, digest);
 
    return INSERT_DB(jcr, mdb, mdb->cmd);
@@ -748,13 +753,13 @@ bool my_batch_end(JCR *jcr, B_DB *mdb, const char *error)
  */
 bool db_write_batch_file_records(JCR *jcr)
 {
-   Dmsg0(50,"db_create_file_record : no files\n");
-
    if (!jcr->db_batch) {         /* no files to backup ? */
       Dmsg0(50,"db_create_file_record : no files\n");
       return true;
    }
 
+   Dmsg1(50,"db_create_file_record changes=%u\n",jcr->db_batch->changes);
+
    if (!sql_batch_end(jcr, jcr->db_batch, NULL)) {
       Jmsg(jcr, M_FATAL, 0, "Bad batch end %s\n", jcr->db_batch->errmsg);
       return false;
@@ -805,7 +810,7 @@ bool db_write_batch_file_records(JCR *jcr)
        "  FROM batch                                                      "
        "    JOIN Path ON (batch.Path = Path.Path)                         "
        "    JOIN Filename ON (batch.Name = Filename.Name)                 ",
-                    NULL,NULL))
+                     NULL,NULL))
    {
       Jmsg(jcr, M_FATAL, 0, "Can't fill File table %s\n", jcr->db_batch->errmsg);
       return false;
@@ -831,6 +836,7 @@ bool db_create_file_attributes_record(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
    Dmsg0(dbglevel, "put_file_into_catalog\n");
 
    if (!jcr->db_batch) {
+      Dmsg2(100, "Opendb attr. Stream=%d fname=%s\n", ar->Stream, ar->fname);
       jcr->db_batch = db_init_database(jcr, 
                                       mdb->db_name, 
                                       mdb->db_user,
@@ -851,11 +857,12 @@ bool db_create_file_attributes_record(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
       
       if (!sql_batch_start(jcr, jcr->db_batch)) {
          Jmsg(jcr, M_FATAL, 0, 
-             "Can't start batch mode %s", db_strerror(jcr->db_batch));
+              "Can't start batch mode %s", db_strerror(jcr->db_batch));
          return false;
       }
+      Dmsg3(100, "initdb ref=%d connected=%d db=%p\n", jcr->db_batch->ref_count,
+            jcr->db_batch->connected, jcr->db_batch->db);
    }
-
    B_DB *bdb = jcr->db_batch;
 
    /*