]> 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 524c7de52dd0c7cd4ea665182c6a0505ae82d56f..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,14 +686,19 @@ bool db_create_fileset_record(JCR *jcr, B_DB *mdb, FILESET_DBR *fsr)
  */
 bool my_batch_start(JCR *jcr, B_DB *mdb)
 {
-   return QUERY_DB(jcr, mdb,
+   bool ok;
+
+   db_lock(mdb);
+   ok =  db_sql_query(mdb,
              " CREATE TEMPORARY TABLE batch "
              "        (fileindex integer,   "
              "        jobid integer,        "
              "        path blob,            "
              "        name blob,            "
              "        lstat tinyblob,       "
-             "        md5 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,10 +724,10 @@ 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->path, 
-              mdb->fname, ar->attr, digest);
+              ar->FileIndex, edit_int64(ar->JobId,ed1), mdb->esc_path, 
+              mdb->esc_name, ar->attr, digest);
 
-   return QUERY_DB(jcr, mdb, mdb->cmd);
+   return INSERT_DB(jcr, mdb, mdb->cmd);
 }
 
 /* set error to something to abort operation */
@@ -733,7 +738,7 @@ bool my_batch_insert(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
 bool my_batch_end(JCR *jcr, B_DB *mdb, const char *error)
 {
    
-   Dmsg0(50, "sql_batch_end started");
+   Dmsg0(50, "sql_batch_end started\n");
 
    if (mdb) {
       mdb->status = 0;
@@ -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");
-
    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;
@@ -765,52 +770,53 @@ bool db_write_batch_file_records(JCR *jcr)
    }
 
    /* we have to lock tables */
-   if (!QUERY_DB(jcr, jcr->db_batch, sql_batch_lock_path_query)) {
+   if (!db_sql_query(jcr->db_batch, sql_batch_lock_path_query, NULL, NULL)) {
       Jmsg(jcr, M_FATAL, 0, "Can't lock Path table %s\n", jcr->db_batch->errmsg);
       return false;
    }
 
-   if (!QUERY_DB(jcr, jcr->db_batch, sql_batch_fill_path_query)) {
+   if (!db_sql_query(jcr->db_batch, sql_batch_fill_path_query, NULL, NULL)) {
       Jmsg(jcr, M_FATAL, 0, "Can't fill Path table %s\n",jcr->db_batch->errmsg);
-      QUERY_DB(jcr, jcr->db_batch, sql_batch_unlock_tables_query);
+      db_sql_query(jcr->db_batch, sql_batch_unlock_tables_query, NULL, NULL);
       return false;
    }
    
-   if (!QUERY_DB(jcr, jcr->db_batch, sql_batch_unlock_tables_query)) {
+   if (!db_sql_query(jcr->db_batch, sql_batch_unlock_tables_query,NULL,NULL)) {
       Jmsg(jcr, M_FATAL, 0, "Can't unlock Path table %s\n", jcr->db_batch->errmsg);
       return false;      
    }
 
    /* we have to lock tables */
-   if (!QUERY_DB(jcr, jcr->db_batch, sql_batch_lock_filename_query)) {
+   if (!db_sql_query(jcr->db_batch,sql_batch_lock_filename_query,NULL, NULL)) {
       Jmsg(jcr, M_FATAL, 0, "Can't lock Filename table %s\n", jcr->db_batch->errmsg);
       return false;
    }
    
-   if (!QUERY_DB(jcr, jcr->db_batch, sql_batch_fill_filename_query)) {
+   if (!db_sql_query(jcr->db_batch,sql_batch_fill_filename_query, NULL,NULL)) {
       Jmsg(jcr,M_FATAL,0,"Can't fill Filename table %s\n",jcr->db_batch->errmsg);
       QUERY_DB(jcr, jcr->db_batch, sql_batch_unlock_tables_query);
       return false;            
    }
 
-   if (!QUERY_DB(jcr, jcr->db_batch, sql_batch_unlock_tables_query)) {
+   if (!db_sql_query(jcr->db_batch, sql_batch_unlock_tables_query,NULL,NULL)) {
       Jmsg(jcr, M_FATAL, 0, "Can't unlock Filename table %s\n", jcr->db_batch->errmsg);
       return false;
    }
    
-   if (!QUERY_DB(jcr, jcr->db_batch, 
+   if (!db_sql_query(jcr->db_batch, 
        " INSERT INTO File (FileIndex, JobId, PathId, FilenameId, LStat, MD5)"
        "  SELECT batch.FileIndex, batch.JobId, Path.PathId,               " 
        "         Filename.FilenameId,batch.LStat, batch.MD5               "
        "  FROM batch                                                      "
        "    JOIN Path ON (batch.Path = Path.Path)                         "
-       "    JOIN Filename ON (batch.Name = Filename.Name)                 "))
+       "    JOIN Filename ON (batch.Name = Filename.Name)                 ",
+                     NULL,NULL))
    {
       Jmsg(jcr, M_FATAL, 0, "Can't fill File table %s\n", jcr->db_batch->errmsg);
       return false;
    }
 
-   QUERY_DB(jcr, jcr->db_batch, "DROP TABLE batch");
+   db_sql_query(jcr->db_batch, "DROP TABLE batch", NULL,NULL);
 
    return true;
 }
@@ -830,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,
@@ -849,11 +856,13 @@ 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, "%s", db_strerror(jcr->db_batch));
+         Jmsg(jcr, M_FATAL, 0, 
+              "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;
 
    /*
@@ -871,9 +880,10 @@ bool db_create_file_attributes_record(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
 
 
 /*
-   if (jcr->changes > 100000) {
+   if (bdb->changes > 100000) {
       db_write_batch_file_records(jcr);
-      jcr->changes = 0;
+      bdb->changes = 0;
+      sql_batch_start(jcr, bdb);
    }
 */