Changeset: df3da4e56ac4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/df3da4e56ac4 Branch: cmp-or-patterns Log Message:
Merges default diffs (truncated from 385 to 300 lines): diff --git a/clients/mapilib/ChangeLog.Aug2024 b/clients/mapilib/ChangeLog.Aug2024 --- a/clients/mapilib/ChangeLog.Aug2024 +++ b/clients/mapilib/ChangeLog.Aug2024 @@ -1,3 +1,10 @@ # ChangeLog file for mapilib # This file is updated with Maddlog +* Wed Jun 19 2024 Joeri van Ruth <joeri.van.r...@monetdbsolutions.com> +- Add new columns to sys.sessions. Column 'language' is usually 'sql'. + Column 'peer' is the network address of the client (something like + '[::1]:46558' or '<UNIX SOCKET>'). Columns 'hostname', 'application', + 'client', 'clientpid' and 'remark' can be set by the client. + Libmapi/mclient, pymonetdb and monetdb-java have been modified to fill + in sensible default values. diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -753,7 +753,7 @@ typedef struct { #define GDKLIBRARY_HSIZE 061045U /* first in Jan2022: heap "size" values */ #define GDKLIBRARY_JSON 061046U /* first in Sep2022: json storage changes*/ #define GDKLIBRARY_STATUS 061047U /* first in Dec2023: no status/filename columns */ -#define GDKLIBRARY 061050U /* first after Dec2023 */ +#define GDKLIBRARY 061050U /* first in Aug2024 */ /* The batRestricted field indicates whether a BAT is readonly. * we have modes: BAT_WRITE = all permitted 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/backends/monet5/generator/generator.c b/sql/backends/monet5/generator/generator.c --- a/sql/backends/monet5/generator/generator.c +++ b/sql/backends/monet5/generator/generator.c @@ -831,6 +831,7 @@ VLTgenerator_subselect(Client cntxt, Mal do { \ TPE f,l,s, low, hgh; \ BUN j; oid *v; \ + bool nil_matches = false; \ f = *getArgReference_##TPE(stk,p, 1); \ l = *getArgReference_##TPE(stk,p, 2); \ if ( p->argc == 3) \ @@ -858,18 +859,26 @@ VLTgenerator_subselect(Client cntxt, Mal low = NEXTVALUE##TPE(low); \ } else if ( strcmp(oper,">=") == 0){ \ low= *getArgReference_##TPE(stk,pci,3); \ - } else if ( strcmp(oper,"!=") == 0 || strcmp(oper, "<>") == 0){ \ + } else if (strcmp(oper, "!=") == 0 || strcmp(oper, "<>") == 0) { \ + hgh= low= *getArgReference_##TPE(stk,pci,3); \ + anti = true; \ + } else if (strcmp(oper, "==") == 0 || strcmp(oper, "=") == 0) { \ hgh= low= *getArgReference_##TPE(stk,pci,3); \ - anti = 1; \ - } else if ( strcmp(oper,"==") == 0 || strcmp(oper, "=") == 0){ \ + } else if (strcmp(oper, "ne") == 0) { \ hgh= low= *getArgReference_##TPE(stk,pci,3); \ + anti = true; \ + nil_matches = true; \ + } else if (strcmp(oper, "eq") == 0) { \ + hgh= low= *getArgReference_##TPE(stk,pci,3); \ + nil_matches = true; \ } else { \ BBPreclaim(cand); \ BBPreclaim(bn); \ throw(MAL,"generator.thetaselect", SQLSTATE(42000) "Unknown operator"); \ } \ for(j=0;j<cap;j++, f+=s, o++) \ - if( ((is_##TPE##_nil(low) || f >= low) && (is_##TPE##_nil(hgh) || f <= hgh)) != anti){ \ + if (nil_matches && is_##TPE##_nil(low) ? anti : \ + ((is_##TPE##_nil(low) || f >= low) && (is_##TPE##_nil(hgh) || f <= hgh)) != anti){ \ if(cand == NULL || canditer_contains(&ci, o)) { \ *v++ = o; \ c++; \ @@ -880,7 +889,8 @@ VLTgenerator_subselect(Client cntxt, Mal str VLTgenerator_thetasubselect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { - int anti =0,tpe; + bool anti = false; + int tpe; bat cndid =0; BAT *cand = 0, *bn = NULL; struct canditer ci = (struct canditer) {.tpe = cand_dense}; @@ -963,7 +973,7 @@ str VLTgenerator_thetasubselect(Client c } else if ( strcmp(oper,"!=") == 0 || strcmp(oper, "<>") == 0){ hgh= low= *getArgReference_TYPE(stk,pci,3, date); - anti = 1; + anti = true; } else if ( strcmp(oper,"==") == 0 || strcmp(oper, "=") == 0){ hgh= low= *getArgReference_TYPE(stk,pci,3, date); @@ -1038,7 +1048,7 @@ str VLTgenerator_thetasubselect(Client c } else if ( strcmp(oper,"!=") == 0 || strcmp(oper, "<>") == 0){ hgh= low= *getArgReference_TYPE(stk,pci,3, date); - anti = 1; + anti = true; } else if ( strcmp(oper,"==") == 0 || strcmp(oper, "=") == 0){ hgh= low= *getArgReference_TYPE(stk,pci,3, date); @@ -1116,7 +1126,7 @@ str VLTgenerator_thetasubselect(Client c } else if ( strcmp(oper,"!=") == 0 || strcmp(oper, "<>") == 0){ hgh= low= *getArgReference_TYPE(stk,pci,3, timestamp); - anti = 1; + anti = true; } else if ( strcmp(oper,"==") == 0 || strcmp(oper, "=") == 0){ hgh= low= *getArgReference_TYPE(stk,pci,3, timestamp); diff --git a/sql/storage/bat/bat_logger.c b/sql/storage/bat/bat_logger.c --- a/sql/storage/bat/bat_logger.c +++ b/sql/storage/bat/bat_logger.c @@ -24,7 +24,6 @@ #define CATALOG_JUL2021 52300 /* first in Jul2021 */ #define CATALOG_JAN2022 52301 /* first in Jan2022 */ #define CATALOG_SEP2022 52302 /* first in Sep2022 */ -#define CATALOG_FIRST_AFTER_DEC2023 52303 /* first after Dec2023 */ /* Note, CATALOG version 52300 is the first one where the basic system * tables (the ones created in store.c) have fixed and unchangeable @@ -93,14 +92,6 @@ bl_preversion(sqlstore *store, int oldve } #endif -#ifdef CATALOG_FIRST_AFTER_DEC2023 - if (oldversion == CATALOG_FIRST_AFTER_DEC2023) { - /* upgrade to default releases */ - store->catalog_version = oldversion; - return GDK_SUCCEED; - } -#endif - return GDK_FAIL; } @@ -3262,9 +3253,8 @@ bl_postversion(void *Store, void *Lg) } #endif - -#ifdef CATALOG_FIRST_AFTER_DEC2023 - if (store->catalog_version <= CATALOG_FIRST_AFTER_DEC2023) { +#ifdef CATALOG_SEP2022 + if (store->catalog_version <= CATALOG_SEP2022) { /* new STRING column sys.keys.check */ BAT *b = log_temp_descriptor(log_find_bat(lg, 2088)); /* sys.keys.id */ if (b == 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/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -23,7 +23,7 @@ #include "bat/bat_logger.h" /* version 05.23.03 of catalog */ -#define CATALOG_VERSION 52304 /* second after Dec2023 */ +#define CATALOG_VERSION 52303 /* first in Aug2024 */ ulng store_function_counter(sqlstore *store) 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 @@ -63,8 +63,8 @@ 7524-right-outer-join 7528-jarowinkler-null 7534-is-distinct-from 7535-create-view-groupby-func -7536-mclient-forgets-to-flush 7538-reduce-cast 7539-is-distinct-from 7537-prepare_stmt_with_dropped_table 7536-mclient-forgets-to-flush +7541-levenshtein diff --git a/sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.py b/sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.py --- a/sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.py +++ b/sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.py @@ -76,7 +76,7 @@ if len(sys.argv) == 2 and sys.argv[1] == if not os.getenv('HAVE_SHP'): for i in range(len(stable)): if 'create procedure SHPLoad' in stable[i]: - del stable[i-1:i+3] + del stable[i-1:i+4] break import difflib for line in difflib.unified_diff(stable, srvout, fromfile='test', tofile=f): diff --git a/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.py b/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.py --- a/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.py +++ b/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.py @@ -77,7 +77,7 @@ if len(sys.argv) == 2 and sys.argv[1] == if not os.getenv('HAVE_SHP'): for i in range(len(stable)): if 'create procedure SHPLoad' in stable[i]: - del stable[i-1:i+3] + del stable[i-1:i+4] break import difflib for line in difflib.unified_diff(stable, srvout, fromfile='test', tofile=f): diff --git a/sql/test/testdb-previous-upgrade-hge/Tests/upgrade.py b/sql/test/testdb-previous-upgrade-hge/Tests/upgrade.py --- a/sql/test/testdb-previous-upgrade-hge/Tests/upgrade.py +++ b/sql/test/testdb-previous-upgrade-hge/Tests/upgrade.py @@ -76,7 +76,7 @@ if len(sys.argv) == 2 and sys.argv[1] == if not os.getenv('HAVE_SHP'): for i in range(len(stable)): if 'create procedure SHPLoad' in stable[i]: - del stable[i-1:i+3] + del stable[i-1:i+4] break import difflib for line in difflib.unified_diff(stable, srvout, fromfile='test', tofile=f): diff --git a/sql/test/testdb-previous-upgrade/Tests/upgrade.py b/sql/test/testdb-previous-upgrade/Tests/upgrade.py --- a/sql/test/testdb-previous-upgrade/Tests/upgrade.py +++ b/sql/test/testdb-previous-upgrade/Tests/upgrade.py @@ -77,7 +77,7 @@ if len(sys.argv) == 2 and sys.argv[1] == if not os.getenv('HAVE_SHP'): for i in range(len(stable)): if 'create procedure SHPLoad' in stable[i]: - del stable[i-1:i+3] + del stable[i-1:i+4] _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org