Changeset: 0d1e4e2b4854 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0d1e4e2b4854
Modified Files:
gdk/gdk_utils.c
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/storage/bat/bat_storage.c
sql/storage/sql_catalog.c
Branch: Jun2023
Log Message:
merged with sep2022
diffs (72 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
@@ -658,6 +658,7 @@ count_idx(sql_trans *tr, sql_idx *i, int
return segs_end(d->segs, tr, i->t);
}
+#define BATtdense2(b) (b->ttype == TYPE_void && b->tseqbase != oid_nil)
static BAT *
cs_bind_ubat( column_storage *cs, int access, int type, size_t cnt /* ie max
position < cnt */)
{
@@ -669,8 +670,8 @@ cs_bind_ubat( column_storage *cs, int ac
if (access == RD_UPD_ID) {
if (!(b = temp_descriptor(cs->uibid)))
return NULL;
- if (!b->tsorted || ((BATtdense(b) && (b->tseqbase +
BATcount(b)) >= cnt) ||
- (!BATtdense(b) && BATcount(b) &&
((oid*)b->theap->base)[BATcount(b)-1] >= cnt))) {
+ if (!b->tsorted || ((BATtdense2(b) && (b->tseqbase +
BATcount(b)) >= cnt) ||
+ (!BATtdense2(b) && BATcount(b) &&
((oid*)b->theap->base)[BATcount(b)-1] >= cnt))) {
oid nil = oid_nil;
/* less then cnt */
BAT *s = BATselect(b, NULL, &nil, &cnt,
false, false, false);
diff --git a/sql/storage/sql_catalog.c b/sql/storage/sql_catalog.c
--- a/sql/storage/sql_catalog.c
+++ b/sql/storage/sql_catalog.c
@@ -48,6 +48,7 @@ trans_del(sql_trans *tr, sql_base *b)
if (c->obj == b) {
if (c->log)
tr->logchanges--;
+ _DELETE(c);
n = list_remove_node(tr->changes, NULL, n);
}
}
diff --git a/sql/test/BugTracker-2023/Tests/All
b/sql/test/BugTracker-2023/Tests/All
--- a/sql/test/BugTracker-2023/Tests/All
+++ b/sql/test/BugTracker-2023/Tests/All
@@ -1,5 +1,6 @@
ambiguous-identifiers-7372
temp-table-foreign-key-crash-7378
+update-mask-id-crash-7379
blob-crash-7380
add-drop-column-crash-7381
temp-on-savepoint-truncate-rollback-crash-7382
diff --git a/sql/test/BugTracker-2023/Tests/update-mask-id-crash-7379.test
b/sql/test/BugTracker-2023/Tests/update-mask-id-crash-7379.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2023/Tests/update-mask-id-crash-7379.test
@@ -0,0 +1,24 @@
+statement ok
+CREATE TABLE t2 (c1 int, t1 int, c2 int)
+
+statement ok
+INSERT INTO t2 VALUES(127,255,1),(127,1,2),(-128,0,3),(-128,2,4),(-1,NULL,5)
+
+statement ok
+INSERT INTO t2 VALUES(200,126,1),(250,-127,2)
+
+statement ok
+INSERT INTO t2 VALUES
(-128,0,1),(-1,1,1),(-2,2,2),(-3,3,3),(-4,4,4),(-5,5,5),(-6,6,6),(0,0,7),(1,1,8),(2,NULL,9),(3,NULL,10),(127,255,11)
+
+statement ok
+DELETE FROM t2 WHERE c1 IN (-2, 0)
+
+statement ok
+START TRANSACTION
+
+statement ok
+UPDATE t2 SET c2 = c2 + 100
+
+statement ok
+UPDATE t2 SET c2 = c2 + 100
+
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]