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