MonetDB: Dec2023 - Removed unused function TABLETcollect_parts.

2023-12-06 Thread Sjoerd Mullender via checkin-list
Changeset: 4c98bfe6f0f1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4c98bfe6f0f1
Modified Files:
clients/Tests/exports.stable.out
monetdb5/modules/mal/tablet.c
monetdb5/modules/mal/tablet.h
Branch: Dec2023
Log Message:

Removed unused function TABLETcollect_parts.


diffs (79 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
@@ -799,7 +799,6 @@ int QLOGisset(void);
 str RMTdisconnect(void *ret, str *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 TABLETcollect_parts(BAT **bats, Tablet *as, BUN offset);
 str TABLETcreate_bats(Tablet *as, BUN est);
 void TABLETdestroy_format(Tablet *as);
 int TABLEToutput_file(Tablet *as, BAT *order, stream *s);
diff --git a/monetdb5/modules/mal/tablet.c b/monetdb5/modules/mal/tablet.c
--- a/monetdb5/modules/mal/tablet.c
+++ b/monetdb5/modules/mal/tablet.c
@@ -185,53 +185,6 @@ TABLETcollect(BAT **bats, Tablet *as)
return MAL_SUCCEED;
 }
 
-str
-TABLETcollect_parts(BAT **bats, Tablet *as, BUN offset)
-{
-   Column *fmt = as->format;
-   BUN i, j;
-   BUN cnt = 0;
-
-   for (i = 0; i < as->nr_attrs && !cnt; i++)
-   if (!fmt[i].skip)
-   cnt = BATcount(fmt[i].c);
-   for (i = 0, j = 0; i < as->nr_attrs; i++) {
-   BAT *b, *bv = NULL;
-   if (fmt[i].skip)
-   continue;
-   b = fmt[i].c;
-   b->tsorted = b->trevsorted = false;
-   b->tkey = false;
-   BATsettrivprop(b);
-   if ((b = BATsetaccess(b, BAT_READ)) == NULL) {
-   fmt[i].c = NULL;
-   throw(SQL, "copy",
- "Failed to set access at tablet part " BUNFMT 
"\n", cnt);
-   }
-   bv = BATslice(b, (offset > 0) ? offset - 1 : 0, BATcount(b));
-   bats[j] = bv;
-
-   b->tkey = (offset > 0) ? FALSE : bv->tkey;
-   b->tnonil &= bv->tnonil;
-   if (b->tsorted != bv->tsorted)
-   b->tsorted = false;
-   if (b->trevsorted != bv->trevsorted)
-   b->trevsorted = false;
-   if (BATtdense(b))
-   b->tkey = true;
-
-   if (offset > 0) {
-   BBPunfix(bv->batCacheid);
-   bats[j] = BATslice(b, offset, BATcount(b));
-   }
-   if (cnt != BATcount(b))
-   throw(SQL, "copy", "Count " BUNFMT " differs from " 
BUNFMT "\n",
- BATcount(b), cnt);
-   j++;
-   }
-   return MAL_SUCCEED;
-}
-
 // the starting quote character has already been skipped
 
 static char *
diff --git a/monetdb5/modules/mal/tablet.h b/monetdb5/modules/mal/tablet.h
--- a/monetdb5/modules/mal/tablet.h
+++ b/monetdb5/modules/mal/tablet.h
@@ -78,7 +78,6 @@ mal_export BUN SQLload_file(Client cntxt
const char *tabnam, 
bool escape);
 mal_export str TABLETcreate_bats(Tablet *as, BUN est);
 mal_export str TABLETcollect(BAT **bats, Tablet *as);
-mal_export str TABLETcollect_parts(BAT **bats, Tablet *as, BUN offset);
 mal_export void TABLETdestroy_format(Tablet *as);
 mal_export int TABLEToutput_file(Tablet *as, BAT *order, stream *s);
 mal_export str COPYrejects(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Dec2023 - Add some NULL pointer checks.

2023-12-06 Thread Sjoerd Mullender via checkin-list
Changeset: 458efe6e2d65 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/458efe6e2d65
Modified Files:
monetdb5/mal/mal_profiler.c
monetdb5/modules/atoms/batxml.c
monetdb5/modules/kernel/algebra.c
sql/backends/monet5/UDF/pyapi3/conversion3.c
sql/backends/monet5/UDF/pyapi3/pyloader3.c
sql/backends/monet5/sql.c
sql/storage/bat/bat_logger.c
sql/storage/bat/bat_table.c
Branch: Dec2023
Log Message:

Add some NULL pointer checks.


diffs (176 lines):

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
@@ -888,6 +888,12 @@ TRACEtable(Client cntxt, BAT **r)
r[2] = COLcopy(cntxt->profevents, cntxt->profevents->ttype, false,
   TRANSIENT);
MT_lock_unset(&mal_profileLock);
+   if (r[0] == NULL || r[1] == NULL || r[2] == NULL) {
+   BBPreclaim(r[0]);
+   BBPreclaim(r[1]);
+   BBPreclaim(r[2]);
+   return -1;
+   }
return 3;
 }
 
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
@@ -1287,6 +1287,8 @@ BATxmlaggr(BAT **bnp, BAT *b, BAT *g, BA
/* singleton groups: return group ID's (g's tail) and original
 * values from b */
bn = VIEWcreate(g->tseqbase, b);
+   if (bn == NULL)
+   err = GDK_EXCEPTION;
goto out;
}
 
diff --git a/monetdb5/modules/kernel/algebra.c 
b/monetdb5/modules/kernel/algebra.c
--- a/monetdb5/modules/kernel/algebra.c
+++ b/monetdb5/modules/kernel/algebra.c
@@ -1113,7 +1113,7 @@ ALGunary(bat *result, const bat *bid, BA
return MAL_SUCCEED;
 }
 
-static BAT *
+static inline BAT *
 BATwcopy(BAT *b)
 {
return COLcopy(b, b->ttype, true, TRANSIENT);
diff --git a/sql/backends/monet5/UDF/pyapi3/conversion3.c 
b/sql/backends/monet5/UDF/pyapi3/conversion3.c
--- a/sql/backends/monet5/UDF/pyapi3/conversion3.c
+++ b/sql/backends/monet5/UDF/pyapi3/conversion3.c
@@ -970,6 +970,14 @@ PyObject_ConvertToBAT(PyReturn *ret, sql
data = (char *)ret->array_data;
data += (index_offset * ret->count) * ret->memory_size;
b = COLnew(seqbase, TYPE_blob, (BUN)ret->count, TRANSIENT);
+   if (b == NULL) {
+   if (ret->result_type == NPY_OBJECT) {
+   Py_XDECREF(pickle_module);
+   Python_ReleaseGIL(gstate);
+   }
+   msg = createException(MAL, "pyapi3.eval", 
GDK_EXCEPTION);
+   goto wrapup;
+   }
b->tnil = false;
b->tnonil = true;
b->tkey = false;
@@ -1105,14 +1113,18 @@ PyObject_ConvertToBAT(PyReturn *ret, sql
}
 
b = COLnew(seqbase, TYPE_str, (BUN)ret->count, 
TRANSIENT);
+   if (b == NULL) {
+   GDKfree(utf8_string);
+   msg = createException(MAL, 
"pyapi3.eval", GDK_EXCEPTION);
+   goto wrapup;
+   }
b->tnil = false;
b->tnonil = true;
b->tkey = false;
b->tsorted = false;
b->trevsorted = false;
NP_INSERT_STRING_BAT(b);
-   if (utf8_string)
-   GDKfree(utf8_string);
+   GDKfree(utf8_string);
BATsetcount(b, (BUN)ret->count);
break;
}
diff --git a/sql/backends/monet5/UDF/pyapi3/pyloader3.c 
b/sql/backends/monet5/UDF/pyapi3/pyloader3.c
--- a/sql/backends/monet5/UDF/pyapi3/pyloader3.c
+++ b/sql/backends/monet5/UDF/pyapi3/pyloader3.c
@@ -184,8 +184,15 @@ PYAPI3PyAPIevalLoader(Client cntxt, MalB
assert(n);
cols[i].def = n->data;
n = n->next;
-   cols[i].b =
-   COLnew(0, tpe->type->localtype, 0, TRANSIENT);
+   cols[i].b = COLnew(0, tpe->type->localtype, 0, 
TRANSIENT);
+   if (cols[i].b == NULL || cols[i].name == NULL) {
+   do {
+   BBPreclaim(cols[i].b);
+   GDKfree(cols[i].name);
+   } while (i-- > 0);
+   msg = createException(MAL, "pyapi3.eval", 
GDK_EXCEPTION);
+   got

MonetDB: Dec2023 - Removed unused version of algebra.markjoin.

2023-12-06 Thread Sjoerd Mullender via checkin-list
Changeset: d7fca7dc4a50 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d7fca7dc4a50
Modified Files:
clients/Tests/MAL-signatures-hge.test
clients/Tests/MAL-signatures.test
monetdb5/modules/kernel/algebra.c
Branch: Dec2023
Log Message:

Removed unused version of algebra.markjoin.


diffs (133 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
@@ -3504,11 +3504,6 @@ command algebra.markjoin(X_0:bat[:any_1]
 ALGmark3join;
 Mark join with candidate lists
 algebra
-markjoin
-command algebra.markjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], 
X_3:bat[:oid], X_4:bit, X_5:lng) (X_6:bat[:oid], X_7:bat[:bit]) 
-ALGmarkjoin;
-Left mark join with candidate lists, produces left output and mark flag; 
-algebra
 markselect
 command algebra.markselect(X_0:bat[:oid], X_1:bat[:bit], X_2:bat[:bit], 
X_3:bit) (X_4:bat[:oid], X_5:bat[:bit]) 
 ALGmarkselect;
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
@@ -2939,11 +2939,6 @@ command algebra.markjoin(X_0:bat[:any_1]
 ALGmark3join;
 Mark join with candidate lists
 algebra
-markjoin
-command algebra.markjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], 
X_3:bat[:oid], X_4:bit, X_5:lng) (X_6:bat[:oid], X_7:bat[:bit]) 
-ALGmarkjoin;
-Left mark join with candidate lists, produces left output and mark flag; 
-algebra
 markselect
 command algebra.markselect(X_0:bat[:oid], X_1:bat[:bit], X_2:bat[:bit], 
X_3:bit) (X_4:bat[:oid], X_5:bat[:bit]) 
 ALGmarkselect;
diff --git a/monetdb5/modules/kernel/algebra.c 
b/monetdb5/modules/kernel/algebra.c
--- a/monetdb5/modules/kernel/algebra.c
+++ b/monetdb5/modules/kernel/algebra.c
@@ -799,91 +799,6 @@ ALGleftjoin1(bat *r1, const bat *lid, co
   "algebra.leftjoin");
 }
 
-#include 
-static str ALGcrossproduct2(bat *l, bat *r, const bat *left, const bat *right, 
const bit *max_one);
-static str
-ALGmarkjoin(bat *r1, bat *r2, const bat *lid, const bat *rid, const bat *slid, 
const bat *srid,
-  const bit *any, const lng *estimate)
-{
-   str res = NULL;
-   bit max_one = false;
-   *r1 = *r2 = 0;
-   (void)any;
-   (void)estimate;
-   /* for now: (left) cross aggr (any-equal) */
-   BAT *rr = BATdescriptor(is_bat_nil(*srid)?*rid:*srid);
-   if (!BATcount(rr)) {
-   BAT *l = NULL;
-   if (is_bat_nil(*slid)) {
-   BAT *lp = BATdescriptor(*lid);
-
-   if (lp) {
-   l = BATdense(lp->hseqbase, lp->hseqbase, 
BATcount(lp));
-   BBPunfix(lp->batCacheid);
-   }
-   } else {
-   l = BATdescriptor(*slid);
-   }
-   bit v = false;//*any?false:true;
-   BAT *m =  BATconstant( l->hseqbase, TYPE_bit, &v, BATcount(l), 
TRANSIENT);
-   BBPkeepref(l);
-   BBPkeepref(m);
-   *r1 = l->batCacheid;
-   *r2 = m->batCacheid;
-   BBPunfix(rr->batCacheid);
-   return MAL_SUCCEED;
-   }
-   BBPunfix(rr->batCacheid);
-   if ((res = ALGcrossproduct2(r1, r2, is_bat_nil(*slid)?lid:slid, 
(*srid)?rid:srid, &max_one)) == MAL_SUCCEED) {
-   BAT *li = BATdescriptor(*r1), *g = NULL, *e = NULL;
-   if (!li) {
-   BBPrelease(*r1);
-   BBPrelease(*r2);
-   throw(MAL, "algebra.markjoin", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
-   }
-   if (BATgroup(&g, &e, NULL, li, NULL, NULL, NULL, NULL) == 
GDK_SUCCEED) {
-   BAT *lp = BATdescriptor(*lid);
-   BAT *l = BATproject( li, lp);
-   BBPreclaim(lp);
-
-   BAT *ri = BATdescriptor(*r2);
-   BAT *rp = BATdescriptor(*rid);
-   BAT *r = BATproject( ri, rp);
-   BBPreclaim(ri);
-   BBPreclaim(rp);
-   BAT *m;
-
-   //if (*any)
-   m = BATanyequal_grp(l, r, g, e, NULL);
-   /*
-   else
-   m = BATallnotequal_grp(l, r, g, e, NULL);
-   */
-
-   BBPreclaim(l);
-   BBPreclaim(r);
-   BBPreclaim(g);
-   l = BATproject(e,li);
-   BBPreclaim(e);
-   BBPreclaim(li);
-
-   BBPkeepref(l);
-   BBPkeepref(m);
-   BBPrelease(*r1);
-   BBPrelease(*r2);
-   *r

MonetDB: Dec2023 - Removed duplicate declarations.

2023-12-06 Thread Sjoerd Mullender via checkin-list
Changeset: a297d2177e46 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a297d2177e46
Modified Files:
clients/Tests/exports.stable.out
gdk/gdk.h
Branch: Dec2023
Log Message:

Removed duplicate declarations.


diffs (41 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
@@ -119,7 +119,6 @@ BAT *BATdense(oid hseq, oid tseq, BUN cn
 BAT *BATdescriptor(bat i);
 BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, bool not_in, 
BUN estimate);
 BAT *BATdiffcand(BAT *a, BAT *b);
-BAT *BATdiffcand(BAT *a, BAT *b);
 gdk_return BATextend(BAT *b, BUN newcap) 
__attribute__((__warn_unused_result__));
 void BATfakeCommit(BAT *b);
 gdk_return BATfirstn(BAT **topn, BAT **gids, BAT *b, BAT *cands, BAT *grps, 
BUN n, bool asc, bool nilslast, bool distinct) 
__attribute__((__warn_unused_result__));
@@ -156,7 +155,6 @@ void BAThseqbase(BAT *b, oid o);
 gdk_return BATimprints(BAT *b);
 BAT *BATintersect(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, bool 
max_one, BUN estimate);
 BAT *BATintersectcand(BAT *a, BAT *b);
-BAT *BATintersectcand(BAT *a, BAT *b);
 gdk_return BATjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__));
 gdk_return BATkey(BAT *b, bool onoff);
 gdk_return BATleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__));
@@ -165,7 +163,6 @@ BAT *BATmaskedcands(oid hseq, BUN nr, BA
 void *BATmax(BAT *b, void *aggr);
 void *BATmax_skipnil(BAT *b, void *aggr, bit skipnil);
 BAT *BATmergecand(BAT *a, BAT *b);
-BAT *BATmergecand(BAT *a, BAT *b);
 void *BATmin(BAT *b, void *aggr);
 void *BATmin_skipnil(BAT *b, void *aggr, bit skipnil);
 gdk_return BATmode(BAT *b, bool transient);
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2329,10 +2329,6 @@ gdk_export BAT *BATslice(BAT *b, BUN low
 
 gdk_export BAT *BATunique(BAT *b, BAT *s);
 
-gdk_export BAT *BATmergecand(BAT *a, BAT *b);
-gdk_export BAT *BATintersectcand(BAT *a, BAT *b);
-gdk_export BAT *BATdiffcand(BAT *a, BAT *b);
-
 gdk_export gdk_return BATfirstn(BAT **topn, BAT **gids, BAT *b, BAT *cands, 
BAT *grps, BUN n, bool asc, bool nilslast, bool distinct)
__attribute__((__warn_unused_result__));
 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Dec2023 - Some error checking + some leak prevention + ...

2023-12-06 Thread Sjoerd Mullender via checkin-list
Changeset: f355108f0ed9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f355108f0ed9
Modified Files:
gdk/gdk_analytic_func.c
gdk/gdk_analytic_statistics.c
gdk/gdk_cross.c
gdk/gdk_join.c
geom/monetdb5/geom.c
geom/monetdb5/geomBulk.c
monetdb5/mal/mal_interpreter.c
monetdb5/modules/atoms/str.c
monetdb5/modules/kernel/alarm.c
monetdb5/modules/mal/mal_io.c
monetdb5/modules/mal/pcre.c
sql/backends/monet5/sql_result.c
sql/storage/bat/bat_logger.c
Branch: Dec2023
Log Message:

Some error checking + some leak prevention + some cleanup.


diffs (truncated from 657 to 300 lines):

diff --git a/gdk/gdk_analytic_func.c b/gdk/gdk_analytic_func.c
--- a/gdk/gdk_analytic_func.c
+++ b/gdk/gdk_analytic_func.c
@@ -1293,7 +1293,7 @@ GDKanalytical##OP(BAT *r, BAT *p, BAT *o
ANALYTICAL_MIN_MAX_BRANCHES(MIN_MAX, GT_LT, 
CURRENT_ROW); \
break;  \
default:\
-   if (!(st = GDKinitialize_segment_tree())) { \
+   if ((st = GDKinitialize_segment_tree()) == NULL) { \
res = GDK_FAIL; \
goto cleanup;   \
}   \
@@ -1653,7 +1653,7 @@ GDKanalyticalcount(BAT *r, BAT *p, BAT *
ANALYTICAL_COUNT_BRANCHES(CURRENT_ROW);
break;
default:
-   if (!count_all && !(st = GDKinitialize_segment_tree())) 
{
+   if (!count_all && (st = GDKinitialize_segment_tree()) 
== NULL) {
res = GDK_FAIL;
goto cleanup;
}
@@ -1981,7 +1981,7 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *o,
ANALYTICAL_SUM_BRANCHES(CURRENT_ROW);
break;
default:
-   if (!(st = GDKinitialize_segment_tree())) {
+   if ((st = GDKinitialize_segment_tree()) == NULL) {
res = GDK_FAIL;
goto cleanup;
}
@@ -2500,7 +2500,7 @@ GDKanalyticalprod(BAT *r, BAT *p, BAT *o
ANALYTICAL_PROD_BRANCHES(CURRENT_ROW);
break;
default:
-   if (!(st = GDKinitialize_segment_tree())) {
+   if ((st = GDKinitialize_segment_tree()) == NULL) {
res = GDK_FAIL;
goto cleanup;
}
diff --git a/gdk/gdk_analytic_statistics.c b/gdk/gdk_analytic_statistics.c
--- a/gdk/gdk_analytic_statistics.c
+++ b/gdk/gdk_analytic_statistics.c
@@ -94,7 +94,7 @@
curval = n > 0 ? (dbl) sum / n : dbl_nil; \
if (0) { /* overflow handling from STEP1 */ \
ANALYTICAL_AVERAGE_CALC_NUM_STEP2(TPE, 
IMP); \
-   while (!(op[j] || j == k)) {\
+   while (!op[j] && j != k) {  \
TPE v = bp[j--];\
if (is_##TPE##_nil(v))  \
continue;   \
@@ -396,7 +396,7 @@ GDKanalyticalavg(BAT *r, BAT *p, BAT *o,
ANALYTICAL_AVG_BRANCHES(CURRENT_ROW);
break;
default:
-   if (!(st = GDKinitialize_segment_tree())) {
+   if ((st = GDKinitialize_segment_tree()) == NULL) {
res = GDK_FAIL;
goto cleanup;
}
@@ -656,7 +656,7 @@ GDKanalyticalavginteger(BAT *r, BAT *p, 
ANALYTICAL_AVG_INT_BRANCHES(CURRENT_ROW);
break;
default:
-   if (!(st = GDKinitialize_segment_tree())) {
+   if ((st = GDKinitialize_segment_tree()) == NULL) {
res = GDK_FAIL;
goto cleanup;
}
@@ -924,7 +924,7 @@ GDKanalytical_##NAME(BAT *r, BAT *p, BAT

ANALYTICAL_STATISTICS_BRANCHES(STDEV_VARIANCE_CURRENT_ROW, SAMPLE, OP); \
break;  \
default:\
-   if (!(st = GDKinitialize_segment_tree())) { \
+   if ((st = GDKinitialize_segment_tree()) == NULL) {  
\
   

MonetDB: Dec2023 - Removed io.import and io.export.

2023-12-06 Thread Sjoerd Mullender via checkin-list
Changeset: cd78f7ee1ab6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cd78f7ee1ab6
Removed Files:
monetdb5/modules/mal/Tests/ascii_io2.maltest
Modified Files:
clients/Tests/MAL-signatures-hge.test
clients/Tests/MAL-signatures.test
monetdb5/ChangeLog.Dec2023
monetdb5/modules/mal/Tests/All
monetdb5/modules/mal/mal_io.c
Branch: Dec2023
Log Message:

Removed io.import and io.export.
They're not particularly safe, letting the server create and read
arbitrary files.


diffs (truncated from 345 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
@@ -46799,16 +46799,6 @@ pattern inspect.optimizer_stats() (X_0:b
 OPTstatistics;
 Get optimizer use statistics, i.e. calls and total time
 io
-export
-command io.export(X_0:bat[:any_2], X_1:str):void 
-IOexport;
-Export a BAT as ASCII to a file. If the 'filepath' is not absolute, it@is put 
into the $DBPATH directory. Success of failure is indicated.
-io
-import
-command io.import(X_0:bat[:any_2], X_1:str):void 
-IOimport;
-Import a BAT from an ASCII dump. The tuples are appended to the@first 
argument. Its signature must match the dump,@else parsing errors will occur as 
an exception.
-io
 print
 pattern io.print(X_0:any_1):void 
 IOprint_val;
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
@@ -35249,16 +35249,6 @@ pattern inspect.optimizer_stats() (X_0:b
 OPTstatistics;
 Get optimizer use statistics, i.e. calls and total time
 io
-export
-command io.export(X_0:bat[:any_2], X_1:str):void 
-IOexport;
-Export a BAT as ASCII to a file. If the 'filepath' is not absolute, it@is put 
into the $DBPATH directory. Success of failure is indicated.
-io
-import
-command io.import(X_0:bat[:any_2], X_1:str):void 
-IOimport;
-Import a BAT from an ASCII dump. The tuples are appended to the@first 
argument. Its signature must match the dump,@else parsing errors will occur as 
an exception.
-io
 print
 pattern io.print(X_0:any_1):void 
 IOprint_val;
diff --git a/monetdb5/ChangeLog.Dec2023 b/monetdb5/ChangeLog.Dec2023
--- a/monetdb5/ChangeLog.Dec2023
+++ b/monetdb5/ChangeLog.Dec2023
@@ -1,6 +1,9 @@
 # ChangeLog file for MonetDB5
 # This file is updated with Maddlog
 
+* Wed Dec  6 2023 Sjoerd Mullender 
+- The MAL functions io.import and io.export have been removed.
+
 * Mon Nov 20 2023 Sjoerd Mullender 
 - Removed MAL functions bat.getRole and bat.setColumn since the
   underlying function BATroles was removed.
diff --git a/monetdb5/modules/mal/Tests/All b/monetdb5/modules/mal/Tests/All
--- a/monetdb5/modules/mal/Tests/All
+++ b/monetdb5/modules/mal/Tests/All
@@ -20,8 +20,6 @@ imprints
 
 # flags  is influecend by the Mtest command line 
 
-ascii_io2
-
 mat
 
 remoteInit
diff --git a/monetdb5/modules/mal/Tests/ascii_io2.maltest 
b/monetdb5/modules/mal/Tests/ascii_io2.maltest
deleted file mode 100644
--- a/monetdb5/modules/mal/Tests/ascii_io2.maltest
+++ /dev/null
@@ -1,31 +0,0 @@
-statement ok
-namebat := bat.new( :str)
-
-statement ok
-bat.append(namebat,"tmpdocs")
-
-statement ok
-bat.append(namebat,"tmpterms")
-
-query T rowsort
-io.printf("#source:%s\n","namebat")
-
-#source:namebat
-
-statement ok
-io.export(namebat, "namebat")
-
-statement ok
-z:= bat.new(:str)
-
-statement ok
-io.import(z,"namebat")
-
-query IT rowsort
-io.print(z)
-
-0
-tmpdocs
-1
-tmpterms
-
diff --git a/monetdb5/modules/mal/mal_io.c b/monetdb5/modules/mal/mal_io.c
--- a/monetdb5/modules/mal/mal_io.c
+++ b/monetdb5/modules/mal/mal_io.c
@@ -612,231 +612,6 @@ IOtable(Client cntxt, MalBlkPtr mb, MalS
return MAL_SUCCEED;
 }
 
-
-/*
- * Bulk export/loading
- * To simplify conversion between versions and to interface with other
- * applications, we use a simple import/export operation.
- *
- * The conversion routine assumes space in the buffer for storing the result.
- */
-/*
- * A BAT can be saved in Monet format using the export command.
- * It is of particular use in preparing an ASCII version for migration.
- * The exported file is saved in the context of the directory
- * where the server was started unless an absolute file name was
- * presented.
- */
-
-static str
-IOexport(void *ret, bat *bid, str *fnme)
-{
-   BAT *b;
-   stream *s;
-
-   (void) ret;
-   if ((b = BATdescriptor(*bid)) == NULL)
-   throw(MAL, "io.export", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING);
-
-   s = open_wastream(*fnme);
-   if (s == NULL) {
-   BBPunfix(b->batCacheid);
-   throw(MAL, "io.export", "%s", mnstr_peek_error(NULL));
-   }
-   if (mnstr_errnr(s) != MNSTR_NO__ERROR) {
-   mnstr_close(s);
-   BBPunfix(b->batCacheid);
-   throw(MAL, "io.export", "%s", mnstr_peek_error(NULL));
-   }
-   BATprin

MonetDB: default - Merge with Dec2023 branch.

2023-12-06 Thread Sjoerd Mullender via checkin-list
Changeset: 5cdc33404f19 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5cdc33404f19
Modified Files:
monetdb5/modules/atoms/str.c
Branch: default
Log Message:

Merge with Dec2023 branch.


diffs (truncated from 1876 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
@@ -3504,11 +3504,6 @@ command algebra.markjoin(X_0:bat[:any_1]
 ALGmark3join;
 Mark join with candidate lists
 algebra
-markjoin
-command algebra.markjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], 
X_3:bat[:oid], X_4:bit, X_5:lng) (X_6:bat[:oid], X_7:bat[:bit]) 
-ALGmarkjoin;
-Left mark join with candidate lists, produces left output and mark flag; 
-algebra
 markselect
 command algebra.markselect(X_0:bat[:oid], X_1:bat[:bit], X_2:bat[:bit], 
X_3:bit) (X_4:bat[:oid], X_5:bat[:bit]) 
 ALGmarkselect;
@@ -46804,16 +46799,6 @@ pattern inspect.optimizer_stats() (X_0:b
 OPTstatistics;
 Get optimizer use statistics, i.e. calls and total time
 io
-export
-command io.export(X_0:bat[:any_2], X_1:str):void 
-IOexport;
-Export a BAT as ASCII to a file. If the 'filepath' is not absolute, it@is put 
into the $DBPATH directory. Success of failure is indicated.
-io
-import
-command io.import(X_0:bat[:any_2], X_1:str):void 
-IOimport;
-Import a BAT from an ASCII dump. The tuples are appended to the@first 
argument. Its signature must match the dump,@else parsing errors will occur as 
an exception.
-io
 print
 pattern io.print(X_0:any_1):void 
 IOprint_val;
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
@@ -2939,11 +2939,6 @@ command algebra.markjoin(X_0:bat[:any_1]
 ALGmark3join;
 Mark join with candidate lists
 algebra
-markjoin
-command algebra.markjoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], 
X_3:bat[:oid], X_4:bit, X_5:lng) (X_6:bat[:oid], X_7:bat[:bit]) 
-ALGmarkjoin;
-Left mark join with candidate lists, produces left output and mark flag; 
-algebra
 markselect
 command algebra.markselect(X_0:bat[:oid], X_1:bat[:bit], X_2:bat[:bit], 
X_3:bit) (X_4:bat[:oid], X_5:bat[:bit]) 
 ALGmarkselect;
@@ -35254,16 +35249,6 @@ pattern inspect.optimizer_stats() (X_0:b
 OPTstatistics;
 Get optimizer use statistics, i.e. calls and total time
 io
-export
-command io.export(X_0:bat[:any_2], X_1:str):void 
-IOexport;
-Export a BAT as ASCII to a file. If the 'filepath' is not absolute, it@is put 
into the $DBPATH directory. Success of failure is indicated.
-io
-import
-command io.import(X_0:bat[:any_2], X_1:str):void 
-IOimport;
-Import a BAT from an ASCII dump. The tuples are appended to the@first 
argument. Its signature must match the dump,@else parsing errors will occur as 
an exception.
-io
 print
 pattern io.print(X_0:any_1):void 
 IOprint_val;
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
@@ -119,7 +119,6 @@ BAT *BATdense(oid hseq, oid tseq, BUN cn
 BAT *BATdescriptor(bat i);
 BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, bool not_in, 
BUN estimate);
 BAT *BATdiffcand(BAT *a, BAT *b);
-BAT *BATdiffcand(BAT *a, BAT *b);
 gdk_return BATextend(BAT *b, BUN newcap) 
__attribute__((__warn_unused_result__));
 void BATfakeCommit(BAT *b);
 gdk_return BATfirstn(BAT **topn, BAT **gids, BAT *b, BAT *cands, BAT *grps, 
BUN n, bool asc, bool nilslast, bool distinct) 
__attribute__((__warn_unused_result__));
@@ -156,7 +155,6 @@ void BAThseqbase(BAT *b, oid o);
 gdk_return BATimprints(BAT *b);
 BAT *BATintersect(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, bool 
max_one, BUN estimate);
 BAT *BATintersectcand(BAT *a, BAT *b);
-BAT *BATintersectcand(BAT *a, BAT *b);
 gdk_return BATjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__));
 gdk_return BATkey(BAT *b, bool onoff);
 gdk_return BATleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__));
@@ -165,7 +163,6 @@ BAT *BATmaskedcands(oid hseq, BUN nr, BA
 void *BATmax(BAT *b, void *aggr);
 void *BATmax_skipnil(BAT *b, void *aggr, bit skipnil);
 BAT *BATmergecand(BAT *a, BAT *b);
-BAT *BATmergecand(BAT *a, BAT *b);
 void *BATmin(BAT *b, void *aggr);
 void *BATmin_skipnil(BAT *b, void *aggr, bit skipnil);
 gdk_return BATmode(BAT *b, bool transient);
@@ -799,7 +796,6 @@ int QLOGisset(void);
 str RMTdisconnect(void *ret, str *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 TABLETcollect_parts(BAT **bats, Tablet *as, BUN offset);
 str TABLETcreate_ba