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]

Reply via email to