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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list