Changeset: 1a720f2abd29 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/1a720f2abd29 Modified Files: sql/storage/bat/bat_storage.c Branch: Jun2020 Log Message:
fixing loss of column content in a sequence of truncate/delete all, with large inserts/copy into's, under heavy concurrent workloads. diffs (35 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 @@ -2370,6 +2370,7 @@ tr_handle_snapshot( sql_trans *tr, sql_d bat->bid = bat->ibid; bat->cnt = bat->ibase = BATcount(ins); bat->ibid = e_bat(ins->ttype); + bat->cleared = 0; BATmsync(ins); } bat_destroy(ins); @@ -2406,7 +2407,7 @@ tr_update_delta( sql_trans *tr, sql_delt if(!cur) return LOG_ERR; } - if (!obat->bid && tr != gtrans) { + if ((!obat->bid || !cbat->bid) && tr != gtrans) { if (obat->next) destroy_bat(obat->next); destroy_delta(obat); @@ -2418,6 +2419,14 @@ tr_update_delta( sql_trans *tr, sql_delt cbat->cleared = 0; cbat->name = NULL; cbat->cached = NULL; + if (!obat->bid) { + cur = temp_descriptor(obat->ibid); + obat->bid = obat->ibid; + obat->cnt = obat->ibase = BATcount(cur); + obat->ibid = e_bat(cur->ttype); + bat_destroy(cur); + obat->cleared = 0; + } return ok; } ins = temp_descriptor(cbat->ibid); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list