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 -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org