]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/sql.c
Update version date
[bacula/bacula] / bacula / src / cats / sql.c
index e4f88f61a92a00208c586088495b9216b7438707..2c4fa431eea984f7731af79abf59191dac2725d6 100644 (file)
@@ -127,17 +127,17 @@ int db_list_handler(void *ctx, int num_fields, char **row)
 }
 
 /*
- *  * specific context passed from db_check_max_connections to db_max_connections_handler.
- *   */
+ * specific context passed from db_check_max_connections to db_max_connections_handler.
+ */
 struct max_connections_context {
    B_DB *db;
    uint32_t nr_connections;
 };
 
 /*
- *  * Called here to retrieve an integer from the database
- *   */
-static int db_max_connections_handler(void *ctx, int num_fields, char **row)
+ * Called here to retrieve an integer from the database
+ */
+static inline int db_max_connections_handler(void *ctx, int num_fields, char **row)
 {
    struct max_connections_context *context;
    uint32_t index;
@@ -160,8 +160,8 @@ static int db_max_connections_handler(void *ctx, int num_fields, char **row)
 }
 
 /*
- *  * Check catalog max_connections setting
- *   */
+ * Check catalog max_connections setting
+ */
 bool db_check_max_connections(JCR *jcr, B_DB *mdb, uint32_t max_concurrent_jobs)
 {
    struct max_connections_context context;
@@ -300,7 +300,8 @@ UpdateDB(const char *file, int line, JCR *jcr, B_DB *mdb, char *cmd)
    return 1;
 }
 
-/* Utility routine for deletes
+/*
+ * Utility routine for deletes
  *
  * Returns: -1 on error
  *           n number of rows affected
@@ -350,8 +351,8 @@ int get_sql_record_max(JCR *jcr, B_DB *mdb)
 }
 
 /*
- *  * Return pre-edited error message
- *   */
+ * Return pre-edited error message
+ */
 char *db_strerror(B_DB *mdb)
 {
    return mdb->errmsg;
@@ -431,16 +432,17 @@ static int max_length(int max_length)
 /*
  * List dashes as part of header for listing SQL results in a table
  */
-void
-list_dashes(B_DB *mdb, DB_LIST_HANDLER *send, void *ctx)
+void list_dashes(B_DB *mdb, DB_LIST_HANDLER *send, void *ctx)
 {
    SQL_FIELD  *field;
    int i, j;
    int len;
+   int num_fields;
 
    sql_field_seek(mdb, 0);
    send(ctx, "+");
-   for (i = 0; i < sql_num_fields(mdb); i++) {
+   num_fields = sql_num_fields(mdb);
+   for (i = 0; i < num_fields; i++) {
       field = sql_fetch_field(mdb);
       if (!field) {
          break;
@@ -465,6 +467,7 @@ int list_result(void *vctx, int nb_col, char **row)
 {
    SQL_FIELD *field;
    int i, col_len, max_len = 0;
+   int num_fields;
    char buf[2000], ewc[30];
 
    LIST_CTX *pctx = (LIST_CTX *)vctx;
@@ -474,13 +477,14 @@ int list_result(void *vctx, int nb_col, char **row)
    void *ctx = pctx->ctx;
    JCR *jcr = pctx->jcr;
 
+   num_fields = sql_num_fields(mdb);
    if (!pctx->once) {
       pctx->once = true;
 
-      Dmsg1(800, "list_result starts looking at %d fields\n", sql_num_fields(mdb));
+      Dmsg1(800, "list_result starts looking at %d fields\n", num_fields);
       /* determine column display widths */
       sql_field_seek(mdb, 0);
-      for (i = 0; i < sql_num_fields(mdb); i++) {
+      for (i = 0; i < num_fields; i++) {
          Dmsg1(800, "list_result processing field %d\n", i);
          field = sql_fetch_field(mdb);
          if (!field) {
@@ -512,8 +516,7 @@ int list_result(void *vctx, int nb_col, char **row)
          goto vertical_list;
       }
 
-      Dmsg1(800, "list_result starts second loop looking at %d fields\n", 
-            sql_num_fields(mdb));
+      Dmsg1(800, "list_result starts second loop looking at %d fields\n", num_fields);
 
       /* Keep the result to display the same line at the end of the table */
       list_dashes(mdb, last_line_handler, pctx);
@@ -521,7 +524,7 @@ int list_result(void *vctx, int nb_col, char **row)
 
       send(ctx, "|");
       sql_field_seek(mdb, 0);
-      for (i = 0; i < sql_num_fields(mdb); i++) {
+      for (i = 0; i < num_fields; i++) {
          Dmsg1(800, "list_result looking at field %d\n", i);
          field = sql_fetch_field(mdb);
          if (!field) {
@@ -535,12 +538,11 @@ int list_result(void *vctx, int nb_col, char **row)
       list_dashes(mdb, send, ctx);      
    }
    
-   Dmsg1(800, "list_result starts third loop looking at %d fields\n", 
-         sql_num_fields(mdb));
+   Dmsg1(800, "list_result starts third loop looking at %d fields\n", num_fields);
 
    sql_field_seek(mdb, 0);
    send(ctx, "|");
-   for (i = 0; i < sql_num_fields(mdb); i++) {
+   for (i = 0; i < num_fields; i++) {
       field = sql_fetch_field(mdb);
       if (!field) {
          break;
@@ -561,10 +563,10 @@ int list_result(void *vctx, int nb_col, char **row)
 
 vertical_list:
 
-   Dmsg1(800, "list_result starts vertical list at %d fields\n", sql_num_fields(mdb));
+   Dmsg1(800, "list_result starts vertical list at %d fields\n", num_fields);
 
    sql_field_seek(mdb, 0);
-   for (i = 0; i < sql_num_fields(mdb); i++) {
+   for (i = 0; i < num_fields; i++) {
       field = sql_fetch_field(mdb);
       if (!field) {
          break;
@@ -585,26 +587,28 @@ vertical_list:
 
 /*
  * If full_list is set, we list vertically, otherwise, we
- * list on one line horizontally.
+ *  list on one line horizontally.
+ * Return number of rows
  */
-void
-list_result(JCR *jcr, B_DB *mdb, DB_LIST_HANDLER *send, void *ctx, e_list_type type)
+int list_result(JCR *jcr, B_DB *mdb, DB_LIST_HANDLER *send, void *ctx, e_list_type type)
 {
    SQL_FIELD *field;
    SQL_ROW row;
    int i, col_len, max_len = 0;
+   int num_fields;
    char buf[2000], ewc[30];
 
    Dmsg0(800, "list_result starts\n");
    if (sql_num_rows(mdb) == 0) {
       send(ctx, _("No results to list.\n"));
-      return;
+      return sql_num_rows(mdb);
    }
 
-   Dmsg1(800, "list_result starts looking at %d fields\n", sql_num_fields(mdb));
+   num_fields = sql_num_fields(mdb);
+   Dmsg1(800, "list_result starts looking at %d fields\n", num_fields);
    /* determine column display widths */
    sql_field_seek(mdb, 0);
-   for (i = 0; i < sql_num_fields(mdb); i++) {
+   for (i = 0; i < num_fields; i++) {
       Dmsg1(800, "list_result processing field %d\n", i);
       field = sql_fetch_field(mdb);
       if (!field) {
@@ -634,11 +638,11 @@ list_result(JCR *jcr, B_DB *mdb, DB_LIST_HANDLER *send, void *ctx, e_list_type t
       goto vertical_list;
    }
 
-   Dmsg1(800, "list_result starts second loop looking at %d fields\n", sql_num_fields(mdb));
+   Dmsg1(800, "list_result starts second loop looking at %d fields\n", num_fields);
    list_dashes(mdb, send, ctx);
    send(ctx, "|");
    sql_field_seek(mdb, 0);
-   for (i = 0; i < sql_num_fields(mdb); i++) {
+   for (i = 0; i < num_fields; i++) {
       Dmsg1(800, "list_result looking at field %d\n", i);
       field = sql_fetch_field(mdb);
       if (!field) {
@@ -651,11 +655,11 @@ list_result(JCR *jcr, B_DB *mdb, DB_LIST_HANDLER *send, void *ctx, e_list_type t
    send(ctx, "\n");
    list_dashes(mdb, send, ctx);
 
-   Dmsg1(800, "list_result starts third loop looking at %d fields\n", sql_num_fields(mdb));
+   Dmsg1(800, "list_result starts third loop looking at %d fields\n", num_fields);
    while ((row = sql_fetch_row(mdb)) != NULL) {
       sql_field_seek(mdb, 0);
       send(ctx, "|");
-      for (i = 0; i < sql_num_fields(mdb); i++) {
+      for (i = 0; i < num_fields; i++) {
          field = sql_fetch_field(mdb);
          if (!field) {
             break;
@@ -674,14 +678,14 @@ list_result(JCR *jcr, B_DB *mdb, DB_LIST_HANDLER *send, void *ctx, e_list_type t
       send(ctx, "\n");
    }
    list_dashes(mdb, send, ctx);
-   return;
+   return sql_num_rows(mdb);
 
 vertical_list:
 
-   Dmsg1(800, "list_result starts vertical list at %d fields\n", sql_num_fields(mdb));
+   Dmsg1(800, "list_result starts vertical list at %d fields\n", num_fields);
    while ((row = sql_fetch_row(mdb)) != NULL) {
       sql_field_seek(mdb, 0);
-      for (i = 0; i < sql_num_fields(mdb); i++) {
+      for (i = 0; i < num_fields; i++) {
          field = sql_fetch_field(mdb);
          if (!field) {
             break;
@@ -698,7 +702,7 @@ vertical_list:
       }
       send(ctx, "\n");
    }
-   return;
+   return sql_num_rows(mdb);
 }
 
 /*