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

Reply via email to