Changeset: d6d296f6a9fb for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d6d296f6a9fb Modified Files: sql/storage/bat/bat_storage.c Branch: context Log Message:
merged with default diffs (82 lines): 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 @@ -160,7 +160,7 @@ delta_bind_bat( sql_delta *bat, int acce bat_destroy(b); return NULL; } - if (BATcount(nui)) { + if (!isEbat(nui) && BATcount(nui)) { o = BATselect(ui, NULL, &b->hseqbase, ATOMnilptr(ui->ttype), true, false, false); if (o == NULL) { bat_destroy(ui); @@ -2189,6 +2189,7 @@ gtr_update_delta( sql_trans *tr, sql_del bat_destroy(cur); return LOG_ERR; } + assert(!isEbat(cur)); /* any inserts */ if (BUNlast(ins) > 0) { (*changes)++; @@ -2259,6 +2260,7 @@ gtr_update_dbat(sql_dbat *d, int *change BAT *cdb = temp_descriptor(dbid); if(cdb) { (*changes)++; + assert(!isEbat(cdb)); if (append_inserted(cdb, idb) == BUN_NONE) ok = LOG_ERR; bat_destroy(cdb); @@ -2475,6 +2477,7 @@ tr_update_delta( sql_trans *tr, sql_delt assert((BATcount(cur) + BATcount(ins)) == cbat->cnt); //assert((BATcount(cur) + BATcount(ins)) == (obat->cnt + (BUNlast(ins) - ins->batInserted))); assert(!BATcount(ins) || !isEbat(ins)); + assert(!isEbat(cur)); if (BATappend(cur, ins, NULL, true) != GDK_SUCCEED) { bat_destroy(cur); bat_destroy(ins); @@ -2510,6 +2513,7 @@ tr_update_delta( sql_trans *tr, sql_delt } /* any updates */ + assert(!isEbat(cur)); if (BUNlast(ui) > 0) { if (void_replace_bat(cur, ui, uv, true) != GDK_SUCCEED) { bat_destroy(ui); @@ -2581,6 +2585,7 @@ tr_merge_delta( sql_trans *tr, sql_delta ins = cur; cur = newcur; } else { + assert(!isEbat(cur)); if (BATappend(cur, ins, NULL, true) != GDK_SUCCEED) { bat_destroy(cur); bat_destroy(ins); @@ -2601,6 +2606,7 @@ tr_merge_delta( sql_trans *tr, sql_delta if (obat->ucnt || cleared) { BAT *ui = temp_descriptor(obat->uibid); BAT *uv = temp_descriptor(obat->uvbid); + if(!ui || !uv) { bat_destroy(ui); bat_destroy(uv); @@ -2609,6 +2615,7 @@ tr_merge_delta( sql_trans *tr, sql_delta } /* any updates */ + assert(!isEbat(cur)); if (BUNlast(ui) > 0) { if (void_replace_bat(cur, ui, uv, true) != GDK_SUCCEED) { bat_destroy(ui); @@ -2660,6 +2667,13 @@ tr_update_dbat(sql_trans *tr, sql_dbat * if (BUNlast(db) > db->batInserted || cleared) { BAT *odb = temp_descriptor(tdb->dbid); if(odb) { + if (isEbat(odb)){ + temp_destroy(tdb->dbid); + tdb->dbid = temp_copy(odb->batCacheid, false); + bat_destroy(odb); + if (tdb->dbid == BID_NIL || (odb = temp_descriptor(tdb->dbid)) == NULL) + return LOG_ERR; + } if (append_inserted(odb, db) == BUN_NONE) ok = LOG_ERR; else _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list