Changeset: 5873fe7ba498 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5873fe7ba498
Modified Files:
sql/storage/bat/bat_storage.c
Branch: smart-merge-jan22
Log Message:
Implement early exit in merge_segments.
diffs (24 lines):
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -408,12 +408,15 @@ merge_segments(storage *s, sql_trans *tr
int merge = 1;
for (int i = 0; active[i] != 0; i++) {
assert(active[i] != seg->ts &&
active[i] != cur->ts);
- if ((active[i] > seg->ts && active[i] <
cur->ts) ||
- (active[i] < seg->ts &&
active[i] > cur->ts)) {
- /* cannot safely merge since
there is an active transaction between the segments */
- merge = 0;
+ if (seg->ts < active[i] && cur->ts <
active[i])
break;
- }
+ if (seg->ts > active[i] && cur->ts >
active[i])
+ continue;
+
+ assert((active[i] > seg->ts &&
active[i] < cur->ts) || (active[i] < seg->ts && active[i] > cur->ts));
+ /* cannot safely merge since there is
an active transaction between the segments */
+ merge = false;
+ break;
}
/* merge segments */
if (merge) {
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]