MonetDB: Jun2023 - utf8ncasecmp patch for utf8.h lib. Allow nega...
Changeset: f0ca4dc1d9a4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/f0ca4dc1d9a4 Modified Files: monetdb5/modules/atoms/Tests/startswith.test monetdb5/modules/atoms/utf8.h Branch: Jun2023 Log Message: utf8ncasecmp patch for utf8.h lib. Allow negative return. *** Add test for startsWith that leverages utf8ncasecmp. diffs (42 lines): diff --git a/monetdb5/modules/atoms/Tests/startswith.test b/monetdb5/modules/atoms/Tests/startswith.test --- a/monetdb5/modules/atoms/Tests/startswith.test +++ b/monetdb5/modules/atoms/Tests/startswith.test @@ -86,3 +86,8 @@ drop table foo statement ok drop table bar + +query T +select ['Camón Romasan'] startsWith ['camu', true]; + +false diff --git a/monetdb5/modules/atoms/utf8.h b/monetdb5/modules/atoms/utf8.h --- a/monetdb5/modules/atoms/utf8.h +++ b/monetdb5/modules/atoms/utf8.h @@ -564,7 +564,7 @@ utf8_constexpr14_impl int utf8ncasecmp(c const utf8_int32_t c1 = (0xe0 & *s1); const utf8_int32_t c2 = (0xe0 & *s2); - if (c1 < c2) { + if (c1 != c2) { return c1 - c2; } else { return 0; @@ -575,7 +575,7 @@ utf8_constexpr14_impl int utf8ncasecmp(c const utf8_int32_t c1 = (0xf0 & *s1); const utf8_int32_t c2 = (0xf0 & *s2); - if (c1 < c2) { + if (c1 != c2) { return c1 - c2; } else { return 0; @@ -586,7 +586,7 @@ utf8_constexpr14_impl int utf8ncasecmp(c const utf8_int32_t c1 = (0xf8 & *s1); const utf8_int32_t c2 = (0xf8 & *s2); - if (c1 < c2) { + if (c1 != c2) { return c1 - c2; } else { return 0; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Merge with Jun2023 branch.
Changeset: fcecca5153bd for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/fcecca5153bd Modified Files: sql/backends/monet5/sql.c Branch: Dec2023 Log Message: Merge with Jun2023 branch. diffs (53 lines): diff --git a/monetdb5/modules/atoms/Tests/startswith.test b/monetdb5/modules/atoms/Tests/startswith.test --- a/monetdb5/modules/atoms/Tests/startswith.test +++ b/monetdb5/modules/atoms/Tests/startswith.test @@ -86,3 +86,8 @@ drop table foo statement ok drop table bar + +query T +select ['Camón Romasan'] startsWith ['camu', true]; + +false diff --git a/monetdb5/modules/atoms/utf8.h b/monetdb5/modules/atoms/utf8.h --- a/monetdb5/modules/atoms/utf8.h +++ b/monetdb5/modules/atoms/utf8.h @@ -564,7 +564,7 @@ utf8_constexpr14_impl int utf8ncasecmp(c const utf8_int32_t c1 = (0xe0 & *s1); const utf8_int32_t c2 = (0xe0 & *s2); - if (c1 < c2) { + if (c1 != c2) { return c1 - c2; } else { return 0; @@ -575,7 +575,7 @@ utf8_constexpr14_impl int utf8ncasecmp(c const utf8_int32_t c1 = (0xf0 & *s1); const utf8_int32_t c2 = (0xf0 & *s2); - if (c1 < c2) { + if (c1 != c2) { return c1 - c2; } else { return 0; @@ -586,7 +586,7 @@ utf8_constexpr14_impl int utf8ncasecmp(c const utf8_int32_t c1 = (0xf8 & *s1); const utf8_int32_t c2 = (0xf8 & *s2); - if (c1 < c2) { + if (c1 != c2) { return c1 - c2; } else { return 0; diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c --- a/sql/backends/monet5/sql.c +++ b/sql/backends/monet5/sql.c @@ -8,6 +8,7 @@ * Copyright 1997 - July 2008 CWI, August 2008 - 2023 MonetDB B.V. */ + /* * authors M Kersten, N Nes * SQL support implementation ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Support URL's to allow encrypted sqldumping
Changeset: d04024f54648 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/d04024f54648 Modified Files: clients/mapiclient/msqldump.c Branch: Dec2023 Log Message: Support URL's to allow encrypted sqldumping msqldump -d monetdbs://localhost:43000/demo diffs (27 lines): diff --git a/clients/mapiclient/msqldump.c b/clients/mapiclient/msqldump.c --- a/clients/mapiclient/msqldump.c +++ b/clients/mapiclient/msqldump.c @@ -203,7 +203,11 @@ main(int argc, char **argv) passwd = passwd_allocated; } - mid = mapi_mapi(host, port, user, passwd, "sql", dbname); + if (dbname != NULL && strchr(dbname, ':') != NULL) { + mid = mapi_mapiuri(dbname, user, passwd, "sql"); + } else { + mid = mapi_mapi(host, port, user, passwd, "sql", dbname); + } free(user_allocated); user_allocated = NULL; free(passwd_allocated); @@ -215,6 +219,10 @@ main(int argc, char **argv) fprintf(stderr, "failed to allocate Mapi structure\n"); exit(2); } + if (mapi_error(mid)) { + mapi_explain(mid, stderr); + exit(2); + } mapi_set_time_zone(mid, 0); mapi_reconnect(mid); if (mapi_error(mid)) { ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Improve error message
Changeset: e07c56d8cfea for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e07c56d8cfea Modified Files: clients/mapilib/parseurl.c Branch: Dec2023 Log Message: Improve error message diffs (12 lines): diff --git a/clients/mapilib/parseurl.c b/clients/mapilib/parseurl.c --- a/clients/mapilib/parseurl.c +++ b/clients/mapilib/parseurl.c @@ -514,7 +514,7 @@ parse_by_scheme(msettings *mp, scanner * msetting_set_bool(mp, MP_TLS, false); return parse_classic(mp, sc); } else { - return complain(sc, "unknown scheme '%s'", scheme); + return complain(sc, "unknown URL scheme '%s'", scheme); } } ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Downgrade system call failures from CRITICAL ...
Changeset: a1ed08d78626 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/a1ed08d78626 Modified Files: gdk/gdk.h gdk/gdk_system_private.h Branch: Dec2023 Log Message: Downgrade system call failures from CRITICAL to ERROR. diffs (24 lines): diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1717,7 +1717,7 @@ gdk_export gdk_return GDKtracer_fill_com GDKtracer_log(__FILE__, __func__, __LINE__, M_ERROR,\ GDK, NULL, format, ##__VA_ARGS__) #define GDKsyserr(errno, format, ...) \ - GDKtracer_log(__FILE__, __func__, __LINE__, M_CRITICAL, \ + GDKtracer_log(__FILE__, __func__, __LINE__, M_ERROR,\ GDK, GDKstrerror(errno, (char[64]){0}, 64), \ format, ##__VA_ARGS__) #define GDKsyserror(format, ...) GDKsyserr(errno, format, ##__VA_ARGS__) diff --git a/gdk/gdk_system_private.h b/gdk/gdk_system_private.h --- a/gdk/gdk_system_private.h +++ b/gdk/gdk_system_private.h @@ -31,7 +31,7 @@ bool MT_thread_override_limits(void) MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), \ (LPTSTR) _osmsgbuf, sizeof(_osmsgbuf),\ NULL);\ - GDKtracer_log(__FILE__, __func__, __LINE__, M_CRITICAL, \ + GDKtracer_log(__FILE__, __func__, __LINE__, M_ERROR,\ GDK, _osmsgbuf, format, ##__VA_ARGS__); \ SetLastError(0);\ } while (0) ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Removed alarm.sleep with a BAT argument.
Changeset: 16163c504a2c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/16163c504a2c Modified Files: clients/Tests/MAL-signatures-hge.test clients/Tests/MAL-signatures.test monetdb5/modules/kernel/alarm.c Branch: default Log Message: Removed alarm.sleep with a BAT argument. diffs (163 lines): diff --git a/clients/Tests/MAL-signatures-hge.test b/clients/Tests/MAL-signatures-hge.test --- a/clients/Tests/MAL-signatures-hge.test +++ b/clients/Tests/MAL-signatures-hge.test @@ -3364,11 +3364,6 @@ unsafe pattern alarm.sleep(X_0:any_1):vo ALARMsleep; Sleep a few milliseconds alarm -sleep -unsafe pattern alarm.sleep(X_0:bat[:any_1]):bat[:any_1] -ALARMsleep; -Sleep a few milliseconds and return the slept value -alarm time unsafe command alarm.time():int ALARMtime; diff --git a/clients/Tests/MAL-signatures.test b/clients/Tests/MAL-signatures.test --- a/clients/Tests/MAL-signatures.test +++ b/clients/Tests/MAL-signatures.test @@ -2799,11 +2799,6 @@ unsafe pattern alarm.sleep(X_0:any_1):vo ALARMsleep; Sleep a few milliseconds alarm -sleep -unsafe pattern alarm.sleep(X_0:bat[:any_1]):bat[:any_1] -ALARMsleep; -Sleep a few milliseconds and return the slept value -alarm time unsafe command alarm.time():int ALARMtime; diff --git a/monetdb5/modules/kernel/alarm.c b/monetdb5/modules/kernel/alarm.c --- a/monetdb5/modules/kernel/alarm.c +++ b/monetdb5/modules/kernel/alarm.c @@ -38,7 +38,8 @@ ALARMusec(lng *ret) #define SLEEP_SINGLE(TPE) \ do { \ - TPE *res = (TPE*) getArgReference(stk, pci, 0), *msecs = (TPE*) getArgReference(stk,pci,1); \ + TPE *res = getArgReference_##TPE(stk, pci, 0); \ + const TPE *msecs = getArgReference_##TPE(stk,pci,1); \ if (is_##TPE##_nil(*msecs)) \ throw(MAL, "alarm.sleep", "NULL values not allowed for sleeping time"); \ if (*msecs < 0) \ @@ -47,97 +48,24 @@ ALARMusec(lng *ret) *res = *msecs; \ } while (0) -#define SLEEP_MULTI(TPE) \ - do { \ - for (i = 0; i < j ; i++) { \ - if (is_##TPE##_nil(bb[i])) { \ - bat_iterator_end(&bi); \ - BBPreclaim(r); \ - BBPunfix(b->batCacheid); \ - throw(MAL, "alarm.sleep", "NULL values not allowed for sleeping time"); \ - } \ - if (bb[i] < 0) { \ - bat_iterator_end(&bi); \ - BBPreclaim(r); \ - BBPunfix(b->batCacheid); \ - throw(MAL, "alarm.sleep", "Cannot sleep for a negative time"); \ - } \ - } \ - for (i = 0; i < j ; i++) { \ - MT_sleep_ms((unsigned int) bb[i]); \ - rb[i] = bb[i]; \ - }
MonetDB: default - Don't assume tkey is false on a newly created...
Changeset: 3f1002580157 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/3f1002580157 Modified Files: gdk/gdk_bat.c gdk/gdk_project.c monetdb5/modules/atoms/batxml.c monetdb5/modules/atoms/json.c monetdb5/modules/atoms/mtime.c monetdb5/modules/atoms/str.c monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/batcolor.c monetdb5/modules/mal/manifold.c monetdb5/modules/mal/txtsim.c sql/backends/monet5/UDF/pyapi3/emit3.c sql/backends/monet5/sql_rank.c sql/backends/monet5/vaults/fits/fits.c sql/backends/monet5/vaults/netcdf/netcdf.c Branch: default Log Message: Don't assume tkey is false on a newly created bat. diffs (truncated from 362 to 300 lines): diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -970,8 +970,7 @@ COLcopy(BAT *b, int tt, bool writable, r BUN h = BATcount(b); bn->tsorted = bi.sorted; bn->trevsorted = bi.revsorted; - if (bi.key) - BATkey(bn, true); + BATkey(bn, bi.key); bn->tnonil = bi.nonil; bn->tnil = bi.nil; if (bi.nosorted > 0 && bi.nosorted < h) @@ -996,6 +995,7 @@ COLcopy(BAT *b, int tt, bool writable, r } else { bn->tsorted = bn->trevsorted = false; /* set based on count later */ bn->tnonil = bn->tnil = false; + bn->tkey = false; bn->tnosorted = bn->tnorevsorted = 0; bn->tnokey[0] = bn->tnokey[1] = 0; } diff --git a/gdk/gdk_project.c b/gdk/gdk_project.c --- a/gdk/gdk_project.c +++ b/gdk/gdk_project.c @@ -1141,6 +1141,7 @@ BATprojectchain(BAT **bats) bn->trevsorted = ba[0].cnt <= 1; bn->tnonil = nonil & b->tnonil; bn->tseqbase = oid_nil; + bn->tkey = (ba[0].cnt <= 1); /* note, b may point to one of the bats in tobedeleted, so * reclaim after the last use of b */ while (ndelete-- > 0) diff --git a/monetdb5/modules/atoms/batxml.c b/monetdb5/modules/atoms/batxml.c --- a/monetdb5/modules/atoms/batxml.c +++ b/monetdb5/modules/atoms/batxml.c @@ -50,6 +50,7 @@ (X)->tsorted = false; \ (X)->trevsorted = false; \ (X)->tnonil = true; \ + (X)->tkey = false; \ } while (0) #define finalizeResult(X,Y,Z) \ diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c --- a/monetdb5/modules/atoms/json.c +++ b/monetdb5/modules/atoms/json.c @@ -2030,9 +2030,6 @@ JSONunfoldInternal(bat *od, bat *key, ba JSONfree(jt); throw(MAL, "json.unfold", SQLSTATE(HY013) MAL_MALLOC_FAIL); } - bk->tsorted = true; - bk->trevsorted = false; - bk->tnonil = true; if (od) { bo = COLnew(0, TYPE_oid, 64, TRANSIENT); @@ -2041,9 +2038,6 @@ JSONunfoldInternal(bat *od, bat *key, ba JSONfree(jt); throw(MAL, "json.unfold", SQLSTATE(HY013) MAL_MALLOC_FAIL); } - bo->tsorted = true; - bo->trevsorted = false; - bo->tnonil = true; } bv = COLnew(0, TYPE_json, 64, TRANSIENT); @@ -2053,9 +2047,6 @@ JSONunfoldInternal(bat *od, bat *key, ba BBPreclaim(bk); throw(MAL, "json.unfold", SQLSTATE(HY013) MAL_MALLOC_FAIL); } - bv->tsorted = true; - bv->trevsorted = false; - bv->tnonil = true; if (jt->elm[0].kind == JSON_ARRAY || jt->elm[0].kind == JSON_OBJECT) msg = JSONunfoldContainer(jt, 0, (od ? bo : 0), bk, bv, &o); @@ -2097,9 +2088,6 @@ JSONkeyTable(bat *ret, json *js) JSONfree(jt); throw(MAL, "json.keys", SQLSTATE(HY013) MAL_MALLOC_FAIL); } - bn->tsorted = true; - bn->trevsorted = false; - bn->tnonil = true; for (i = jt->elm[0].next; i; i = jt->elm[i].next) { r = JSONgetValue(jt, i); @@ -2197,9 +2185,6 @@ JSONvalueTable(bat *ret, json *js) JSONfree(jt); throw(MAL, "json.values", SQLSTATE(HY013) MAL_MALLOC_FAIL); } - bn->tsorted = true; - bn->trevsorted = false; - bn->tnonil = true; for (i = jt->elm[0].next; i; i = jt->elm[i].next) { if (jt->elm[i].kind == JSON_ELEMENT) diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c --- a/monetdb5/modules/atoms/mt
MonetDB: default - All values in an empty bat are distinct, i.e....
Changeset: 7a04a07b0063 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/7a04a07b0063 Modified Files: gdk/gdk_bat.c monetdb5/modules/kernel/bat5.c sql/test/BugTracker-2016/Tests/storagemodel.test Branch: default Log Message: All values in an empty bat are distinct, i.e. set tkey to true. diffs (44 lines): diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -75,7 +75,7 @@ BATcreatedesc(oid hseq, int tt, bool hea .hseqbase = hseq, .ttype = tt, - .tkey = false, + .tkey = true, .tnonil = true, .tnil = false, .tsorted = ATOMlinear(tt), diff --git a/monetdb5/modules/kernel/bat5.c b/monetdb5/modules/kernel/bat5.c --- a/monetdb5/modules/kernel/bat5.c +++ b/monetdb5/modules/kernel/bat5.c @@ -65,7 +65,6 @@ BKCnewBAT(bat *res, const int *tt, const if (bn == NULL) throw(MAL, "bat.new", GDK_EXCEPTION); *res = bn->batCacheid; - bn->tkey = true;/* COLnew leaves it as false */ BBPretain(bn->batCacheid); BBPunfix(bn->batCacheid); return MAL_SUCCEED; diff --git a/sql/test/BugTracker-2016/Tests/storagemodel.test b/sql/test/BugTracker-2016/Tests/storagemodel.test --- a/sql/test/BugTracker-2016/Tests/storagemodel.test +++ b/sql/test/BugTracker-2016/Tests/storagemodel.test @@ -92,7 +92,7 @@ 0 8000 0 1 -NULL +1 1 statement ok @@ -198,7 +198,7 @@ 0 8000 0 1 -NULL +1 1 statement ok ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Merge with Dec2023 branch.
Changeset: 1cfa4916a274 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/1cfa4916a274 Modified Files: clients/Tests/MAL-signatures-hge.test clients/Tests/MAL-signatures.test monetdb5/modules/atoms/mtime.c monetdb5/modules/kernel/bat5.c Branch: default Log Message: Merge with Dec2023 branch. diffs (truncated from 805 to 300 lines): diff --git a/clients/Tests/MAL-signatures-hge.test b/clients/Tests/MAL-signatures-hge.test --- a/clients/Tests/MAL-signatures-hge.test +++ b/clients/Tests/MAL-signatures-hge.test @@ -3999,16 +3999,6 @@ command bat.replace(X_0:bat[:any_1], X_1 BKCbun_inplace_force; Replace the tail value of one BUN that has some head value. bat -reuse -command bat.reuse(X_0:bat[:any_1], X_1:bat[:oid]):bat[:any_1] -BKCreuseBAT; -Shuffle the values around to restore a dense representation of buns. -bat -reuseMap -command bat.reuseMap(X_0:bat[:any_1], X_1:bat[:oid]):bat[:oid] -BKCreuseBATmap; -Derive the oid mapping for reuse BAT based on list of to-be-deleted -bat save command bat.save(X_0:bat[:any_1]):void BKCsave2; diff --git a/clients/Tests/MAL-signatures.test b/clients/Tests/MAL-signatures.test --- a/clients/Tests/MAL-signatures.test +++ b/clients/Tests/MAL-signatures.test @@ -3424,16 +3424,6 @@ command bat.replace(X_0:bat[:any_1], X_1 BKCbun_inplace_force; Replace the tail value of one BUN that has some head value. bat -reuse -command bat.reuse(X_0:bat[:any_1], X_1:bat[:oid]):bat[:any_1] -BKCreuseBAT; -Shuffle the values around to restore a dense representation of buns. -bat -reuseMap -command bat.reuseMap(X_0:bat[:any_1], X_1:bat[:oid]):bat[:oid] -BKCreuseBATmap; -Derive the oid mapping for reuse BAT based on list of to-be-deleted -bat save command bat.save(X_0:bat[:any_1]):void BKCsave2; diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -753,10 +753,6 @@ str AUTHunlockVault(const char *password str AUTHverifyPassword(const char *passwd); str BKCmirror(bat *ret, const bat *bid); str BKCnewBAT(bat *res, const int *tt, const BUN *cap, role_t role); -str BKCreuseBAT(bat *ret, const bat *bid, const bat *did); -str BKCsetName(void *r, const bat *bid, const char *const *s); -str BKCsetPersistent(void *r, const bat *bid); -str BKCshrinkBAT(bat *ret, const bat *bid, const bat *did); str CLTsessions(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CLTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str COPYrejects(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); diff --git a/clients/mapiclient/msqldump.c b/clients/mapiclient/msqldump.c --- a/clients/mapiclient/msqldump.c +++ b/clients/mapiclient/msqldump.c @@ -203,7 +203,11 @@ main(int argc, char **argv) passwd = passwd_allocated; } - mid = mapi_mapi(host, port, user, passwd, "sql", dbname); + if (dbname != NULL && strchr(dbname, ':') != NULL) { + mid = mapi_mapiuri(dbname, user, passwd, "sql"); + } else { + mid = mapi_mapi(host, port, user, passwd, "sql", dbname); + } free(user_allocated); user_allocated = NULL; free(passwd_allocated); @@ -215,6 +219,10 @@ main(int argc, char **argv) fprintf(stderr, "failed to allocate Mapi structure\n"); exit(2); } + if (mapi_error(mid)) { + mapi_explain(mid, stderr); + exit(2); + } mapi_set_time_zone(mid, 0); mapi_reconnect(mid); if (mapi_error(mid)) { diff --git a/clients/mapilib/parseurl.c b/clients/mapilib/parseurl.c --- a/clients/mapilib/parseurl.c +++ b/clients/mapilib/parseurl.c @@ -514,7 +514,7 @@ parse_by_scheme(msettings *mp, scanner * msetting_set_bool(mp, MP_TLS, false); return parse_classic(mp, sc); } else { - return complain(sc, "unknown scheme '%s'", scheme); + return complain(sc, "unknown URL scheme '%s'", scheme); } } diff --git a/documentation/source/build-fedora.rst b/documentation/source/build-fedora.rst --- a/documentation/source/build-fedora.rst +++ b/documentation/source/build-fedora.rst @@ -16,7 +16,7 @@ These packages are required. | cmake# version >= 3.12 | bison -| gettext-devel +| gcc | libxml2-devel | mercurial diff --git a/documentation/source/build.rst b/documentation/source/build.rst --- a/documentation/source/build.rst +++ b/documentation/source/build.rst @@ -6,18 +6,18 @@ Summary === For cmake, you should always build the code in a separate directory, say -"build". This directory should be outside of the source code tree. The -results of the build are stored in this directory. The location on the +"build". This directory should be outside of the source code tree. The +results of the build are stored in this directory. The location in the files
MonetDB: Dec2023 - Initialize variables.
Changeset: 4ff0ffd61e96 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/4ff0ffd61e96 Modified Files: monetdb5/modules/mal/txtsim.c Branch: Dec2023 Log Message: Initialize variables. diffs (12 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 @@ -887,7 +887,7 @@ minjarowinklerjoin(BAT **r1, BAT **r2, B BUN n; struct canditer lci, rci; const char *lvals, *rvals, *lvars, *rvars; - int lwidth, rwidth, lb, ub, m = -1, *x_flags = NULL, *y_flags = NULL; + int lwidth, rwidth, lb = 0, ub = 0, m = -1, *x_flags = NULL, *y_flags = NULL; str_item *ssl = NULL, *ssr = NULL, shortest; str msg = MAL_SUCCEED; const bool sliding_window_allowed = threshold > (2.01 + JARO_WINKLER_PREFIX_LEN * JARO_WINKLER_SCALING_FACTOR) / 3.0; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Merge with Dec2023 branch.
Changeset: 4098d0425403 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/4098d0425403 Modified Files: monetdb5/modules/mal/txtsim.c Branch: default Log Message: Merge with Dec2023 branch. diffs (12 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 @@ -887,7 +887,7 @@ minjarowinklerjoin(BAT **r1, BAT **r2, B BUN n; struct canditer lci, rci; const char *lvals, *rvals, *lvars, *rvars; - int lwidth, rwidth, lb, ub, m = -1, *x_flags = NULL, *y_flags = NULL; + int lwidth, rwidth, lb = 0, ub = 0, m = -1, *x_flags = NULL, *y_flags = NULL; str_item *ssl = NULL, *ssr = NULL, shortest; str msg = MAL_SUCCEED; const bool sliding_window_allowed = threshold > (2.01 + JARO_WINKLER_PREFIX_LEN * JARO_WINKLER_SCALING_FACTOR) / 3.0; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Jun2023 - Initialize variables.
Changeset: 50ce6c2f29fb for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/50ce6c2f29fb Modified Files: monetdb5/modules/mal/txtsim.c Branch: Jun2023 Log Message: Initialize variables. diffs (12 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 @@ -887,7 +887,7 @@ minjarowinklerjoin(BAT **r1, BAT **r2, B BUN n; struct canditer lci, rci; const char *lvals, *rvals, *lvars, *rvars; - int lwidth, rwidth, lb, ub, m = -1, *x_flags = NULL, *y_flags = NULL; + int lwidth, rwidth, lb = 0, ub = 0, m = -1, *x_flags = NULL, *y_flags = NULL; str_item *ssl = NULL, *ssr = NULL, shortest; str msg = MAL_SUCCEED; const bool sliding_window_allowed = threshold > (2.01 + JARO_WINKLER_PREFIX_LEN * JARO_WINKLER_SCALING_FACTOR) / 3.0; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - MMAP minsize depends on the amount of memory,...
Changeset: c142f7a8dd1f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c142f7a8dd1f Modified Files: gdk/gdk_utils.c Branch: Dec2023 Log Message: MMAP minsize depends on the amount of memory, not on virtual memory size. Also, print values on USR1 signal. diffs (45 lines): diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -1074,7 +1074,7 @@ GDKinit(opt *set, int setlen, bool embed first = false; if (GDK_mem_maxsize / 16 < GDK_mmap_minsize_transient) { - GDK_mmap_minsize_transient = GDK_mem_maxsize / 16; + GDK_mmap_minsize_transient = MAX(MMAP_PAGESIZE, GDK_mem_maxsize / 16); if (GDK_mmap_minsize_persistent > GDK_mmap_minsize_transient) GDK_mmap_minsize_persistent = GDK_mmap_minsize_transient; } @@ -1107,13 +1107,13 @@ GDKinit(opt *set, int setlen, bool embed if (strcmp("gdk_mem_maxsize", n[i].name) == 0) { GDK_mem_maxsize = (size_t) strtoll(n[i].value, NULL, 10); GDK_mem_maxsize = MAX(1 << 26, GDK_mem_maxsize); + if (GDK_mem_maxsize / 16 < GDK_mmap_minsize_transient) + GDK_mmap_minsize_transient = MAX(MMAP_PAGESIZE, GDK_mem_maxsize / 16); + if (GDK_mmap_minsize_persistent > GDK_mmap_minsize_transient) + GDK_mmap_minsize_persistent = GDK_mmap_minsize_transient; } else if (strcmp("gdk_vm_maxsize", n[i].name) == 0) { GDK_vm_maxsize = (size_t) strtoll(n[i].value, NULL, 10); GDK_vm_maxsize = MAX(1 << 30, GDK_vm_maxsize); - if (GDK_vm_maxsize < GDK_mmap_minsize_persistent / 4) - GDK_mmap_minsize_persistent = GDK_vm_maxsize / 4; - if (GDK_vm_maxsize < GDK_mmap_minsize_transient / 4) - GDK_mmap_minsize_transient = GDK_vm_maxsize / 4; } else if (strcmp("gdk_mmap_minsize_persistent", n[i].name) == 0) { GDK_mmap_minsize_persistent = (size_t) strtoll(n[i].value, NULL, 10); } else if (strcmp("gdk_mmap_minsize_transient", n[i].name) == 0) { @@ -2058,8 +2058,12 @@ GDKprintinfo(void) size_t allocated = (size_t) ATOMIC_GET(&GDK_mallocedbytes_estimate); size_t vmallocated = (size_t) ATOMIC_GET(&GDK_vm_cursize); - printf("Virtual memory allocated: %zu, of which %zu with malloc (limit: %zu)\n", - vmallocated + allocated, allocated, GDK_vm_maxsize); + printf("Virtual memory allocated: %zu, of which %zu with malloc\n", + vmallocated + allocated, allocated); + printf("vm limit: %zu, mem limit: %zu\n", + GDK_vm_maxsize, GDK_mem_maxsize); + printf("mmap persistent heaps over %zu, transient heaps over %zu\n", + GDK_mmap_minsize_persistent, GDK_mmap_minsize_transient); #ifdef __linux__ int fd = open("/proc/self/statm", O_RDONLY | O_CLOEXEC); if (fd >= 0) { ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Be explicit about the values we print with USR1.
Changeset: e763a0404666 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e763a0404666 Modified Files: gdk/gdk_utils.c Branch: Dec2023 Log Message: Be explicit about the values we print with USR1. diffs (15 lines): diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -2060,9 +2060,9 @@ GDKprintinfo(void) printf("Virtual memory allocated: %zu, of which %zu with malloc\n", vmallocated + allocated, allocated); - printf("vm limit: %zu, mem limit: %zu\n", + printf("gdk_vm_maxsize: %zu, gdk_mem_maxsize: %zu\n", GDK_vm_maxsize, GDK_mem_maxsize); - printf("mmap persistent heaps over %zu, transient heaps over %zu\n", + printf("gdk_mmap_minsize_persistent %zu, gdk_mmap_minsize_transient %zu\n", GDK_mmap_minsize_persistent, GDK_mmap_minsize_transient); #ifdef __linux__ int fd = open("/proc/self/statm", O_RDONLY | O_CLOEXEC); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Merge with Jun2023 branch.
Changeset: 3cfde7c496fa for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/3cfde7c496fa Modified Files: monetdb5/modules/mal/txtsim.c Branch: Dec2023 Log Message: Merge with Jun2023 branch. ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Merge with Dec2023 branch.
Changeset: 2c1bb47d7eda for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/2c1bb47d7eda Modified Files: monetdb5/modules/mal/txtsim.c Branch: default Log Message: Merge with Dec2023 branch. diffs (45 lines): diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -1074,7 +1074,7 @@ GDKinit(opt *set, int setlen, bool embed first = false; if (GDK_mem_maxsize / 16 < GDK_mmap_minsize_transient) { - GDK_mmap_minsize_transient = GDK_mem_maxsize / 16; + GDK_mmap_minsize_transient = MAX(MMAP_PAGESIZE, GDK_mem_maxsize / 16); if (GDK_mmap_minsize_persistent > GDK_mmap_minsize_transient) GDK_mmap_minsize_persistent = GDK_mmap_minsize_transient; } @@ -1107,13 +1107,13 @@ GDKinit(opt *set, int setlen, bool embed if (strcmp("gdk_mem_maxsize", n[i].name) == 0) { GDK_mem_maxsize = (size_t) strtoll(n[i].value, NULL, 10); GDK_mem_maxsize = MAX(1 << 26, GDK_mem_maxsize); + if (GDK_mem_maxsize / 16 < GDK_mmap_minsize_transient) + GDK_mmap_minsize_transient = MAX(MMAP_PAGESIZE, GDK_mem_maxsize / 16); + if (GDK_mmap_minsize_persistent > GDK_mmap_minsize_transient) + GDK_mmap_minsize_persistent = GDK_mmap_minsize_transient; } else if (strcmp("gdk_vm_maxsize", n[i].name) == 0) { GDK_vm_maxsize = (size_t) strtoll(n[i].value, NULL, 10); GDK_vm_maxsize = MAX(1 << 30, GDK_vm_maxsize); - if (GDK_vm_maxsize < GDK_mmap_minsize_persistent / 4) - GDK_mmap_minsize_persistent = GDK_vm_maxsize / 4; - if (GDK_vm_maxsize < GDK_mmap_minsize_transient / 4) - GDK_mmap_minsize_transient = GDK_vm_maxsize / 4; } else if (strcmp("gdk_mmap_minsize_persistent", n[i].name) == 0) { GDK_mmap_minsize_persistent = (size_t) strtoll(n[i].value, NULL, 10); } else if (strcmp("gdk_mmap_minsize_transient", n[i].name) == 0) { @@ -2058,8 +2058,12 @@ GDKprintinfo(void) size_t allocated = (size_t) ATOMIC_GET(&GDK_mallocedbytes_estimate); size_t vmallocated = (size_t) ATOMIC_GET(&GDK_vm_cursize); - printf("Virtual memory allocated: %zu, of which %zu with malloc (limit: %zu)\n", - vmallocated + allocated, allocated, GDK_vm_maxsize); + printf("Virtual memory allocated: %zu, of which %zu with malloc\n", + vmallocated + allocated, allocated); + printf("gdk_vm_maxsize: %zu, gdk_mem_maxsize: %zu\n", + GDK_vm_maxsize, GDK_mem_maxsize); + printf("gdk_mmap_minsize_persistent %zu, gdk_mmap_minsize_transient %zu\n", + GDK_mmap_minsize_persistent, GDK_mmap_minsize_transient); #ifdef __linux__ int fd = open("/proc/self/statm", O_RDONLY | O_CLOEXEC); if (fd >= 0) { ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
monetdb-java: default - Add missing license header. Also removed...
Changeset: 9b4c7faaa860 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java/rev/9b4c7faaa860 Modified Files: src/main/java/org/monetdb/jdbc/MonetVersion.java.in Branch: default Log Message: Add missing license header. Also removed public from this class as it is not part of JDBC public API. diffs (24 lines): diff --git a/src/main/java/org/monetdb/jdbc/MonetVersion.java.in b/src/main/java/org/monetdb/jdbc/MonetVersion.java.in --- a/src/main/java/org/monetdb/jdbc/MonetVersion.java.in +++ b/src/main/java/org/monetdb/jdbc/MonetVersion.java.in @@ -1,6 +1,14 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright 1997 - July 2008 CWI, August 2008 - 2023 MonetDB B.V. + */ + package org.monetdb.jdbc; -public final class MonetVersion { +final class MonetVersion { /** * Major version of MonetDB JDBC driver. @@ -17,4 +25,3 @@ public final class MonetVersion { */ public static String driverVersion = "@JDBC_MAJOR@.@JDBC_MINOR@ (@JDBC_VER_SUFFIX@)"; } - ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
monetdb-java: default - Now we have a MonetVersion class use it ...
Changeset: 23f84ff380c2 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java/rev/23f84ff380c2 Modified Files: src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java src/main/java/org/monetdb/jdbc/MonetDriver.java Branch: default Log Message: Now we have a MonetVersion class use it from MonetDatabaseMetaData also. The 2 static utility methods in MonetDriver (which were only called by MonetDatabaseMetaData)only are not needed anymore. diffs (80 lines): diff --git a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java --- a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java +++ b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java @@ -181,7 +181,7 @@ public final class MonetDatabaseMetaData */ @Override public String getDriverVersion() { - return MonetDriver.getDriverVersion(); + return MonetVersion.driverVersion; } /** @@ -191,7 +191,7 @@ public final class MonetDatabaseMetaData */ @Override public int getDriverMajorVersion() { - return MonetDriver.getDriverMajorVersion(); + return MonetVersion.majorVersion; } /** @@ -201,7 +201,7 @@ public final class MonetDatabaseMetaData */ @Override public int getDriverMinorVersion() { - return MonetDriver.getDriverMinorVersion(); + return MonetVersion.minorVersion; } /** diff --git a/src/main/java/org/monetdb/jdbc/MonetDriver.java b/src/main/java/org/monetdb/jdbc/MonetDriver.java --- a/src/main/java/org/monetdb/jdbc/MonetDriver.java +++ b/src/main/java/org/monetdb/jdbc/MonetDriver.java @@ -158,8 +158,7 @@ public final class MonetDriver implement */ @Override public int getMajorVersion() { - // defer to the static version of this method - return getDriverMajorVersion(); + return MonetVersion.majorVersion; } /** @@ -169,8 +168,7 @@ public final class MonetDriver implement */ @Override public int getMinorVersion() { - // defer to the static version of this method - return getDriverMinorVersion(); + return MonetVersion.minorVersion; } /** @@ -303,26 +301,6 @@ public final class MonetDriver implement /** -* Get MonetDB JDBC Driver major version number -* method called by MonetDatabaseMetaData methods -* @return MonetDB JDBC Driver major version number -*/ - static final int getDriverMajorVersion() { - // defer to the generated MonetVersion class - return MonetVersion.majorVersion; - } - - /** -* Get MonetDB JDBC Driver minor version number -* method called by MonetDatabaseMetaData methods -* @return MonetDB JDBC Driver minor version number -*/ - static final int getDriverMinorVersion() { - // defer to the generated MonetVersion class - return MonetVersion.minorVersion; - } - - /** * Returns a touched up identifying version string of this driver. * It is made public as it is called from org/monetdb/client/JdbcClient.java * @return the version string ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Prevent sql processor to produce server msg: ...
Changeset: bb7931160d93 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/bb7931160d93 Modified Files: clients/odbc/driver/ODBCQueries.h Branch: Dec2023 Log Message: Prevent sql processor to produce server msg: mul_int_bte_int: ERROR: 22003!overflow in calculation 2147483647*4. when computing the CHAR_OCTET_LENGTH. diffs (13 lines): diff --git a/clients/odbc/driver/ODBCQueries.h b/clients/odbc/driver/ODBCQueries.h --- a/clients/odbc/driver/ODBCQueries.h +++ b/clients/odbc/driver/ODBCQueries.h @@ -302,7 +302,7 @@ #define CHAR_OCTET_LENGTH(t) \ "cast(case when " #t ".type in ('varchar','clob','char','json','url','xml') " \ -"then 4 * " #t ".type_digits " \ +"then 4 * cast(" #t ".type_digits as bigint) " \ "when " #t ".type = 'blob' then " #t ".type_digits " \ -"else cast(null as integer) " \ +"else null " \ "end as integer) as \"CHAR_OCTET_LENGTH\"" ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Remove duplicate test ValidateSystemCatalogTa...
Changeset: 16a9e81aa331 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/16a9e81aa331 Removed Files: sql/test/sys-schema/Tests/ValidateSystemCatalogTables.SQL.py sql/test/sys-schema/Tests/ValidateSystemCatalogTables.sql Modified Files: sql/test/sys-schema/Tests/All Branch: Dec2023 Log Message: Remove duplicate test ValidateSystemCatalogTables. It is also done in sql/jdbc/tests/Tests/ diffs (53 lines): diff --git a/sql/test/sys-schema/Tests/All b/sql/test/sys-schema/Tests/All --- a/sql/test/sys-schema/Tests/All +++ b/sql/test/sys-schema/Tests/All @@ -20,5 +20,3 @@ webExamplesStringFunctions webExamplesUrlFunctions utilities - -HAVE_JDBCCLIENT_JAR?ValidateSystemCatalogTables diff --git a/sql/test/sys-schema/Tests/ValidateSystemCatalogTables.SQL.py b/sql/test/sys-schema/Tests/ValidateSystemCatalogTables.SQL.py deleted file mode 100755 --- a/sql/test/sys-schema/Tests/ValidateSystemCatalogTables.SQL.py +++ /dev/null @@ -1,27 +0,0 @@ -import os, sys -from subprocess import run, PIPE, CalledProcessError - -HOST=os.getenv('HOST') -MAPIPORT=os.getenv('MAPIPORT') -TSTDB=os.getenv('TSTDB') -TSTSRCBASE=os.getenv('TSTSRCBASE') -TSTDIR=os.getenv('TSTDIR') -CLIENT='org.monetdb.client.JdbcClient' -USER='monetdb' -PASSWORD='monetdb' - - -if __name__ == '__main__': -with open(os.path.join('.monetdb'), 'w') as f: -f.write('\n'.join(['user=monetdb', 'password=monetdb'])) -cmd = ['java', CLIENT, '-h', HOST, '-p', MAPIPORT, '-d', TSTDB, '-f', os.path.join(TSTSRCBASE, TSTDIR, 'Tests', 'ValidateSystemCatalogTables.sql')] -try: -p = run(cmd, stdout=PIPE, stderr=PIPE, check=True, encoding='utf-8') -pout = str(p.stdout) -if pout != "": -print(pout) -perr = str(p.stderr) -if perr != "": -print(perr) -except CalledProcessError as e: -raise SystemExit(e.stderr) diff --git a/sql/test/sys-schema/Tests/ValidateSystemCatalogTables.sql b/sql/test/sys-schema/Tests/ValidateSystemCatalogTables.sql deleted file mode 100644 --- a/sql/test/sys-schema/Tests/ValidateSystemCatalogTables.sql +++ /dev/null @@ -1,7 +0,0 @@ -\vsci_noheader -\vsni_noheader -\vsgi_noheader -\vsi_noheader sys -\vsi_noheader tmp -\vdbi_noheader - ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
monetdb-java: default - Enhance \vsi command by removing a trail...
Changeset: 1074ad1a4c63 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java/rev/1074ad1a4c63 Modified Files: src/main/java/org/monetdb/client/JdbcClient.java Branch: default Log Message: Enhance \vsi command by removing a trailing ; terminator from the provided schema name. diffs (14 lines): diff --git a/src/main/java/org/monetdb/client/JdbcClient.java b/src/main/java/org/monetdb/client/JdbcClient.java --- a/src/main/java/org/monetdb/client/JdbcClient.java +++ b/src/main/java/org/monetdb/client/JdbcClient.java @@ -736,7 +736,9 @@ public final class JdbcClient { } else if (command.equals("\\vsgi_noheader")) { // used only for internal automated testing MDBvalidator.validateSqlGeomTablesIntegrity(con, false); } else if (command.startsWith("\\vsi ")) { - String schema_nm = command.substring(5); + String schema_nm = command.substring(5).trim(); + if (schema_nm.endsWith(";")) + schema_nm = schema_nm.substring(0, schema_nm.length() - 1); MDBvalidator.validateSchemaIntegrity(con, schema_nm, true); } else if (command.startsWith("\\vsi_noheader ")) { // used only for internal automated testing String schema_nm = command.substring(14); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
monetdb-java: default - Enhanced DatabaseMetaData.getTables() me...
Changeset: b2cbe866d020 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java/rev/b2cbe866d020 Modified Files: ChangeLog src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java tests/JDBC_API_Tester.java Branch: default Log Message: Enhanced DatabaseMetaData.getTables() method by adding support for SQL table type names: 'BASE TABLE', 'GLOBAL TEMPORARY' and 'LOCAL TEMPORARY' in parameter types[]. These are SQL synonyms of MonetDB table type names: 'TABLE', 'GLOBAL TEMPORARY TABLE' and 'LOCAL TEMPORARY TABLE'. diffs (60 lines): diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog file for monetdb-java # This file is updated with Maddlog +* Wed Dec 20 2023 Martin van Dinther +- Enhanced DatabaseMetaData.getTables() method by adding support for SQL + table type names: 'BASE TABLE', 'GLOBAL TEMPORARY' and 'LOCAL TEMPORARY' + in parameter types[]. These are SQL synonyms of MonetDB table type names: + 'TABLE', 'GLOBAL TEMPORARY TABLE' and 'LOCAL TEMPORARY TABLE'. + * Thu Dec 14 2023 Martin van Dinther - In ResultSet.getObject() method added support for retrieving TIMESTAMP WITH TIME ZONE data as java.time.OffsetDateTime object diff --git a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java --- a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java +++ b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java @@ -1932,12 +1932,26 @@ public final class MonetDatabaseMetaData if (types != null && types.length > 0) { query.append(needWhere ? "WHERE" : " AND").append(" tt.\"table_type_name\" IN ("); for (int i = 0; i < types.length; i++) { + String tabletype = types[i]; + /* Some JDBC applications use different table type names. +* Replace some SQL synonyms to valid MonetDB +* table type names as defined in sys.table_types */ + if ("BASE TABLE".equals(tabletype)) { + tabletype = "TABLE"; + } else + if ("GLOBAL TEMPORARY".equals(tabletype)) { + tabletype = "GLOBAL TEMPORARY TABLE"; + } else + if ("LOCAL TEMPORARY".equals(tabletype)) { + tabletype = "LOCAL TEMPORARY TABLE"; + } if (i > 0) { query.append(','); } - query.append('\'').append(types[i]).append('\''); + query.append('\'').append(tabletype).append('\''); } query.append(')'); + // for debug: System.out.println("SQL (len " + query.length() + "): " + query); } query.append(" ORDER BY \"TABLE_TYPE\", \"TABLE_SCHEM\", \"TABLE_NAME\""); diff --git a/tests/JDBC_API_Tester.java b/tests/JDBC_API_Tester.java --- a/tests/JDBC_API_Tester.java +++ b/tests/JDBC_API_Tester.java @@ -1157,7 +1157,8 @@ final public class JDBC_API_Tester { "null jdbctst pk2cTABLE nullnullnull nullnullnull\n" + "null jdbctst pk_uc TABLE jdbctst.pk_uc table comment nullnullnullnullnull\n"); - compareResultSet(dbmd.getTables(null, "tmp", "tlargechar", null), "getTables(null, tmp, tlargechar, null)", + String tabletypes[] = {"BASE TABLE", "LOCAL TEMPORARY", "GLOBAL TEMPORARY"}; + compareResultSet(dbmd.getTables(null, "tmp", "tlargechar", tabletypes), "getTables(null, tmp, tlargechar, tabletypes)", "Resultset with 10 columns\n" + "TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS TYPE_CATTYPE_SCHEM TYPE_NAME SELF_REFERENCING_COL_NAME REF_GENERATION\n" + "char(1)varchar(1024) varchar(1024) varchar(25) varchar(1048576)char(1) char(1) char(1) char(1) char(1)\n" + ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - correct comment text
Changeset: e0269e0cb9c3 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e0269e0cb9c3 Modified Files: clients/odbc/driver/SQLTables.c Branch: Dec2023 Log Message: correct comment text diffs (14 lines): diff --git a/clients/odbc/driver/SQLTables.c b/clients/odbc/driver/SQLTables.c --- a/clients/odbc/driver/SQLTables.c +++ b/clients/odbc/driver/SQLTables.c @@ -222,8 +222,8 @@ MNDBTables(ODBCStmt *stmt, } buf[j] = 0; /* Some ODBC applications use different table type names. -* Replace those names to valid MonetDB table type names -* as defined in sys.tables_types */ +* Replace some SQL synonyms to valid MonetDB +* table type names as defined in sys.table_types */ if (strcmp("BASE TABLE", buf) == 0) { strcpy(buf, "TABLE"); } else ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
monetdb-java: default - Add testing against MonetDB Dec2023
Changeset: be78e5a8c9cd for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java/rev/be78e5a8c9cd Modified Files: .github/workflows/monetdbversions.yml Branch: default Log Message: Add testing against MonetDB Dec2023 diffs (11 lines): diff --git a/.github/workflows/monetdbversions.yml b/.github/workflows/monetdbversions.yml --- a/.github/workflows/monetdbversions.yml +++ b/.github/workflows/monetdbversions.yml @@ -16,6 +16,7 @@ jobs: - "monetdb/dev-builds:Jan2022" - "monetdb/dev-builds:Sep2022" - "monetdb/dev-builds:Jun2023" + - "monetdb/dev-builds:Dec2023" - "monetdb/dev-builds:default" services: ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Correct typo
Changeset: e53285fc47b7 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e53285fc47b7 Modified Files: monetdb5/modules/atoms/Tests/startswith.test Branch: Dec2023 Log Message: Correct typo diffs (9 lines): diff --git a/monetdb5/modules/atoms/Tests/startswith.test b/monetdb5/modules/atoms/Tests/startswith.test --- a/monetdb5/modules/atoms/Tests/startswith.test +++ b/monetdb5/modules/atoms/Tests/startswith.test @@ -90,4 +90,4 @@ drop table bar query T select ['Camón Romasan'] startsWith ['camu', true]; -false +False ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org