MonetDB: default - Merge with Dec2023 branch.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: e97cd4d87b96 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e97cd4d87b96
Modified Files:
gdk/gdk.h
gdk/gdk_strimps.c
monetdb5/mal/mal_profiler.c
monetdb5/modules/mal/remote.c
sql/storage/bat/bat_storage.c
Branch: default
Log Message:

Merge with Dec2023 branch.


diffs (114 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -900,9 +900,10 @@ gdk_export size_t HEAPmemsize(Heap *h);
 gdk_export void HEAPdecref(Heap *h, bool remove);
 gdk_export void HEAPincref(Heap *h);
 
-#define isVIEW(x)  \
-   (((x)->theap && (x)->theap->parentid != (x)->batCacheid) || \
-((x)->tvheap && (x)->tvheap->parentid != (x)->batCacheid))
+#define VIEWtparent(x) ((x)->theap == NULL || (x)->theap->parentid == 
(x)->batCacheid ? 0 : (x)->theap->parentid)
+#define VIEWvtparent(x)((x)->tvheap == NULL || (x)->tvheap->parentid 
== (x)->batCacheid ? 0 : (x)->tvheap->parentid)
+
+#define isVIEW(x)  (VIEWtparent(x) != 0 || VIEWvtparent(x) != 0)
 
 /*
  * @+ BAT Buffer Pool
@@ -1083,7 +1084,7 @@ bat_iterator_nolock(BAT *b)
 {
/* does not get matched by bat_iterator_end */
if (b) {
-   bool isview = isVIEW(b);
+   bool isview = VIEWtparent(b);
return (BATiter) {
.b = b,
.h = b->theap,
@@ -2162,9 +2163,6 @@ gdk_export void VIEWbounds(BAT *b, BAT *
}   \
} while (false)
 
-#define VIEWtparent(x) ((x)->theap == NULL || (x)->theap->parentid == 
(x)->batCacheid ? 0 : (x)->theap->parentid)
-#define VIEWvtparent(x)((x)->tvheap == NULL || (x)->tvheap->parentid 
== (x)->batCacheid ? 0 : (x)->tvheap->parentid)
-
 /*
  * @+ BAT Iterators
  *  @multitable @columnfractions 0.15 0.7
diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c
--- a/gdk/gdk_strimps.c
+++ b/gdk/gdk_strimps.c
@@ -551,7 +551,7 @@ STRMPfilter(BAT *b, BAT *s, const char *
 
TRC_DEBUG_IF(ACCELERATOR) t0 = GDKusec();
 
-   if (isVIEW(b)) {
+   if (VIEWtparent(b)) {
pb = BATdescriptor(VIEWtparent(b));
if (pb == NULL)
return NULL;
diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -396,7 +396,7 @@ prepareMalEvent(Client cntxt, MalBlkPtr 
 * without further locking */
MT_lock_unset(>theaplock);
cnt = di.count;
-   if (isVIEW(d)) {
+   if (VIEWtparent(d)) {
BAT *v = 
BBP_desc(VIEWtparent(d));

MT_lock_set(>theaplock);
bool vtransient = 
v->batTransient;
diff --git a/monetdb5/modules/mal/remote.c b/monetdb5/modules/mal/remote.c
--- a/monetdb5/modules/mal/remote.c
+++ b/monetdb5/modules/mal/remote.c
@@ -1546,7 +1546,7 @@ RMTbincopyto(Client cntxt, MalBlkPtr mb,
 
sendtheap = b->ttype != TYPE_void;
sendtvheap = sendtheap && b->tvheap;
-   if (isVIEW(b) && sendtvheap && VIEWvtparent(b)
+   if (sendtvheap && VIEWvtparent(b)
&& BATcount(b) < BATcount(BBP_desc(VIEWvtparent(b {
if ((b = BATdescriptor(bid)) == NULL) {
BBPunfix(bid);
diff --git a/sql/backends/monet5/sql_statistics.c 
b/sql/backends/monet5/sql_statistics.c
--- a/sql/backends/monet5/sql_statistics.c
+++ b/sql/backends/monet5/sql_statistics.c
@@ -183,7 +183,7 @@ sql_analyze(Client cntxt, MalBlkPtr mb, 
int access = c->storage_type && 
c->storage_type[0] == 'D' ? RD_EXT : RDONLY;
if (!(b = 
store->storage_api.bind_col(tr, c, access)))
continue; /* At the moment we 
ignore the error, but maybe we can change this */
-   if (isVIEW(b)) { /* If it is a view get 
the parent BAT */
+   if (VIEWtparent(b)) { /* If it is a 
view get the parent BAT */
BAT *nb = 
BATdescriptor(VIEWtparent(b));
BBPunfix(b->batCacheid);
b = nb;
@@ -370,7 +370,7 @@ sql_statistics(Client cntxt, MalBlkPtr m
goto bailout;
}
BATiter rei = 
bat_iterator(re);
- 

MonetDB: Dec2023 - isVIEW(x) == true does not imply VIEWtparent(...

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: f18ad1b06096 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f18ad1b06096
Modified Files:
gdk/gdk.h
gdk/gdk_strimps.c
monetdb5/mal/mal_profiler.c
monetdb5/modules/mal/remote.c
sql/backends/monet5/sql_statistics.c
sql/storage/bat/bat_storage.c
Branch: Dec2023
Log Message:

isVIEW(x) == true does not imply VIEWtparent(x) != 0.


diffs (114 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -906,9 +906,10 @@ gdk_export size_t HEAPmemsize(Heap *h);
 gdk_export void HEAPdecref(Heap *h, bool remove);
 gdk_export void HEAPincref(Heap *h);
 
-#define isVIEW(x)  \
-   (((x)->theap && (x)->theap->parentid != (x)->batCacheid) || \
-((x)->tvheap && (x)->tvheap->parentid != (x)->batCacheid))
+#define VIEWtparent(x) ((x)->theap == NULL || (x)->theap->parentid == 
(x)->batCacheid ? 0 : (x)->theap->parentid)
+#define VIEWvtparent(x)((x)->tvheap == NULL || (x)->tvheap->parentid 
== (x)->batCacheid ? 0 : (x)->tvheap->parentid)
+
+#define isVIEW(x)  (VIEWtparent(x) != 0 || VIEWvtparent(x) != 0)
 
 /*
  * @+ BAT Buffer Pool
@@ -1091,7 +1092,7 @@ bat_iterator_nolock(BAT *b)
 {
/* does not get matched by bat_iterator_end */
if (b) {
-   bool isview = isVIEW(b);
+   bool isview = VIEWtparent(b);
return (BATiter) {
.b = b,
.h = b->theap,
@@ -2191,9 +2192,6 @@ gdk_export void VIEWbounds(BAT *b, BAT *
}   \
} while (false)
 
-#define VIEWtparent(x) ((x)->theap == NULL || (x)->theap->parentid == 
(x)->batCacheid ? 0 : (x)->theap->parentid)
-#define VIEWvtparent(x)((x)->tvheap == NULL || (x)->tvheap->parentid 
== (x)->batCacheid ? 0 : (x)->tvheap->parentid)
-
 /*
  * @+ BAT Iterators
  *  @multitable @columnfractions 0.15 0.7
diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c
--- a/gdk/gdk_strimps.c
+++ b/gdk/gdk_strimps.c
@@ -551,7 +551,7 @@ STRMPfilter(BAT *b, BAT *s, const char *
 
TRC_DEBUG_IF(ACCELERATOR) t0 = GDKusec();
 
-   if (isVIEW(b)) {
+   if (VIEWtparent(b)) {
pb = BATdescriptor(VIEWtparent(b));
if (pb == NULL)
return NULL;
diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -399,7 +399,7 @@ prepareMalEvent(Client cntxt, MalBlkPtr 
 * without further locking */
MT_lock_unset(>theaplock);
cnt = di.count;
-   if (isVIEW(d)) {
+   if (VIEWtparent(d)) {
BAT *v = 
BBP_desc(VIEWtparent(d));
bool vtransient = true;
if (v) {
diff --git a/monetdb5/modules/mal/remote.c b/monetdb5/modules/mal/remote.c
--- a/monetdb5/modules/mal/remote.c
+++ b/monetdb5/modules/mal/remote.c
@@ -1536,7 +1536,7 @@ RMTbincopyto(Client cntxt, MalBlkPtr mb,
 
sendtheap = b->ttype != TYPE_void;
sendtvheap = sendtheap && b->tvheap;
-   if (isVIEW(b) && sendtvheap && VIEWvtparent(b)
+   if (sendtvheap && VIEWvtparent(b)
&& BATcount(b) < BATcount(BBP_desc(VIEWvtparent(b {
if ((b = BATdescriptor(bid)) == NULL) {
BBPunfix(bid);
diff --git a/sql/backends/monet5/sql_statistics.c 
b/sql/backends/monet5/sql_statistics.c
--- a/sql/backends/monet5/sql_statistics.c
+++ b/sql/backends/monet5/sql_statistics.c
@@ -183,7 +183,7 @@ sql_analyze(Client cntxt, MalBlkPtr mb, 
int access = c->storage_type && 
c->storage_type[0] == 'D' ? RD_EXT : RDONLY;
if (!(b = 
store->storage_api.bind_col(tr, c, access)))
continue; /* At the moment we 
ignore the error, but maybe we can change this */
-   if (isVIEW(b)) { /* If it is a view get 
the parent BAT */
+   if (VIEWtparent(b)) { /* If it is a 
view get the parent BAT */
BAT *nb = 
BATdescriptor(VIEWtparent(b));
BBPunfix(b->batCacheid);
b = nb;
@@ -370,7 +370,7 @@ sql_statistics(Client cntxt, MalBlkPtr m
goto bailout;
}
BATiter rei 

MonetDB: balanced_union - Merges default

2024-05-07 Thread stefanos mavros via checkin-list
Changeset: e7f9880d0b63 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e7f9880d0b63
Branch: balanced_union
Log Message:

Merges default


diffs (truncated from 8650 to 300 lines):

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
@@ -800,9 +800,9 @@ str QLOGcatalog(BAT **r);
 str QLOGdisable(void *ret);
 str QLOGempty(void *ret);
 str QLOGenable(void *ret);
-str QLOGenableThreshold(void *ret, int *threshold);
+str QLOGenableThreshold(void *ret, const int *threshold);
 int QLOGisset(void);
-str RMTdisconnect(void *ret, str *conn);
+str RMTdisconnect(void *ret, const char *const *conn);
 BUN SQLload_file(Client cntxt, Tablet *as, bstream *b, stream *out, const char 
*csep, const char *rsep, char quote, lng skip, lng maxrow, int best, bool 
from_stdin, const char *tabnam, bool escape);
 str TABLETcollect(BAT **bats, Tablet *as);
 str TABLETcreate_bats(Tablet *as, BUN est);
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
@@ -760,7 +760,7 @@ BATXMLroot(bat *ret, const bat *bid, con
  *standalone);
snprintf(buf + i, len - i, "?>%s", t + 1);
buf++;
-   XMLisdocument(, );/* check 
well-formedness */
+   XMLisdocument(, &(const char *){buf});/* 
check well-formedness */
buf--;
if (!isdoc) {
err = XML_NOT_WELL_FORMED;
diff --git a/monetdb5/modules/atoms/blob.c b/monetdb5/modules/atoms/blob.c
--- a/monetdb5/modules/atoms/blob.c
+++ b/monetdb5/modules/atoms/blob.c
@@ -130,7 +130,7 @@ BLOBnitems_bulk(Client cntxt, MalBlkPtr 
 }
 
 static str
-BLOBtoblob(blob **retval, str *s)
+BLOBtoblob(blob **retval, const char *const *s)
 {
size_t len = strLen(*s);
blob *b = (blob *) GDKmalloc(blobsize(len));
@@ -144,7 +144,7 @@ BLOBtoblob(blob **retval, str *s)
 }
 
 static str
-BLOBblob_blob(blob **d, blob **s)
+BLOBblob_blob(blob **d, const blob *const*s)
 {
size_t len = blobsize((*s)->nitems);
blob *b;
@@ -238,7 +238,7 @@ BLOBblob_blob_bulk(bat *res, const bat *
 }
 
 static str
-BLOBblob_fromstr(blob **b, const char **s)
+BLOBblob_fromstr(blob **b, const char *const*s)
 {
size_t len = 0;
 
diff --git a/monetdb5/modules/atoms/identifier.c 
b/monetdb5/modules/atoms/identifier.c
--- a/monetdb5/modules/atoms/identifier.c
+++ b/monetdb5/modules/atoms/identifier.c
@@ -93,7 +93,7 @@ IDtoString(char **retval, size_t *len, c
  * to parse the string.
  */
 static str
-IDentifier(identifier *retval, str *in)
+IDentifier(identifier *retval, const char *const *in)
 {
size_t len = 0;
 
diff --git a/monetdb5/modules/atoms/inet.c b/monetdb5/modules/atoms/inet.c
--- a/monetdb5/modules/atoms/inet.c
+++ b/monetdb5/modules/atoms/inet.c
@@ -229,7 +229,7 @@ INETtoString(str *retval, size_t *len, c
  * to parse the string.
  */
 static str
-INETnew(inet *retval, str *in)
+INETnew(inet *retval, const char *const *in)
 {
ssize_t pos;
size_t len = sizeof(inet);
@@ -787,7 +787,7 @@ INET_inet(inet *d, const inet *s)
 }
 
 static str
-INET_fromstr(inet *ret, str *s)
+INET_fromstr(inet *ret, const char *const *s)
 {
size_t len = sizeof(inet);
if (INETfromString(*s, , (void **) , false) < 0)
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
@@ -233,7 +233,7 @@ JSONtoStorageString(JSON *jt, int idx, j
return msg;
 }
 
-static str JSONstr2json(json *ret, const char **j);
+static str JSONstr2json(json *ret, const char *const*j);
 
 static ssize_t
 JSONfromString(const char *src, size_t *len, void **J, bool external)
@@ -338,7 +338,7 @@ JSONtoString(str *s, size_t *len, const 
 }
 
 static BAT *
-JSONdumpInternal(JSON *jt, int depth)
+JSONdumpInternal(const JSON *jt, int depth)
 {
int i, idx;
JSONterm *je;
@@ -464,7 +464,7 @@ JSONdump(Client cntxt, MalBlkPtr mb, Mal
(void) cntxt;
 
bat *ret = getArgReference_bat(stk, pci, 0);
-   json *val = (json *) getArgReference(stk, pci, 1);
+   const json *val = (json *) getArgReference(stk, pci, 1);
JSON *jt = JSONparse(*val);
 
CHECK_JSON(jt);
@@ -503,7 +503,7 @@ JSON2json(json *ret, const json *j)
 }
 
 static str
-JSONstr2json(json *ret, const char **j)
+JSONstr2json(json *ret, const char *const*j)
 {
str msg = MAL_SUCCEED;
json buf = NULL;
@@ -541,7 +541,7 @@ JSONstr2json(json *ret, const char **j)
 }
 
 static str
-JSONisvalid(bit *ret, str *j)
+JSONisvalid(bit *ret, const char *const *j)
 {
if (strNil(*j)) {
*ret = bit_nil;
@@ -556,12 +556,12 @@ JSONisvalid(bit *ret, str *j)
 }
 
 static 

MonetDB: balanced_union - Fixes expected plan in test Bug-7140

2024-05-07 Thread stefanos mavros via checkin-list
Changeset: 547c5e34780d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/547c5e34780d
Modified Files:
sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test
Branch: balanced_union
Log Message:

Fixes expected plan in test Bug-7140


diffs (33 lines):

diff --git a/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test 
b/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test
--- a/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test
+++ b/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test
@@ -121,17 +121,21 @@ project (
 | | | munion (
 | | | | group by (
 | | | | | project (
-| | | | | | select (
-| | | | | | | table("sys"."plantest0") [ "plantest0"."id" ]
-| | | | | | ) [ ("plantest0"."id") >= (bigint(28) "15000") ]
-| | | | | ) [ "sys"."sql_div"("plantest0"."id" NOT NULL, int(24) "1000") 
NOT NULL as "t"."id_r" ]
+| | | | | | project (
+| | | | | | | select (
+| | | | | | | | table("sys"."plantest0") [ "plantest0"."id" ]
+| | | | | | | ) [ ("plantest0"."id") >= (bigint(28) "15000") ]
+| | | | | | ) [ "sys"."sql_div"("plantest0"."id" NOT NULL, int(24) "1000") 
NOT NULL as "id_div" ]
+| | | | | ) [ "id_div" NOT NULL as "t"."id_r" ]
 | | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil 
("t"."id_r" NOT NULL) NOT NULL as "%5"."%5" ],
 | | | | group by (
 | | | | | project (
-| | | | | | select (
-| | | | | | | table("sys"."plantest1") [ "plantest1"."id" ]
-| | | | | | ) [ ("plantest1"."id") >= (bigint(28) "15000") ]
-| | | | | ) [ "sys"."sql_div"("plantest1"."id" NOT NULL, int(24) "1000") 
NOT NULL as "t"."id_r" ]
+| | | | | | project (
+| | | | | | | select (
+| | | | | | | | table("sys"."plantest1") [ "plantest1"."id" ]
+| | | | | | | ) [ ("plantest1"."id") >= (bigint(28) "15000") ]
+| | | | | | ) [ "sys"."sql_div"("plantest1"."id" NOT NULL, int(24) "1000") 
NOT NULL as "id_div" ]
+| | | | | ) [ "id_div" NOT NULL as "t"."id_r" ]
 | | | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."count" no nil 
("t"."id_r" NOT NULL) NOT NULL as "%5"."%5" ]
 | | | ) [ "t"."id_r" NOT NULL, "%5"."%5" NOT NULL ]
 | | ) [ "t"."id_r" NOT NULL ] [ "t"."id_r" NOT NULL, "sys"."sum" no nil 
("%5"."%5" NOT NULL) NOT NULL as "%5"."%5" ]
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: balanced_union - Fixes plan in test Bug-3955

2024-05-07 Thread stefanos mavros via checkin-list
Changeset: 276cd2e84b60 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/276cd2e84b60
Modified Files:
sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test
Branch: balanced_union
Log Message:

Fixes plan in test Bug-3955


diffs (57 lines):

diff --git a/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test 
b/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test
--- a/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test
+++ b/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test
@@ -41,8 +41,8 @@ FROM (
 ) AS tmp
 
 query IR rowsort
-select * from r 
-
+select * from r
+
 0
 2.283
 1
@@ -55,23 +55,25 @@ PLAN select * from r
 
 project (
 | project (
-| | crossproduct (
-| | | table("sys"."v") [ "v"."a1" UNIQUE, "v"."a2" ],
-| | | project (
-| | | | crossproduct (
-| | | | | project (
-| | | | | | select (
-| | | | | | | table("sys"."input_double") [ "input_double"."a1" UNIQUE, 
"input_double"."a2" UNIQUE ]
-| | | | | | ) [ ("input_double"."a1" UNIQUE) = (varchar "latitude") ]
-| | | | | ) [ "input_double"."a2" UNIQUE as "tmp_2"."a2" ],
-| | | | | project (
-| | | | | | select (
-| | | | | | | table("sys"."input_double") [ "input_double"."a1" UNIQUE, 
"input_double"."a2" UNIQUE ]
-| | | | | | ) [ ("input_double"."a1" UNIQUE) = (varchar "longitude") ]
-| | | | | ) [ "input_double"."a2" UNIQUE as "tmp_3"."a2" ]
-| | | | ) [  ]
-| | | ) [ "sys"."st_point"("tmp_2"."a2", "tmp_3"."a2") as "p"."a1" ]
-| | ) [  ]
+| | project (
+| | | crossproduct (
+| | | | table("sys"."v") [ "v"."a1" UNIQUE, "v"."a2" ],
+| | | | project (
+| | | | | crossproduct (
+| | | | | | project (
+| | | | | | | select (
+| | | | | | | | table("sys"."input_double") [ "input_double"."a1" UNIQUE, 
"input_double"."a2" UNIQUE ]
+| | | | | | | ) [ ("input_double"."a1" UNIQUE) = (varchar "latitude") ]
+| | | | | | ) [ "input_double"."a2" UNIQUE as "tmp_2"."a2" ],
+| | | | | | project (
+| | | | | | | select (
+| | | | | | | | table("sys"."input_double") [ "input_double"."a1" UNIQUE, 
"input_double"."a2" UNIQUE ]
+| | | | | | | ) [ ("input_double"."a1" UNIQUE) = (varchar "longitude") ]
+| | | | | | ) [ "input_double"."a2" UNIQUE as "tmp_3"."a2" ]
+| | | | | ) [  ]
+| | | | ) [ "sys"."st_point"("tmp_2"."a2", "tmp_3"."a2") as "a1" ]
+| | | ) [  ]
+| | ) [ "v"."a1", "v"."a2", "a1" as "p"."a1" ]
 | ) [ "v"."a1" as "a1", "sys"."st_distance"("v"."a2", "p"."a1") as "prob" ]
 ) [ "a1" as "r"."a1", "prob" as "r"."prob" ]
 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: ascii-flag - Merge with default branch.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: 8e2d926b65bf for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8e2d926b65bf
Branch: ascii-flag
Log Message:

Merge with default branch.


diffs (truncated from 3634 to 300 lines):

diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -479,9 +479,11 @@ CLTqueryTimeout(Client cntxt, MalBlkPtr 
lng timeout_micro = ATOMIC_GET() & FORCEMITOMASK
&& qto == 1 ? 1000 : (lng) qto * 100;
mal_clients[idx].querytimeout = timeout_micro;
-   QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-   if (qry_ctx) {
-   qry_ctx->endtime = qry_ctx->starttime && timeout_micro 
? qry_ctx->starttime + timeout_micro : 0;
+   if (timeout_micro != 1000) {
+   QryCtx *qry_ctx = MT_thread_get_qry_ctx();
+   if (qry_ctx) {
+   qry_ctx->endtime = qry_ctx->starttime && 
timeout_micro ? qry_ctx->starttime + timeout_micro : 0;
+   }
}
}
MT_lock_unset(_contextLock);
diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit 
b/sql/test/emptydb/Tests/check.stable.out.32bit
--- a/sql/test/emptydb/Tests/check.stable.out.32bit
+++ b/sql/test/emptydb/Tests/check.stable.out.32bit
@@ -39,7 +39,7 @@ select 'sys.objects', o.name, case when 
 --  schemas
 select 'default schema of user', s.name, u.name from sys.schemas s, sys.users 
u where s.id = u.default_schema order by s.name, u.name;
 --  tables
-select 'grant on table', t.name, a.name, pc.privilege_code_name, g.name, 
p.grantable from sys._tables t, sys.privileges p left outer join sys.auths g on 
p.grantor = g.id left outer join sys.privilege_codes pc on p.privileges = 
pc.privilege_code_id, sys.auths a where t.id = p.obj_id and p.auth_id = a.id 
order by t.name, a.name;
+select 'grant on table', t.name, a.name, pc.privilege_code_name, g.name, 
p.grantable from sys._tables t, sys.privileges p left outer join sys.auths g on 
p.grantor = g.id left outer join sys.privilege_codes pc on p.privileges = 
pc.privilege_code_id, sys.auths a where t.id = p.obj_id and p.auth_id = a.id 
order by t.name, a.name, g.name nulls first;
 --  columns
 select 'grant on column', t.name, c.name, a.name, pc.privilege_code_name, 
g.name, p.grantable from sys._tables t, sys._columns c, sys.privileges p left 
outer join sys.auths g on p.grantor = g.id left outer join sys.privilege_codes 
pc on p.privileges = pc.privilege_code_id, sys.auths a where c.id = p.obj_id 
and c.table_id = t.id and p.auth_id = a.id order by t.name, c.name, a.name;
 --  functions
@@ -433,7 +433,7 @@ select 'null in fkeys.delete_action_id',
 select 'null in fkeys.delete_action', delete_action, * from sys.fkeys where 
delete_action is null;
 % .%1, .s, .,  .,  .s, . # table_name
 % %1,  name,   authorization,  owner,  system, comment # name
-% char,varchar,varchar,varchar,boolean,
varchar # type
+% varchar, varchar,varchar,varchar,boolean,
varchar # type
 % 11,  18, 8,  7,  5,  28 # length
 [ "sys.schemas",   "information_schema",   "monetdb",  "monetdb",  
true,   "ISO/IEC 9075-11 SQL/Schemata"  ]
 [ "sys.schemas",   "json", "monetdb",  "monetdb",  true,   NULL
]
@@ -443,8 +443,8 @@ select 'null in fkeys.delete_action', de
 [ "sys.schemas",   "tmp",  "sysadmin", "monetdb",  true,   NULL
]
 % .%25,.s, .t, .,  .,  .t, .,  .,  . # 
table_name
 % %25, name,   name,   query,  type,   system, commit_action,  access, comment 
# name
-% char,varchar,varchar,char,   varchar,
boolean,char,   char,   varchar # type
-% 11,  18, 34, 6812,   5,  5,  8,  10, 0 # length
+% varchar, varchar,varchar,varchar,varchar,
boolean,varchar,varchar,varchar # type
+% 11,  18, 34, 6812,   5,  5,  8,  8,  0 # length
 [ "sys._tables",   "information_schema",   "character_sets",   "create 
view information_schema.character_sets as select cast(null as varchar(1)) as 
character_set_catalog, cast(null as varchar(1)) as character_set_schema, 
cast('UTF-8' as varchar(16)) as character_set_name, cast('ISO/IEC 10646:2021' 
as varchar(20)) as character_repertoire, cast('UTF-8' as varchar(16)) as 
form_of_use, cast(null as varchar(1)) as default_collate_catalog, cast(null as 
varchar(1)) as default_collate_schema, cast(null as varchar(1)) as 
default_collate_name;",  "VIEW", true,   "COMMIT",   "WRITABLE", NULL   
 ]
 [ "sys._tables",   "information_schema",   "check_constraints","create 
view information_schema.check_constraints as select cast(null as varchar(1)) as 
constraint_catalog, 

MonetDB: default - Merge with Dec2023 branch.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: b9b9086ac1ad for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b9b9086ac1ad
Modified Files:
monetdb5/modules/mal/clients.c
Branch: default
Log Message:

Merge with Dec2023 branch.


diffs (31 lines):

diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -479,9 +479,11 @@ CLTqueryTimeout(Client cntxt, MalBlkPtr 
lng timeout_micro = ATOMIC_GET() & FORCEMITOMASK
&& qto == 1 ? 1000 : (lng) qto * 100;
mal_clients[idx].querytimeout = timeout_micro;
-   QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-   if (qry_ctx) {
-   qry_ctx->endtime = qry_ctx->starttime && timeout_micro 
? qry_ctx->starttime + timeout_micro : 0;
+   if (timeout_micro != 1000) {
+   QryCtx *qry_ctx = MT_thread_get_qry_ctx();
+   if (qry_ctx) {
+   qry_ctx->endtime = qry_ctx->starttime && 
timeout_micro ? qry_ctx->starttime + timeout_micro : 0;
+   }
}
}
MT_lock_unset(_contextLock);
diff --git a/sql/test/strimps/Tests/small_string_crash.test 
b/sql/test/strimps/Tests/small_string_crash.test
--- a/sql/test/strimps/Tests/small_string_crash.test
+++ b/sql/test/strimps/Tests/small_string_crash.test
@@ -117,3 +117,9 @@ SELECT * FROM fal WHERE x LIKE 'Daniel%'
 Daniel Sims
 Daniel Sullivan
 
+query T nosort
+SELECT * FROM fal WHERE startswith(x, 'Daniel')
+
+Daniel Sims
+Daniel Sullivan
+
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: ascii-flag - Changelog blurb.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: c5c6f73f2644 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c5c6f73f2644
Modified Files:
common/stream/ChangeLog
gdk/ChangeLog
Branch: ascii-flag
Log Message:

Changelog blurb.


diffs (32 lines):

diff --git a/common/stream/ChangeLog b/common/stream/ChangeLog
--- a/common/stream/ChangeLog
+++ b/common/stream/ChangeLog
@@ -1,6 +1,11 @@
 # ChangeLog file for stream
 # This file is updated with Maddlog
 
+* Fri May  3 2024 Sjoerd Mullender 
+- ICONV support has been removed from the stream library.  The server
+  itself only needs UTF-8 support.  The client (mclient) does have
+  iconv support.
+
 * Wed Feb 21 2024 Sjoerd Mullender 
 - CURL support has been removed from the stream library.  If support is
   needed, look at the source code in either streamcat.c or mclient.c.
diff --git a/gdk/ChangeLog b/gdk/ChangeLog
--- a/gdk/ChangeLog
+++ b/gdk/ChangeLog
@@ -1,6 +1,13 @@
 # ChangeLog file for GDK
 # This file is updated with Maddlog
 
+* Fri May  3 2024 Sjoerd Mullender 
+- Various changes were made having to do with things like case-insensitive
+  comparisons and converting to upper or lower case.  Case insensitive
+  comparison (i.e. the ILIKE operator) uses case folding which is similar
+  to converting to lower case, but changes more characters, also sometimes
+  to multiple characters (e.g. German sharp s (ß) comparse equal to SS).
+
 * Tue Mar 26 2024 Sjoerd Mullender 
 - Made some changes to how BAT descriptors are allocated.  They are now
   allocated in bulk, meaning fewer malloc/free calls during processing.
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: ascii-flag - Approve some space changes.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: 8ebf0e62b30f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8ebf0e62b30f
Modified Files:
clients/Tests/MAL-signatures-hge.test
Branch: ascii-flag
Log Message:

Approve some space changes.


diffs (39 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
@@ -34320,12 +34320,12 @@ BATSTRasciify;
 Transform BAT of strings from UTF8 to ASCII
 batstr
 caseFold
-pattern batstr.caseFold(X_0:bat[:str]):bat[:str] 
+pattern batstr.caseFold(X_0:bat[:str]):bat[:str]
 STRbatCaseFold;
 Fold the case of a string.
 batstr
 caseFold
-pattern batstr.caseFold(X_0:bat[:str], X_1:bat[:oid]):bat[:str] 
+pattern batstr.caseFold(X_0:bat[:str], X_1:bat[:oid]):bat[:str]
 STRbatCaseFold;
 Fold the case of a string.
 batstr
@@ -50310,7 +50310,7 @@ STRasciify;
 Transform string from UTF8 to ASCII
 str
 caseFold
-command str.caseFold(X_0:str):str 
+command str.caseFold(X_0:str):str
 STRcasefold;
 Fold the case of a string.
 str
@@ -50394,11 +50394,6 @@ pattern str.endswithselect(X_0:bat[:str]
 STRendswithselect;
 Select all head values of the first input BAT for which the@tail value end 
with the given suffix + icase.
 str
-epilogue
-command str.epilogue():void
-STRepilogue;
-(empty)
-str
 insert
 command str.insert(X_0:str, X_1:int, X_2:int, X_3:str):str
 STRinsert;
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Approve 32 bit output.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: 775c53d2116c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/775c53d2116c
Modified Files:
sql/test/emptydb/Tests/check.stable.out.32bit
Branch: default
Log Message:

Approve 32 bit output.


diffs (truncated from 3603 to 300 lines):

diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit 
b/sql/test/emptydb/Tests/check.stable.out.32bit
--- a/sql/test/emptydb/Tests/check.stable.out.32bit
+++ b/sql/test/emptydb/Tests/check.stable.out.32bit
@@ -39,7 +39,7 @@ select 'sys.objects', o.name, case when 
 --  schemas
 select 'default schema of user', s.name, u.name from sys.schemas s, sys.users 
u where s.id = u.default_schema order by s.name, u.name;
 --  tables
-select 'grant on table', t.name, a.name, pc.privilege_code_name, g.name, 
p.grantable from sys._tables t, sys.privileges p left outer join sys.auths g on 
p.grantor = g.id left outer join sys.privilege_codes pc on p.privileges = 
pc.privilege_code_id, sys.auths a where t.id = p.obj_id and p.auth_id = a.id 
order by t.name, a.name;
+select 'grant on table', t.name, a.name, pc.privilege_code_name, g.name, 
p.grantable from sys._tables t, sys.privileges p left outer join sys.auths g on 
p.grantor = g.id left outer join sys.privilege_codes pc on p.privileges = 
pc.privilege_code_id, sys.auths a where t.id = p.obj_id and p.auth_id = a.id 
order by t.name, a.name, g.name nulls first;
 --  columns
 select 'grant on column', t.name, c.name, a.name, pc.privilege_code_name, 
g.name, p.grantable from sys._tables t, sys._columns c, sys.privileges p left 
outer join sys.auths g on p.grantor = g.id left outer join sys.privilege_codes 
pc on p.privileges = pc.privilege_code_id, sys.auths a where c.id = p.obj_id 
and c.table_id = t.id and p.auth_id = a.id order by t.name, c.name, a.name;
 --  functions
@@ -433,7 +433,7 @@ select 'null in fkeys.delete_action_id',
 select 'null in fkeys.delete_action', delete_action, * from sys.fkeys where 
delete_action is null;
 % .%1, .s, .,  .,  .s, . # table_name
 % %1,  name,   authorization,  owner,  system, comment # name
-% char,varchar,varchar,varchar,boolean,
varchar # type
+% varchar, varchar,varchar,varchar,boolean,
varchar # type
 % 11,  18, 8,  7,  5,  28 # length
 [ "sys.schemas",   "information_schema",   "monetdb",  "monetdb",  
true,   "ISO/IEC 9075-11 SQL/Schemata"  ]
 [ "sys.schemas",   "json", "monetdb",  "monetdb",  true,   NULL
]
@@ -443,8 +443,8 @@ select 'null in fkeys.delete_action', de
 [ "sys.schemas",   "tmp",  "sysadmin", "monetdb",  true,   NULL
]
 % .%25,.s, .t, .,  .,  .t, .,  .,  . # 
table_name
 % %25, name,   name,   query,  type,   system, commit_action,  access, comment 
# name
-% char,varchar,varchar,char,   varchar,
boolean,char,   char,   varchar # type
-% 11,  18, 34, 6812,   5,  5,  8,  10, 0 # length
+% varchar, varchar,varchar,varchar,varchar,
boolean,varchar,varchar,varchar # type
+% 11,  18, 34, 6812,   5,  5,  8,  8,  0 # length
 [ "sys._tables",   "information_schema",   "character_sets",   "create 
view information_schema.character_sets as select cast(null as varchar(1)) as 
character_set_catalog, cast(null as varchar(1)) as character_set_schema, 
cast('UTF-8' as varchar(16)) as character_set_name, cast('ISO/IEC 10646:2021' 
as varchar(20)) as character_repertoire, cast('UTF-8' as varchar(16)) as 
form_of_use, cast(null as varchar(1)) as default_collate_catalog, cast(null as 
varchar(1)) as default_collate_schema, cast(null as varchar(1)) as 
default_collate_name;",  "VIEW", true,   "COMMIT",   "WRITABLE", NULL   
 ]
 [ "sys._tables",   "information_schema",   "check_constraints","create 
view information_schema.check_constraints as select cast(null as varchar(1)) as 
constraint_catalog, cast(null as varchar(1024)) as constraint_schema, cast(null 
as varchar(1024)) as constraint_name, cast(null as varchar(1024)) as 
check_clause where 1=0;",  "VIEW", true,   "COMMIT",   "WRITABLE", NULL 
   ]
 [ "sys._tables",   "information_schema",   "columns",  "create view 
information_schema.columns as select cast(null as varchar(1)) as table_catalog, 
s.\"name\" as table_schema, t.\"name\" as table_name, c.\"name\" as 
column_name, cast(1 + c.\"number\" as int) as ordinal_position, c.\"default\" 
as column_default, cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') as varchar(3)) 
as is_nullable, cast(sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\", 
c.\"type_scale\", true, true) as varchar(1024)) as data_type, 
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml') 
and c.\"type_digits\" > 0, c.\"type_digits\", null) as int) as 
character_maximum_length, 

MonetDB: default - Approve non-hge output.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: 69363e9ed196 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/69363e9ed196
Modified Files:
sql/test/emptydb/Tests/check.stable.out
Branch: default
Log Message:

Approve non-hge output.


diffs (14 lines):

diff --git a/sql/test/emptydb/Tests/check.stable.out 
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -6927,8 +6927,8 @@ select 'null in fkeys.delete_action', de
 % %14, table_id,   id, table_id,   type,   name,   rkey,   
update_action_id,   update_action,  delete_action_id,   delete_action # 
name
 % varchar, int,int,int,int,varchar,int,
smallint,   varchar,smallint,   varchar # type
 % 0,   1,  1,  1,  1,  0,  1,  1,  0,  1,  
0 # length
-% .%14,.fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, 
sys.fkeys,  .fkeys, sys.fkeys # table_name
-% %14, type,   id, table_id,   type,   name,   rkey,   
update_action_id,   update_action,  delete_action_id,   delete_action # 
name
+% .%15,.fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, 
.fkeys, .fkeys # table_name
+% %15, type,   id, table_id,   type,   name,   rkey,   
update_action_id,   update_action,  delete_action_id,   delete_action # 
name
 % varchar, int,int,int,int,varchar,int,
smallint,   varchar,smallint,   varchar # type
 % 0,   1,  1,  1,  1,  0,  1,  1,  0,  1,  
0 # length
 % .%14,.fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, 
sys.fkeys,  .fkeys, sys.fkeys # table_name
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Dec2023 - Only set query timeout for query setting the ...

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: 9cde2d6c052e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9cde2d6c052e
Modified Files:
monetdb5/modules/mal/clients.c
Branch: Dec2023
Log Message:

Only set query timeout for query setting the timeout if not testing.


diffs (21 lines):

diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -479,9 +479,14 @@ CLTqueryTimeout(Client cntxt, MalBlkPtr 
lng timeout_micro = ATOMIC_GET() & FORCEMITOMASK
&& qto == 1 ? 1000 : (lng) qto * 100;
mal_clients[idx].qryctx.querytimeout = timeout_micro;
-   QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-   if (qry_ctx)
-   qry_ctx->querytimeout = timeout_micro;
+   if (timeout_micro != 1000) {
+   /* only set timeout for current query if not setting it 
to 1
+* msec during testing: we don't want a timeout during 
this
+* query */
+   QryCtx *qry_ctx = MT_thread_get_qry_ctx();
+   if (qry_ctx)
+   qry_ctx->querytimeout = timeout_micro;
+   }
}
MT_lock_unset(_contextLock);
return msg;
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: ascii-flag - Some code cleanup.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: 4b4e9c5ff1ae for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4b4e9c5ff1ae
Modified Files:
monetdb5/modules/atoms/str.c
Branch: ascii-flag
Log Message:

Some code cleanup.


diffs (truncated from 472 to 300 lines):

diff --git a/monetdb5/modules/atoms/str.c b/monetdb5/modules/atoms/str.c
--- a/monetdb5/modules/atoms/str.c
+++ b/monetdb5/modules/atoms/str.c
@@ -691,12 +691,11 @@ STRWChrAt(int *res, const char *const *a
 }
 
 static inline str
-doStrConvert(str *res, const char *const *arg1, gdk_return (*func)(char 
**restrict, size_t *restrict, const char *restrict))
+doStrConvert(str *res, const char *arg1, gdk_return (*func)(char **restrict, 
size_t *restrict, const char *restrict))
 {
str buf = NULL, msg = MAL_SUCCEED;
-   const char *s = *arg1;
-
-   if (strNil(s)) {
+
+   if (strNil(arg1)) {
*res = GDKstrdup(str_nil);
} else {
size_t buflen = INITIAL_STR_BUFFER_LENGTH;
@@ -704,7 +703,7 @@ doStrConvert(str *res, const char *const
*res = NULL;
if (!(buf = GDKmalloc(buflen)))
throw(MAL, "str.lower", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
-   if ((*func)(, , s) != GDK_SUCCEED) {
+   if ((*func)(, , arg1) != GDK_SUCCEED) {
GDKfree(buf);
throw(MAL, "str.lower", GDK_EXCEPTION);
}
@@ -721,19 +720,19 @@ doStrConvert(str *res, const char *const
 static inline str
 STRlower(str *res, const char *const *arg1)
 {
-   return doStrConvert(res, arg1, GDKtolower);
+   return doStrConvert(res, *arg1, GDKtolower);
 }
 
 static inline str
 STRupper(str *res, const char *const *arg1)
 {
-   return doStrConvert(res, arg1, GDKtoupper);
+   return doStrConvert(res, *arg1, GDKtoupper);
 }
 
 static inline str
 STRcasefold(str *res, const char *const *arg1)
 {
-   return doStrConvert(res, arg1, GDKcasefold);
+   return doStrConvert(res, *arg1, GDKcasefold);
 }
 
 /* returns whether arg1 starts with arg2 */
@@ -795,24 +794,16 @@ str_icontains(const char *h, const char 
return GDKstrcasestr(h, n) == NULL;
 }
 
-#define STR_MAPARGS(STK, PCI, R, S1, S2, ICASE)
\
-   do{ 
\
-   R = getArgReference(STK, PCI, 0);   
\
-   S1 = *getArgReference_str(STK, PCI, 1); 
\
-   S2 = *getArgReference_str(STK, PCI, 2); 
\
-   icase = PCI->argc == 4 && *getArgReference_bit(STK, PCI, 3);
\
-   } while(0)
-
 static str
 STRstartswith(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
(void) cntxt;
(void) mb;
 
-   str s1, s2;
-   bit *r, icase;
-
-   STR_MAPARGS(stk, pci, r, s1, s2, icase);
+   bit *r = getArgReference_bit(stk, pci, 0);
+   const char *s1 = *getArgReference_str(stk, pci, 1);
+   const char *s2 = *getArgReference_str(stk, pci, 2);
+   bit icase = pci->argc == 4 && *getArgReference_bit(stk, pci, 3);
 
if (strNil(s1) || strNil(s2)) {
*r = bit_nil;
@@ -831,10 +822,10 @@ STRendswith(Client cntxt, MalBlkPtr mb, 
(void) cntxt;
(void) mb;
 
-   str s1, s2;
-   bit *r, icase;
-
-   STR_MAPARGS(stk, pci, r, s1, s2, icase);
+   bit *r = getArgReference_bit(stk, pci, 0);
+   const char *s1 = *getArgReference_str(stk, pci, 1);
+   const char *s2 = *getArgReference_str(stk, pci, 2);
+   bit icase = pci->argc == 4 && *getArgReference_bit(stk, pci, 3);
 
if (strNil(s1) || strNil(s2)) {
*r = bit_nil;
@@ -854,10 +845,10 @@ STRcontains(Client cntxt, MalBlkPtr mb, 
(void) cntxt;
(void) mb;
 
-   str s1, s2;
-   bit *r, icase;
-
-   STR_MAPARGS(stk, pci, r, s1, s2, icase);
+   bit *r = getArgReference_bit(stk, pci, 0);
+   const char *s1 = *getArgReference_str(stk, pci, 1);
+   const char *s2 = *getArgReference_str(stk, pci, 2);
+   bit icase = pci->argc == 4 && *getArgReference_bit(stk, pci, 3);
 
if (strNil(s1) || strNil(s2)) {
*r = bit_nil;
@@ -900,7 +891,7 @@ STRstr_search(Client cntxt, MalBlkPtr mb
const char *haystack = *getArgReference_str(stk, pci, 1);
const char *needle = *getArgReference_str(stk, pci, 2);
bit icase = pci->argc == 4 && *getArgReference_bit(stk, pci, 3);
-   char *msg = MAL_SUCCEED;
+
if (strNil(haystack) || strNil(needle)) {
*res = bit_nil;
} else {
@@ -908,7 +899,7 @@ STRstr_search(Client cntxt, MalBlkPtr mb
str_isearch(haystack, needle) :
str_search(haystack, 

MonetDB: ascii-flag - Merge with default branch.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: 63728d9503e3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/63728d9503e3
Modified Files:
clients/Tests/exports.stable.out
monetdb5/modules/atoms/str.c
monetdb5/modules/kernel/batstr.c
monetdb5/modules/mal/pcre.c
Branch: ascii-flag
Log Message:

Merge with default branch.


diffs (truncated from 4713 to 300 lines):

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
@@ -811,9 +811,9 @@ str QLOGcatalog(BAT **r);
 str QLOGdisable(void *ret);
 str QLOGempty(void *ret);
 str QLOGenable(void *ret);
-str QLOGenableThreshold(void *ret, int *threshold);
+str QLOGenableThreshold(void *ret, const int *threshold);
 int QLOGisset(void);
-str RMTdisconnect(void *ret, str *conn);
+str RMTdisconnect(void *ret, const char *const *conn);
 BUN SQLload_file(Client cntxt, Tablet *as, bstream *b, stream *out, const char 
*csep, const char *rsep, char quote, lng skip, lng maxrow, int best, bool 
from_stdin, const char *tabnam, bool escape);
 str TABLETcollect(BAT **bats, Tablet *as);
 str TABLETcreate_bats(Tablet *as, BUN est);
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
@@ -760,7 +760,7 @@ BATXMLroot(bat *ret, const bat *bid, con
  *standalone);
snprintf(buf + i, len - i, "?>%s", t + 1);
buf++;
-   XMLisdocument(, );/* check 
well-formedness */
+   XMLisdocument(, &(const char *){buf});/* 
check well-formedness */
buf--;
if (!isdoc) {
err = XML_NOT_WELL_FORMED;
diff --git a/monetdb5/modules/atoms/blob.c b/monetdb5/modules/atoms/blob.c
--- a/monetdb5/modules/atoms/blob.c
+++ b/monetdb5/modules/atoms/blob.c
@@ -130,7 +130,7 @@ BLOBnitems_bulk(Client cntxt, MalBlkPtr 
 }
 
 static str
-BLOBtoblob(blob **retval, str *s)
+BLOBtoblob(blob **retval, const char *const *s)
 {
size_t len = strLen(*s);
blob *b = (blob *) GDKmalloc(blobsize(len));
@@ -144,7 +144,7 @@ BLOBtoblob(blob **retval, str *s)
 }
 
 static str
-BLOBblob_blob(blob **d, blob **s)
+BLOBblob_blob(blob **d, const blob *const*s)
 {
size_t len = blobsize((*s)->nitems);
blob *b;
@@ -238,7 +238,7 @@ BLOBblob_blob_bulk(bat *res, const bat *
 }
 
 static str
-BLOBblob_fromstr(blob **b, const char **s)
+BLOBblob_fromstr(blob **b, const char *const*s)
 {
size_t len = 0;
 
diff --git a/monetdb5/modules/atoms/identifier.c 
b/monetdb5/modules/atoms/identifier.c
--- a/monetdb5/modules/atoms/identifier.c
+++ b/monetdb5/modules/atoms/identifier.c
@@ -93,7 +93,7 @@ IDtoString(char **retval, size_t *len, c
  * to parse the string.
  */
 static str
-IDentifier(identifier *retval, str *in)
+IDentifier(identifier *retval, const char *const *in)
 {
size_t len = 0;
 
diff --git a/monetdb5/modules/atoms/inet.c b/monetdb5/modules/atoms/inet.c
--- a/monetdb5/modules/atoms/inet.c
+++ b/monetdb5/modules/atoms/inet.c
@@ -229,7 +229,7 @@ INETtoString(str *retval, size_t *len, c
  * to parse the string.
  */
 static str
-INETnew(inet *retval, str *in)
+INETnew(inet *retval, const char *const *in)
 {
ssize_t pos;
size_t len = sizeof(inet);
@@ -787,7 +787,7 @@ INET_inet(inet *d, const inet *s)
 }
 
 static str
-INET_fromstr(inet *ret, str *s)
+INET_fromstr(inet *ret, const char *const *s)
 {
size_t len = sizeof(inet);
if (INETfromString(*s, , (void **) , false) < 0)
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
@@ -233,7 +233,7 @@ JSONtoStorageString(JSON *jt, int idx, j
return msg;
 }
 
-static str JSONstr2json(json *ret, const char **j);
+static str JSONstr2json(json *ret, const char *const*j);
 
 static ssize_t
 JSONfromString(const char *src, size_t *len, void **J, bool external)
@@ -338,7 +338,7 @@ JSONtoString(str *s, size_t *len, const 
 }
 
 static BAT *
-JSONdumpInternal(JSON *jt, int depth)
+JSONdumpInternal(const JSON *jt, int depth)
 {
int i, idx;
JSONterm *je;
@@ -464,7 +464,7 @@ JSONdump(Client cntxt, MalBlkPtr mb, Mal
(void) cntxt;
 
bat *ret = getArgReference_bat(stk, pci, 0);
-   json *val = (json *) getArgReference(stk, pci, 1);
+   const json *val = (json *) getArgReference(stk, pci, 1);
JSON *jt = JSONparse(*val);
 
CHECK_JSON(jt);
@@ -503,7 +503,7 @@ JSON2json(json *ret, const json *j)
 }
 
 static str
-JSONstr2json(json *ret, const char **j)
+JSONstr2json(json *ret, const char *const*j)
 {
str msg = MAL_SUCCEED;
json buf = NULL;
@@ -541,7 +541,7 @@ JSONstr2json(json *ret, const char **j)
 }
 
 static str
-JSONisvalid(bit *ret, 

MonetDB: Dec2023 - Also test startswith with strimps.

2024-05-07 Thread Sjoerd Mullender via checkin-list
Changeset: 019e792d61bc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/019e792d61bc
Modified Files:
sql/test/strimps/Tests/small_string_crash.test
Branch: Dec2023
Log Message:

Also test startswith with strimps.


diffs (13 lines):

diff --git a/sql/test/strimps/Tests/small_string_crash.test 
b/sql/test/strimps/Tests/small_string_crash.test
--- a/sql/test/strimps/Tests/small_string_crash.test
+++ b/sql/test/strimps/Tests/small_string_crash.test
@@ -117,3 +117,9 @@ SELECT * FROM fal WHERE x LIKE 'Daniel%'
 Daniel Sims
 Daniel Sullivan
 
+query T nosort
+SELECT * FROM fal WHERE startswith(x, 'Daniel')
+
+Daniel Sims
+Daniel Sullivan
+
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org