Changeset: 01dc6b45e088 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/01dc6b45e088
Modified Files:
sql/storage/bat/bat_storage.c
Branch: default
Log Message:
Merge with Aug2024 branch.
diffs (95 lines):
diff --git a/monetdb5/modules/mal/txtsim.c b/monetdb5/modules/mal/txtsim.c
--- a/monetdb5/modules/mal/txtsim.c
+++ b/monetdb5/modules/mal/txtsim.c
@@ -203,8 +203,10 @@ levenshtein(int *res, const char *x, con
xlen = UTF8_strlen(x);
ylen = UTF8_strlen(y);
- if (xlen == ylen && (strcmp(x, y) == 0))
+ if (xlen == ylen && (strcmp(x, y) == 0)) {
+ *res = 0;
return MAL_SUCCEED;
+ }
column = GDKmalloc((xlen + 1) * sizeof(unsigned int));
if (column == NULL)
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
@@ -333,11 +333,8 @@ segments2cs(sql_trans *tr, segments *seg
b->tnokey[1] = 0;
b->theap->dirty = true;
BUN cnt = BATcount(b);
- MT_lock_unset(&b->theaplock);
uint32_t *restrict dst;
- /* why hashlock ?? */
- MT_rwlock_wrlock(&b->thashlock);
for (; s ; s=ATOMIC_PTR_GET(&s->next)) {
if (s->start >= nr)
break;
@@ -404,12 +401,10 @@ segments2cs(sql_trans *tr, segments *seg
cnt = s->end;
}
}
- MT_rwlock_wrunlock(&b->thashlock);
if (nr > BATcount(b)) {
- MT_lock_set(&b->theaplock);
BATsetcount(b, nr);
- MT_lock_unset(&b->theaplock);
}
+ MT_lock_unset(&b->theaplock);
bat_destroy(b);
return LOG_OK;
diff --git a/sql/test/BugTracker-2024/Tests/7541-levenshtein.test
b/sql/test/BugTracker-2024/Tests/7541-levenshtein.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/7541-levenshtein.test
@@ -0,0 +1,38 @@
+statement ok
+CREATE TABLE t0 (c0 BOOLEAN)
+
+statement ok
+CREATE TABLE t1 (c1 INT)
+
+statement ok
+INSERT INTO t1(c1) VALUES (1)
+
+statement ok
+INSERT INTO t0(c0) VALUES (false)
+
+statement ok
+INSERT INTO t0(c0) VALUES (true)
+
+query II rowsort
+SELECT * FROM t1 LEFT JOIN t0 ON LEVENSHTEIN(t0.c0, true)
+----
+1
+0
+
+query II rowsort
+SELECT * FROM t1 LEFT JOIN t0 ON LEVENSHTEIN(t0.c0, true) WHERE t0.c0 UNION
ALL SELECT * FROM t1 LEFT JOIN t0 ON LEVENSHTEIN(t0.c0, true) WHERE (NOT
t0.c0) UNION ALL SELECT * FROM t1 LEFT JOIN t0 ON LEVENSHTEIN(t0.c0, true)
WHERE ((t0.c0) IS NULL)
+----
+1
+0
+
+query I rowsort
+SELECT LEVENSHTEIN(true, true)
+----
+0
+
+query I rowsort
+SELECT LEVENSHTEIN(t0.c0, true) FROM t0
+----
+0
+4
+
diff --git a/sql/test/BugTracker-2024/Tests/All
b/sql/test/BugTracker-2024/Tests/All
--- a/sql/test/BugTracker-2024/Tests/All
+++ b/sql/test/BugTracker-2024/Tests/All
@@ -67,3 +67,4 @@ 7538-reduce-cast
7539-is-distinct-from
7537-prepare_stmt_with_dropped_table
7536-mclient-forgets-to-flush
+7541-levenshtein
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]