Changeset: d66e75e1bb11 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d66e75e1bb11
Modified Files:
        gdk/gdk_atoms.c
        gdk/gdk_bbp.c
        sql/storage/bat/bat_utils.c
Branch: Jul2021
Log Message:

Better fix for changeset 2a9ae757e881.


diffs (53 lines):

diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c
--- a/gdk/gdk_atoms.c
+++ b/gdk/gdk_atoms.c
@@ -1699,6 +1699,7 @@ str
 ATOMunknown_name(int i)
 {
        assert(i < 0);
+       assert(-i < MAXATOMS);
        assert(unknown[-i]);
        return unknown[-i];
 }
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -2940,7 +2940,18 @@ BBPquickdesc(bat bid)
        }
        if ((b = BBP_cache(bid)) != NULL)
                return b;       /* already cached */
-       return BBP_desc(bid);
+       b = BBP_desc(bid);
+       if (b && b->ttype < 0) {
+               const char *aname = ATOMunknown_name(b->ttype);
+               int tt = ATOMindex(aname);
+               if (tt < 0) {
+                       TRC_WARNING(GDK, "atom '%s' unknown in bat '%s'.\n",
+                                   aname, BBP_physical(bid));
+               } else {
+                       b->ttype = tt;
+               }
+       }
+       return b;
 }
 
 /*
diff --git a/sql/storage/bat/bat_utils.c b/sql/storage/bat/bat_utils.c
--- a/sql/storage/bat/bat_utils.c
+++ b/sql/storage/bat/bat_utils.c
@@ -85,15 +85,6 @@ temp_copy(log_bid b, bool renew, bool te
        } else {
                if (!(o = quick_descriptor(b)))
                        return BID_NIL;
-               if (o->ttype < 0) {
-                       /* bat was never loaded and it's type is not yet filled 
in */
-                       if ((o = BATdescriptor(b)) == NULL)
-                               return BID_NIL;
-                       assert(o->ttype >= 0);
-                       BBPunfix(o->batCacheid);
-                       o = quick_descriptor(b);
-                       assert(o != NULL);
-               }
                if (!(c = bat_new(o->ttype, COLSIZE, PERSISTENT)))
                        return BID_NIL;
        }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to