Changeset: 200b9469f91d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/200b9469f91d
Modified Files:
        clients/Tests/exports.stable.out
        gdk/gdk_bbp.c
        gdk/gdk_bbp.h
        sql/storage/bat/bat_storage.c
Branch: Jul2021
Log Message:

New function BBPcold to clear BBPHOT status bit.
Also don't clear the bit for bats in the transient farm.


diffs (56 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -206,6 +206,7 @@ BAT *BATunmask(BAT *b);
 BBPrec *BBP[N_BBPINIT];
 gdk_return BBPaddfarm(const char *dirname, uint32_t rolemask, bool logerror);
 void BBPclear(bat bid);
+void BBPcold(bat i);
 BAT *BBPdescriptor(bat b);
 int BBPfix(bat b);
 bat BBPindex(const char *nme);
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -2112,6 +2112,18 @@ BBPspin(bat i, const char *s, unsigned e
        }
 }
 
+void
+BBPcold(bat i)
+{
+       if (!is_bat_nil(i)) {
+               BAT *b = BBP_cache(i);
+               if (b == NULL)
+                       b = BBP_desc(i);
+               if (b == NULL || b->batRole == PERSISTENT)
+                       BBP_status_off(i, BBPHOT);
+       }
+}
+
 /* This function can fail if the input parameter (i) is incorrect
  * (unlikely), of if the bat is a view, this is a physical (not
  * logical) incref (i.e. called through BBPfix(), and it is the first
diff --git a/gdk/gdk_bbp.h b/gdk/gdk_bbp.h
--- a/gdk/gdk_bbp.h
+++ b/gdk/gdk_bbp.h
@@ -80,6 +80,7 @@ gdk_export int BBPretain(bat b);
 gdk_export int BBPrelease(bat b);
 gdk_export void BBPkeepref(bat i);
 gdk_export void BBPshare(bat b);
+gdk_export void BBPcold(bat i);
 
 #define BBPtmpcheck(s) (strncmp(s, "tmp_", 4) == 0)
 
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
@@ -867,7 +867,7 @@ cs_update_bat( sql_trans *tr, column_sto
                        res = LOG_ERR;
                else if (BATreplace(b, otids, updates, true) != GDK_SUCCEED)
                        res = LOG_ERR;
-               BBP_status_off(b->batCacheid, BBPHOT);
+               BBPcold(b->batCacheid);
                bat_destroy(b);
        }
        if (otids != tids)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to