Changeset: 12a066989fb6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=12a066989fb6
Modified Files:
clients/Tests/exports.stable.out
gdk/gdk_calc.c
gdk/gdk_calc_compare.h
monetdb5/mal/mal.h
monetdb5/mal/mal_dataflow.c
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_parser.c
monetdb5/modules/mal/CMakeLists.txt
monetdb5/modules/mal/remote.c
monetdb5/optimizer/CMakeLists.txt
sql/backends/monet5/CMakeLists.txt
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_upgrades.c
sql/common/sql_types.c
sql/scripts/CMakeLists.txt
sql/server/rel_optimizer.c
sql/server/rel_updates.c
sql/storage/bat/bat_logger.c
sql/storage/store.c
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out.single
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-query.stable.out
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-view.stable.out
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/miscellaneous/Tests/groupby_error.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
Branch: unlock
Log Message:
merged
diffs (truncated from 34382 to 300 lines):
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -358,9 +358,10 @@ developer.
%{_bindir}/sample0
%{_bindir}/sample1
%{_bindir}/sample4
+%{_bindir}/shutdowntest
%{_bindir}/smack00
%{_bindir}/smack01
-%{_bindir}/shutdowntest
+%{_bindir}/streamcat
%{_bindir}/testgetinfo
%{_bindir}/testStmtAttr
%{_bindir}/malsample.pl
@@ -518,8 +519,6 @@ exit 0
%exclude %{_bindir}/stethoscope
%{_libdir}/libmonetdb5.so.*
%dir %{_libdir}/monetdb5
-%{_libdir}/monetdb5/microbenchmark.mal
-%{_libdir}/monetdb5/run_*.mal
%if %{with cintegration}
%{_libdir}/monetdb5/lib_capi.so
%endif
@@ -764,6 +763,7 @@ fi
%build
%cmake3 \
+ -DRELEASE_VERSION=ON \
-DASSERT=OFF \
-DCINTEGRATION=%{?with_cintegration:ON}%{!?with_cintegration:OFF} \
-DFITS=%{?with_fits:ON}%{!?with_fits:OFF} \
@@ -817,6 +817,10 @@ install -d -m 0775 %{buildroot}%{_rundir
rm -f %{buildroot}%{_libdir}/*.la
rm -f %{buildroot}%{_libdir}/monetdb5/*.la
rm -f %{buildroot}%{_libdir}/monetdb5/lib_opt_sql_append.so
+rm -f %{buildroot}%{_libdir}/monetdb5/run_*.mal
+rm -f %{buildroot}%{_libdir}/monetdb5/lib_run_*.so
+rm -f %{buildroot}%{_libdir}/monetdb5/microbenchmark.mal
+rm -f %{buildroot}%{_libdir}/monetdb5/lib_microbenchmark*.so
rm -f %{buildroot}%{_bindir}/monetdb_mtest.sh
rm -rf %{buildroot}%{_datadir}/monetdb # /cmake
diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py
--- a/NT/mksqlwxs.py
+++ b/NT/mksqlwxs.py
@@ -171,11 +171,9 @@ def main():
print(r' <Directory Id="lib" Name="lib">')
print(r' <Directory Id="monetdb5" Name="monetdb5">')
id = comp(features, id, 16,
- [r'lib\monetdb5\microbenchmark.mal'])
- id = comp(features, id, 16,
- [r'lib\monetdb5\{}'.format(x) for x in sorted(filter(lambda x:
x.startswith('_') and x.endswith('.dll') and ('geom' not in x) and ('pyapi' not
in x) and ('opt_sql_append' not in x), os.listdir(os.path.join(sys.argv[3],
'lib', 'monetdb5'))))])
+ [r'lib\monetdb5\{}'.format(x) for x in sorted(filter(lambda x:
x.startswith('_') and x.endswith('.dll') and ('geom' not in x) and ('pyapi' not
in x) and ('opt_sql_append' not in x) and ('run_' not in x) and
('microbenchmark' not in x), os.listdir(os.path.join(sys.argv[3], 'lib',
'monetdb5'))))])
id = comp(debug, id, 16,
- [r'lib\monetdb5\{}'.format(x) for x in sorted(filter(lambda x:
x.startswith('_') and x.endswith('.pdb') and ('geom' not in x) and
('opt_sql_append' not in x), os.listdir(os.path.join(sys.argv[3], 'lib',
'monetdb5'))))])
+ [r'lib\monetdb5\{}'.format(x) for x in sorted(filter(lambda x:
x.startswith('_') and x.endswith('.pdb') and ('geom' not in x) and
('opt_sql_append' not in x) and ('run_' not in x) and ('microbenchmark' not in
x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))])
id = comp(geom, id, 16,
[r'lib\monetdb5\{}'.format(x) for x in sorted(filter(lambda x:
x.startswith('_') and (x.endswith('.dll') or x.endswith('.pdb')) and ('geom' in
x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))])
id = comp(pyapi3, id, 16,
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
@@ -688,7 +688,6 @@ int mo_system_config(opt **Set, int setl
const char *wsaerror(int);
# monetdb5
-str ALGprojectionpath(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str AUTHaddRemoteTableCredentials(const char *local_table, const char
*localuser, const char *uri, const char *remoteuser, const char *pass, bool
pw_encrypted);
str AUTHaddUser(oid *ret, Client c, const char *user, const char *pass);
str AUTHchangePassword(Client c, const char *oldpass, const char *passwd);
@@ -816,8 +815,6 @@ str CMDgetUserTime(lng *ret);
str CMDgetprofilerlimit(int *res);
str CMDnoopProfiler(void *res);
str CMDopenProfilerStream(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str CMDqgramnormalize(str *res, str *input);
-str CMDqgramselfjoin(bat *res1, bat *res2, bat *qid, bat *bid, bat *pid, bat
*lid, flt *c, int *k);
str CMDsetHeartbeat(void *res, int *ev);
str CMDsetName(str *rname, const bat *b, str *name);
str CMDsetprofilerlimit(void *res, int *lim);
@@ -825,16 +822,8 @@ str CMDstartProfiler(Client cntxt, MalBl
str CMDstartTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str CMDstopProfiler(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str CMDstopTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CMDstr2qgrams(bat *ret, str *val);
str COPYrejects(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str COPYrejects_clear(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str FCTgetArrival(bat *ret);
-str FCTgetCaller(int *ret);
-str FCTgetDeparture(bat *ret);
-str FCTgetOwners(bat *ret);
-str FCTgetPlants(bat *ret, bat *ret2);
-str FCTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str GROUPmulticolumngroup(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
str GRPgroup1(bat *ngid, bat *next, bat *nhis, const bat *bid);
str GRPgroup11(bat *ngid, const bat *bid);
str GRPgroup2(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *sid);
@@ -853,26 +842,6 @@ str GRPsubgroup6(bat *ngid, bat *next, c
str GRPsubgroup7(bat *ngid, bat *next, const bat *bid, const bat *sid, const
bat *gid);
str GRPsubgroup8(bat *ngid, bat *next, const bat *bid, const bat *gid, const
bat *eid, const bat *hid);
str GRPsubgroup9(bat *ngid, bat *next, const bat *bid, const bat *sid, const
bat *gid, const bat *eid, const bat *hid);
-str INSPECTatom_names(bat *ret);
-str INSPECTatom_sizes(bat *ret);
-str INSPECTatom_sup_names(bat *ret);
-str INSPECTequalType(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str INSPECTgetAllAddresses(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str INSPECTgetAllFunctions(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str INSPECTgetAllModules(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str INSPECTgetAllSignatures(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
-str INSPECTgetComment(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str INSPECTgetDefinition(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str INSPECTgetEnvironment(bat *ret, bat *ret2);
-str INSPECTgetEnvironmentKey(str *ret, str *key);
-str INSPECTgetFunctionSize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
p);
-str INSPECTgetSignature(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str INSPECTgetSize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str INSPECTgetSource(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str INSPECTgetkind(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str INSPECTshowFunction(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str INSPECTshowFunction3(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
p);
-str INSPECTtypeName(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str IOexport(void *ret, bat *bid, str *fnme);
str IOimport(void *ret, bat *bid, str *fnme);
str IOprint_val(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
@@ -880,17 +849,6 @@ str IOprintf(Client cntxt, MalBlkPtr mb,
str IOprintfStream(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str IOsetmallocsuccesscount(void *res, lng *nbytes);
str IOtable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str ITRbunIterator(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str ITRbunNext(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str ITRnewChunk(lng *res, bat *vid, bat *bid, lng *granule);
-str ITRnextChunk(lng *res, bat *vid, bat *bid, lng *granule);
-str ITRnext_dbl(dbl *i, dbl *step, dbl *last);
-str ITRnext_flt(flt *i, flt *step, flt *last);
-str ITRnext_hge(hge *i, hge *step, hge *last);
-str ITRnext_int(int *i, int *step, int *last);
-str ITRnext_lng(lng *i, lng *step, lng *last);
-str ITRnext_oid(oid *i, oid *step, oid *last);
-str ITRnext_sht(sht *i, sht *step, sht *last);
str MACROprocessor(Client cntxt, MalBlkPtr mb, Symbol t);
int MAL_MAXCLIENTS;
int MALadmission_claim(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci, lng argclaim);
@@ -908,16 +866,6 @@ str MALreader(Client c);
str MANIFOLDevaluate(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str MANIFOLDremapMultiplex(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
p);
MALfcn MANIFOLDtypecheck(Client cntxt, MalBlkPtr mb, InstrPtr pci, int
checkprops);
-str MANUALcreateOverview(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str MATpack(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str MATpackIncrement(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str MATpackValues(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str MBMmix(bat *ret, bat *batid);
-str MBMnormal(bat *ret, oid *base, lng *size, int *domain, int *stddev, int
*mean);
-str MBMrandom(bat *ret, oid *base, lng *size, int *domain);
-str MBMrandom_seed(bat *ret, oid *base, lng *size, int *domain, const int
*seed);
-str MBMskewed(bat *ret, oid *base, lng *size, int *domain, int *skew);
-str MBMuniform(bat *ret, oid *base, lng *size, int *domain);
int MCactiveClients(void);
str MCawakeClient(int id);
void MCcloseClient(Client c);
@@ -928,13 +876,6 @@ int MCpushClientInput(Client c, bstream
void MCstopClients(Client c);
str MCsuspendClient(int id);
int MCvalid(Client c);
-str MKEYbathash(bat *res, const bat *bid);
-str MKEYbulk_rotate_xor_hash(bat *ret, const bat *hid, const int *nbits, const
bat *bid);
-str MKEYbulkconst_rotate_xor_hash(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr p);
-str MKEYconstbulk_rotate_xor_hash(bat *ret, const lng *h, const int *nbits,
const bat *bid);
-str MKEYhash(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str MKEYrotate(lng *ret, const lng *v, const int *nbits);
-str MKEYrotate_xor_hash(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
void MPresetProfiler(stream *fdout);
char *MSP_locate_sqlscript(const char *mod_name, bit recurse);
str MSinitClientPrg(Client cntxt, str mod, str nme);
@@ -1011,30 +952,6 @@ int QLOGisset(void);
str QLOGissetFcn(int *ret);
str QOToptimize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
QueryQueue QRYqueue;
-str RMTbatload(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str RMTbincopyfrom(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str RMTbincopyto(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str RMTbintype(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str RMTconnect(str *ret, str *uri, str *user, str *passwd);
-str RMTconnectScen(str *ret, str *ouri, str *user, str *passwd, str *scen);
-str RMTconnectTable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str RMTdisconnect(void *ret, str *conn);
-str RMTepilogue(void *ret);
-str RMTexec(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str RMTget(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str RMTisalive(int *ret, str *conn);
-str RMTprelude(void *ret);
-str RMTput(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str RMTregister(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str RMTregisterSupervisor(int *ret, str *sup_uuid, str *query_uuid);
-str RMTresolve(bat *ret, str *pat);
-str RUNadder(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str RUNchoice(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str RUNcostPrediction(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str RUNisolation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str RUNpickResult(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str RUNvolumeCost(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str SAMPLEuniform(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str SERVERbindBAT(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str SERVERclient(void *res, const Stream *In, const Stream *Out);
str SERVERconnect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pc);
@@ -1125,11 +1042,6 @@ str STRsubstring(str *ret, const str *s,
str STRsubstringTail(str *ret, const str *s, const int *start);
str STRsuffix(str *ret, const str *s, const int *l);
str STRtostr(str *res, const str *src);
-str SYSMONpause(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str SYSMONqueue(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str SYSMONresume(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str SYSMONstatistics(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str SYSMONstop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str SYScpuStatistics(bat *ret, bat *ret2);
str SYSgdkEnv(bat *ret, bat *ret2);
str SYSgdkThread(bat *ret, bat *ret2);
@@ -1158,16 +1070,6 @@ str TKNZRgetLevel(bat *r, int *level);
str TKNZRlocate(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str TKNZRopen(void *r, str *name);
str TKNZRtakeOid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str TRACERcomp_info(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str TRACERflush_buffer(void *ret);
-str TRACERreset_adapter(void *ret);
-str TRACERreset_component_level(void *ret, str *comp_id);
-str TRACERreset_flush_level(void *ret);
-str TRACERreset_layer_level(void *ret, str *layer_id);
-str TRACERset_adapter(void *ret, str *adapter_id);
-str TRACERset_component_level(void *ret, str *comp_id, str *lvl_id);
-str TRACERset_flush_level(void *ret, str *lvl_id);
-str TRACERset_layer_level(void *ret, str *layer_id, str *lvl_id);
int TRACEtable(Client cntxt, BAT **r);
str TRNglobal_abort(bit *ret);
str TRNglobal_commit(bit *ret);
@@ -1386,8 +1288,6 @@ void freeStack(MalStkPtr stk);
void freeSymbol(Symbol s);
void freeSymbolList(Symbol s);
void freeVariable(MalBlkPtr mb, int varid);
-str fstrcmp0_impl(dbl *ret, str *string1, str *string2);
-str fstrcmp_impl(dbl *ret, str *string1, str *string2, dbl *minimum);
void garbageCollector(Client cntxt, MalBlkPtr mb, MalStkPtr stk, int flag);
void garbageElement(Client cntxt, ValPtr v);
str generatorRef;
@@ -1511,9 +1411,6 @@ str languageRef;
str last_valueRef;
str leadRef;
str leftjoinRef;
-str levenshtein_impl(int *result, str *s, str *t, int *insdel_cost, int
*replace_cost, int *transpose_cost);
-str levenshteinbasic2_impl(int *result, str *s, str *t);
-str levenshteinbasic_impl(int *result, str *s, str *t);
str likeRef;
str likejoinRef;
str likeselectRef;
@@ -1584,12 +1481,12 @@ void moveInstruction(MalBlkPtr mb, int p
void msab_dbfarminit(const char *dbfarm);
void msab_dbnameinit(const char *dbname);
void msab_dbpathinit(const char *dbpath);
-char *msab_deserialise(sabdb **ret, char *sabdb);
+char *msab_deserialise(sabdb **ret, const char *sabdb);
void msab_freeStatus(sabdb **ret);
char *msab_getDBfarm(char **ret);
char *msab_getDBname(char **ret);
char *msab_getMyStatus(sabdb **ret);
-char *msab_getStatus(sabdb **ret, char *dbname);
+char *msab_getStatus(sabdb **ret, const char *dbname);
char *msab_getUUID(char **ret);
char *msab_getUplogInfo(sabuplog *ret, const sabdb *db);
char *msab_marchConnection(const char *host, const int port);
@@ -1786,7 +1683,6 @@ void slash_2_dir_sep(str fname);
str sliceRef;
str sortRef;
str sortReverseRef;
-str soundex_impl(str *res, str *Name);
void sqlProfilerEvent(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str sqlRef;
str sqlcatalogRef;
@@ -1801,7 +1697,6 @@ void strAfterCall(ValPtr v, ValPtr bak);
void strBeforeCall(ValPtr v, ValPtr bak);
str strRef;
str streamsRef;
-str stringdiff_impl(int *res, str *s1, str *s2);
str subavgRef;
str subcountRef;
str subdeltaRef;
diff --git a/cmake/monetdb-custom-targets.cmake
b/cmake/monetdb-custom-targets.cmake
--- a/cmake/monetdb-custom-targets.cmake
+++ b/cmake/monetdb-custom-targets.cmake
@@ -86,7 +86,7 @@ endif()
if(CANDLE_FOUND)
add_custom_target(create-wix-packages
COMMAND
- ${CMAKE_CPACK_COMMAND} -G WIX -C Debug
+ ${CMAKE_CPACK_COMMAND} -G WIX -C Release
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
else()
add_custom_target(create-wix-packages
diff --git a/cmake/monetdb-toolchain.cmake b/cmake/monetdb-toolchain.cmake
--- a/cmake/monetdb-toolchain.cmake
+++ b/cmake/monetdb-toolchain.cmake
@@ -46,7 +46,6 @@ function(monetdb_default_toolchain)
MT_checkCompilerFlag("-Wvariadic-macros")
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list