Changeset: 78172af0a9d1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/78172af0a9d1
Modified Files:
        gdk/gdk_batop.c
Branch: Jan2022
Log Message:

Set nonil property when we know it should hold.


diffs (39 lines):

diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -2924,11 +2924,30 @@ BATcount_no_nil(BAT *b, BAT *s)
                }
                break;
        }
-       if (cnt == BATcount(b)) {
-               /* we learned something */
-               b->tnonil = true;
-               assert(!b->tnil);
-               b->tnil = false;
+       if (cnt == bi.count) {
+               MT_lock_set(&b->theaplock);
+               if (cnt == BATcount(b) && bi.h == b->theap) {
+                       /* we learned something */
+                       b->batDirtydesc = true;
+                       b->tnonil = true;
+                       assert(!b->tnil);
+                       b->tnil = false;
+               }
+               MT_lock_unset(&b->theaplock);
+               bat pbid = VIEWtparent(b);
+               if (pbid) {
+                       BAT *pb = BBP_cache(pbid);
+                       MT_lock_set(&pb->theaplock);
+                       if (cnt == BATcount(pb) &&
+                           bi.h == pb->theap &&
+                           !pb->tnonil) {
+                               pb->batDirtydesc = true;
+                               pb->tnonil = true;
+                               assert(!pb->tnil);
+                               pb->tnil = false;
+                       }
+                       MT_lock_unset(&pb->theaplock);
+               }
        }
        bat_iterator_end(&bi);
        return cnt;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to