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