Changeset: b7ab78d9cd74 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b7ab78d9cd74 Modified Files: sql/storage/bat/bat_storage.c sql/storage/store.c sql/test/BugTracker-2020/Tests/All Branch: default Log Message:
Merge with Oct2020 branch. diffs (119 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 @@ -1966,6 +1966,7 @@ clear_delta(sql_trans *tr, sql_delta *ba { BAT *b; BUN sz = 0; + int isnew = 0; if (bat->cached) { bat_destroy(bat->cached); @@ -1995,6 +1996,8 @@ clear_delta(sql_trans *tr, sql_delta *ba } bat_destroy(b); } + } else { + isnew = 1; } if (bat->uibid) { b = temp_descriptor(bat->uibid); @@ -2012,7 +2015,8 @@ clear_delta(sql_trans *tr, sql_delta *ba } bat_destroy(b); } - bat->cleared = 1; + if (!isnew) + bat->cleared = 1; bat->ibase = 0; bat->cnt = 0; bat->ucnt = 0; @@ -2439,6 +2443,7 @@ tr_update_delta( sql_trans *tr, sql_delt temp_destroy(obat->ibid); obat->ibid = cbat->bid; obat->cnt = cbat->cnt; + cbat->bid = cbat->ibid = 0; } else if (BUNlast(ins) > 0 || cbat->cleared) { if ((!cbat->ibase && BATcount(ins) > SNAPSHOT_MINSIZE)){ /* swap cur and ins */ diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -6679,7 +6679,8 @@ sql_trans_clear_table(sql_trans *tr, sql sql_column *c = n->data; BUN sz = 0, nsz = 0; - t->cleared = 1; + if (!isNew(t)) + t->cleared = 1; t->base.wtime = t->s->base.wtime = tr->wtime = tr->wstime; c->base.wtime = tr->wstime; diff --git a/sql/test/BugTracker-2020/Tests/All b/sql/test/BugTracker-2020/Tests/All --- a/sql/test/BugTracker-2020/Tests/All +++ b/sql/test/BugTracker-2020/Tests/All @@ -39,3 +39,4 @@ savepoints_crash_mserver5_1.Bug-7021 savepoints_crash_mserver5_2.Bug-7021 transaction_with_unreleased_savepoint.Bug-7022 view_with_aggr_column.Bug-7023 +delete-transaction-loose-inserts.Bug-7024 diff --git a/sql/test/BugTracker-2020/Tests/delete-transaction-loose-inserts.Bug-7024.sql b/sql/test/BugTracker-2020/Tests/delete-transaction-loose-inserts.Bug-7024.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2020/Tests/delete-transaction-loose-inserts.Bug-7024.sql @@ -0,0 +1,7 @@ +START TRANSACTION; +CREATE TABLE b (c integer); +DELETE FROM b; +INSERT INTO b VALUES (1); +COMMIT; +SELECT * FROM b; +DROP TABLE b; diff --git a/sql/test/BugTracker-2020/Tests/delete-transaction-loose-inserts.Bug-7024.stable.err b/sql/test/BugTracker-2020/Tests/delete-transaction-loose-inserts.Bug-7024.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2020/Tests/delete-transaction-loose-inserts.Bug-7024.stable.err @@ -0,0 +1,12 @@ +stderr of test 'delete-transaction-loose-inserts.Bug-7024` in directory 'sql/test/BugTracker-2020` itself: + + +# 11:13:06 > +# 11:13:06 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-33866" "--port=38978" +# 11:13:06 > + + +# 11:13:06 > +# 11:13:06 > "Done." +# 11:13:06 > + diff --git a/sql/test/BugTracker-2020/Tests/delete-transaction-loose-inserts.Bug-7024.stable.out b/sql/test/BugTracker-2020/Tests/delete-transaction-loose-inserts.Bug-7024.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2020/Tests/delete-transaction-loose-inserts.Bug-7024.stable.out @@ -0,0 +1,26 @@ +stdout of test 'delete-transaction-loose-inserts.Bug-7024` in directory 'sql/test/BugTracker-2020` itself: + + +# 11:13:06 > +# 11:13:06 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-33866" "--port=38978" +# 11:13:06 > + +#START TRANSACTION; +#CREATE TABLE b (c integer); +#DELETE FROM b; +[ 0 ] +#INSERT INTO b VALUES (1); +[ 1 ] +#COMMIT; +#SELECT * FROM b; +% sys.b # table_name +% c # name +% int # type +% 1 # length +[ 1 ] +#DROP TABLE b; + +# 11:13:06 > +# 11:13:06 > "Done." +# 11:13:06 > + _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list