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

Load bat if type wasn't filled in yet by the lower layers.
This fixes a problem where e.g. a 'DELETE FROM t' fails when it is the
first operation on 't' after startup, and t contains a type such as
BLOB that isn't a core GDK type.


diffs (19 lines):

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,6 +85,15 @@ 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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to