Changeset: 1ccce1c0ec18 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1ccce1c0ec18
Modified Files:
        gdk/gdk_logger.c
Branch: transaction-replication
Log Message:

Pull out finding the correct log BAT for the sequence ID to a separate function


diffs (84 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1222,6 +1222,39 @@ logger_find_persistent_catalog(logger *l
        return 1;
 }
 
+static void
+logger_find_logbat(logger* lg, int id, log_bid seqs_id) {
+       bat seqs_val = logger_find_bat(lg, "seqs_val");
+       bat snapshots_bid = logger_find_bat(lg, "snapshots_bid");
+       bat snapshots_tid = logger_find_bat(lg, "snapshots_tid");
+       lg->seqs_id = BATdescriptor(seqs_id);
+       if (lg->seqs_id == 0) {
+               logger_fatal("Logger_new: inconsistent database, seqs_id does 
not exist", 0, 0, 0);
+       }
+
+       lg->seqs_val = BATdescriptor(seqs_val);
+       if (lg->seqs_val == 0) {
+               logger_fatal("Logger_new: inconsistent database, seqs_val does 
not exist", 0, 0, 0);
+       }
+
+       if (BATcount(lg->seqs_id)) {
+               BUN p = BUNfndT(lg->seqs_id, &id);
+               lg->id = *(lng *) Tloc(lg->seqs_val, p);
+       } else {
+               BUNappend(lg->seqs_id, &id, FALSE);
+               BUNappend(lg->seqs_val, &lg->id, FALSE);
+       }
+       lg->snapshots_bid = BATdescriptor(snapshots_bid);
+       if (lg->snapshots_bid == 0) {
+               logger_fatal("Logger_new: inconsistent database, snapshots_bid 
does not exist", 0, 0, 0);
+       }
+
+       lg->snapshots_tid = BATdescriptor(snapshots_tid);
+       if (lg->snapshots_tid == 0) {
+               logger_fatal("Logger_new: inconsistent database, snapshots_tid 
does not exist", 0, 0, 0);
+       }
+}
+
 static logger *
 logger_new(int debug, char *fn, logger_settings *log_settings, int version, 
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp)
 {
@@ -1312,6 +1345,7 @@ logger_new(int debug, char *fn, logger_s
                        goto error;
                }
        }
+
        seqs_id = logger_find_bat(lg, "seqs_id");
        if (seqs_id == 0) {
                lg->seqs_id = logbat_new(TYPE_int, 1);
@@ -1343,30 +1377,9 @@ logger_new(int debug, char *fn, logger_s
 
                bm_subcommit(lg->catalog_bid, lg->catalog_nme, lg->catalog_bid, 
lg->catalog_nme, NULL, lg->debug);
        } else {
-               bat seqs_val = logger_find_bat(lg, "seqs_val");
-               bat snapshots_bid = logger_find_bat(lg, "snapshots_bid");
-               bat snapshots_tid = logger_find_bat(lg, "snapshots_tid");
+               logger_find_logbat(lg, id, seqs_id);
+       }
 
-               lg->seqs_id = BATdescriptor(seqs_id);
-               if (lg->seqs_id == 0)
-                       logger_fatal("Logger_new: inconsistent database, 
seqs_id does not exist",0,0,0);
-               lg->seqs_val = BATdescriptor(seqs_val);
-               if (lg->seqs_val == 0)
-                       logger_fatal("Logger_new: inconsistent database, 
seqs_val does not exist",0,0,0);
-               if (BATcount(lg->seqs_id)) {
-                       BUN p = BUNfndT(lg->seqs_id, &id);
-                       lg->id = *(lng *) Tloc(lg->seqs_val, p);
-               } else {
-                       BUNappend(lg->seqs_id, &id, FALSE);
-                       BUNappend(lg->seqs_val, &lg->id, FALSE);
-               }
-               lg->snapshots_bid = BATdescriptor(snapshots_bid);
-               if (lg->snapshots_bid == 0)
-                       logger_fatal("Logger_new: inconsistent database, 
snapshots_bid does not exist",0,0,0);
-               lg->snapshots_tid = BATdescriptor(snapshots_tid);
-               if (lg->snapshots_tid == 0)
-                       logger_fatal("Logger_new: inconsistent database, 
snapshots_tid does not exist",0,0,0);
-       }
        lg->freed = BATnew(TYPE_void, TYPE_int, 1);
        BATseqbase(lg->freed, 0);
        snprintf(bak, BUFSIZ, "%s_freed", fn);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to