Changeset: ac259ff6040a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ac259ff6040a
Added Files:
monetdb5/mal/Tests/tst1602.timeout
monetdb5/modules/mal/Tests/bigsum.timeout
monetdb5/optimizer/opt_candidates.c
monetdb5/optimizer/opt_candidates.h
sql/benchmarks/wisconsin/Tests/load.timeout
sql/test/BugTracker-2012/Tests/huge_table_update.Bug-2803.timeout
sql/test/BugTracker-2015/Tests/ambiguous.Bug-3803.stable.out.int128
sql/test/BugTracker-2015/Tests/select-tilde-arg.Bug-3814.sql
sql/test/BugTracker-2015/Tests/select-tilde-arg.Bug-3814.stable.err
sql/test/BugTracker-2015/Tests/select-tilde-arg.Bug-3814.stable.out
sql/test/Tests/alastair_udf_mergetable_bug.stable.out.int128
Removed Files:
gdk/gdk_setop.c
Modified Files:
clients/R/Tests/deps-test.stable.out
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/eventparser.c
clients/mapiclient/eventparser.h
clients/odbc/driver/ODBCConvert.c
configure.ag
gdk/ChangeLog
gdk/Makefile.ag
gdk/gdk.h
gdk/gdk_align.c
gdk/gdk_atoms.c
gdk/gdk_bat.c
gdk/gdk_batop.c
gdk/gdk_bbp.c
gdk/gdk_group.c
gdk/gdk_heap.c
gdk/gdk_imprints.c
gdk/gdk_join.c
gdk/gdk_logger.c
gdk/gdk_posix.c
gdk/gdk_private.h
gdk/gdk_sample.c
gdk/gdk_search.c
gdk/gdk_select.c
gdk/gdk_ssort.c
gdk/gdk_ssort_impl.h
gdk/gdk_storage.c
gdk/gdk_tm.c
gdk/gdk_unique.c
gdk/gdk_utils.c
monetdb5/ChangeLog
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single
monetdb5/mal/Tests/tst201.mal
monetdb5/mal/Tests/tst201.stable.out
monetdb5/mal/mal.h
monetdb5/mal/mal_atom.c
monetdb5/mal/mal_function.c
monetdb5/mal/mal_instruction.c
monetdb5/mal/mal_instruction.h
monetdb5/mal/mal_linker.c
monetdb5/mal/mal_parser.c
monetdb5/mal/mal_profiler.c
monetdb5/mal/mal_type.h
monetdb5/modules/atoms/uuid.mal
monetdb5/modules/kernel/algebra.c
monetdb5/modules/kernel/algebra.h
monetdb5/modules/kernel/algebra.mal
monetdb5/modules/kernel/bat5.c
monetdb5/modules/mal/batExtensions.c
monetdb5/modules/mal/bbp.c
monetdb5/modules/mal/manifold.h
monetdb5/modules/mal/mat.c
monetdb5/modules/mal/mat.h
monetdb5/modules/mal/mat.mal
monetdb5/modules/mal/tablet.c
monetdb5/modules/mal/tokenizer.c
monetdb5/modules/mal/transaction.c
monetdb5/optimizer/Makefile.ag
monetdb5/optimizer/opt_garbageCollector.c
monetdb5/optimizer/opt_multiplex.c
monetdb5/optimizer/opt_pipes.c
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
monetdb5/optimizer/opt_pushselect.c
monetdb5/optimizer/opt_remoteQueries.c
monetdb5/optimizer/opt_support.h
monetdb5/optimizer/opt_wrapper.c
monetdb5/optimizer/optimizer.mal
sql/backends/monet5/UDF/Tests/udf-fuse.stable.out
sql/backends/monet5/UDF/Tests/udf-reverse.stable.out
sql/backends/monet5/embeddedclient.c.in
sql/backends/monet5/embeddedclient.h
sql/backends/monet5/prog.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.mal
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_optimizer.c
sql/backends/monet5/vaults/fits.c
sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128
sql/benchmarks/tpch/Tests/01-explain.stable.out.int128
sql/benchmarks/tpch/Tests/02-explain.stable.out
sql/benchmarks/tpch/Tests/03-explain.stable.out.int128
sql/benchmarks/tpch/Tests/04-explain.stable.out
sql/benchmarks/tpch/Tests/05-explain.stable.out.int128
sql/benchmarks/tpch/Tests/06-explain.stable.out.int128
sql/benchmarks/tpch/Tests/07-explain.stable.out.int128
sql/benchmarks/tpch/Tests/08-explain.stable.out.int128
sql/benchmarks/tpch/Tests/09-explain.stable.out.int128
sql/benchmarks/tpch/Tests/10-explain.stable.out.int128
sql/benchmarks/tpch/Tests/11-explain.stable.out.int128
sql/benchmarks/tpch/Tests/12-explain.stable.out
sql/benchmarks/tpch/Tests/12-explain.stable.out.int128
sql/benchmarks/tpch/Tests/13-explain.stable.out
sql/benchmarks/tpch/Tests/13-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/14-explain.stable.out.int128
sql/benchmarks/tpch/Tests/15-explain.stable.out.int128
sql/benchmarks/tpch/Tests/16-explain.stable.out
sql/benchmarks/tpch/Tests/16-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/17-explain.stable.out.int128
sql/benchmarks/tpch/Tests/18-explain.stable.out.int128
sql/benchmarks/tpch/Tests/19-explain.stable.out.int128
sql/benchmarks/tpch/Tests/20-explain.stable.out.int128
sql/benchmarks/tpch/Tests/21-explain.stable.out
sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/22-explain.stable.out.int128
sql/server/sql_datetime.c
sql/server/sql_parser.y
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128
sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
sql/test/BugTracker-2015/Tests/All
sql/test/BugTracker-2015/Tests/ambiguous.Bug-3803.stable.out
sql/test/BugTracker-2015/Tests/insert_into_merge_table_crash.Bug-3703.stable.err
sql/test/BugTracker-2015/Tests/insert_into_merge_table_crash.Bug-3703.stable.out
sql/test/BugTracker-2015/Tests/local-remotetable-crash.Bug-3754.stable.err
sql/test/BugTracker-2015/Tests/local-remotetable-crash.Bug-3754.stable.out
sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
sql/test/Tests/alastair_udf_mergetable_bug.stable.out
sql/test/Tests/setoptimizer.stable.err
sql/test/Tests/setoptimizer.stable.out
sql/test/Tests/setoptimizer.stable.out.Windows
sql/test/mergetables/Tests/mergequery.stable.out
sql/test/pg_regress/Tests/interval.stable.err
sql/test/pg_regress/Tests/interval.stable.out
sql/test/pg_regress/Tests/oid.stable.err.oid32
sql/test/remote/Tests/All
sql/test/remote/Tests/partition_elim.stable.out
testing/Mtest.py.in
Branch: leftmart
Log Message:
Merge with default branch.
diffs (truncated from 12672 to 300 lines):
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -2350,10 +2350,6 @@ command algebra.like(s:str,pat:str):bit
address PCRElike2;
command algebra.like(s:str,pat:str,esc:str):bit
address PCRElike3;
-command algebra.like(b:bat[:oid,:str],substr:str):bat[:oid,:oid]
-address ALGlike;
-comment Selects all elements that have 'substr' as in the tail.
-
command
algebra.leftfetchjoin(left:bat[:oid,:oid],right:bat[:oid,:any_3]):bat[:oid,:any_3]
address ALGleftfetchjoin;
comment Hook directly into the left fetch join implementation.
@@ -37307,6 +37303,7 @@ command calc.timestamp(t:timestamp):time
address MTIMEtimestamp2timestamp;
command calc.timestamp(s:str):timestamp
address MTIMEtimestamp_fromstr;
+function calc.uuid(u:uuid):uuid;
command calc.uuid(s:str):uuid
address UUIDstr2uuid;
comment Coerce a string to a uuid, validating its format
@@ -38907,8 +38904,6 @@ pattern mat.new(b:bat[:oid,:any_2]...):b
address MATpack;
comment Define a Merge Association Table (MAT). Faal back to the pack
operationwhen this is called
-pattern mat.print(b:bat[:oid,:any_2]...):void
-address MATprint;
pattern mat.project(map:bat[:oid,:bte],b:bat[:oid,:any_2]...):bat[:oid,:any_2]
address MATproject;
comment project using the map bat (contains which bat to use in scan order)
@@ -39755,6 +39750,12 @@ comment Duplicate constant removal optim
pattern optimizer.constants():str
address OPTwrapper;
+pattern optimizer.candidates(mod:str,fcn:str):str
+address OPTwrapper;
+comment Mark candidate list variables
+
+pattern optimizer.candidates():str
+address OPTwrapper;
pattern optimizer.commonTerms(mod:any_1,fcn:any_2):str
address OPTwrapper;
comment Common sub-expression optimizer
@@ -40822,11 +40823,11 @@ pattern sql.start():void
address SQLsession;
comment Switch to processing SQL statements
-pattern
sql.tid(mvc:int,sname:str,tname:str,part_nr:int,nr_parts:int):bat[:oid,:any_3]
+pattern
sql.tid(mvc:int,sname:str,tname:str,part_nr:int,nr_parts:int):bat[:oid,:oid]
address SQLtid;
comment Return the tables tid column.
-pattern sql.tid(mvc:int,sname:str,tname:str):bat[:oid,:any_3]
+pattern sql.tid(mvc:int,sname:str,tname:str):bat[:oid,:oid]
address SQLtid;
comment Return the tables tid column.
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -2861,10 +2861,6 @@ command algebra.like(s:str,pat:str):bit
address PCRElike2;
command algebra.like(s:str,pat:str,esc:str):bit
address PCRElike3;
-command algebra.like(b:bat[:oid,:str],substr:str):bat[:oid,:oid]
-address ALGlike;
-comment Selects all elements that have 'substr' as in the tail.
-
command
algebra.leftfetchjoin(left:bat[:oid,:oid],right:bat[:oid,:any_3]):bat[:oid,:any_3]
address ALGleftfetchjoin;
comment Hook directly into the left fetch join implementation.
@@ -48162,6 +48158,7 @@ command calc.timestamp(t:timestamp):time
address MTIMEtimestamp2timestamp;
command calc.timestamp(s:str):timestamp
address MTIMEtimestamp_fromstr;
+function calc.uuid(u:uuid):uuid;
command calc.uuid(s:str):uuid
address UUIDstr2uuid;
comment Coerce a string to a uuid, validating its format
@@ -49834,8 +49831,6 @@ pattern mat.new(b:bat[:oid,:any_2]...):b
address MATpack;
comment Define a Merge Association Table (MAT). Faal back to the pack
operationwhen this is called
-pattern mat.print(b:bat[:oid,:any_2]...):void
-address MATprint;
pattern mat.project(map:bat[:oid,:bte],b:bat[:oid,:any_2]...):bat[:oid,:any_2]
address MATproject;
comment project using the map bat (contains which bat to use in scan order)
@@ -50686,6 +50681,12 @@ comment Duplicate constant removal optim
pattern optimizer.constants():str
address OPTwrapper;
+pattern optimizer.candidates(mod:str,fcn:str):str
+address OPTwrapper;
+comment Mark candidate list variables
+
+pattern optimizer.candidates():str
+address OPTwrapper;
pattern optimizer.commonTerms(mod:any_1,fcn:any_2):str
address OPTwrapper;
comment Common sub-expression optimizer
@@ -51761,11 +51762,11 @@ pattern sql.start():void
address SQLsession;
comment Switch to processing SQL statements
-pattern
sql.tid(mvc:int,sname:str,tname:str,part_nr:int,nr_parts:int):bat[:oid,:any_3]
+pattern
sql.tid(mvc:int,sname:str,tname:str,part_nr:int,nr_parts:int):bat[:oid,:oid]
address SQLtid;
comment Return the tables tid column.
-pattern sql.tid(mvc:int,sname:str,tname:str):bat[:oid,:any_3]
+pattern sql.tid(mvc:int,sname:str,tname:str):bat[:oid,:oid]
address SQLtid;
comment Return the tables tid column.
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
@@ -304,7 +304,7 @@ int THRhighwater(void);
Thread THRnew(const char *name);
int THRprintf(stream *s, _In_z_ _Printf_format_string_ const char *format,
...) __attribute__((__format__(__printf__, 2, 3)));
void THRsetdata(int, ptr);
-gdk_return TMabort(void);
+void TMabort(void);
gdk_return TMcommit(void);
gdk_return TMsubcommit(BAT *bl);
gdk_return TMsubcommit_list(bat *subcommit, int cnt);
@@ -716,7 +716,6 @@ str ALGgroupby(bat *res, const bat *gids
str ALGjoin2(bat *l, bat *r, const bat *lid, const bat *rid);
str ALGjoinPath(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str ALGleftfetchjoin(bat *result, const bat *lid, const bat *rid);
-str ALGlike(bat *ret, const bat *bid, const str *k);
str ALGmaxany(ptr result, const bat *bid);
str ALGminany(ptr result, const bat *bid);
str ALGprojecttail(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
@@ -1369,7 +1368,6 @@ str MATpack2(Client cntxt, MalBlkPtr mb,
str MATpackIncrement(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
str MATpackSlice(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
str MATpackValues(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str MATprint(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
str MATproject(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str MATsort(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str MATsortReverse(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
@@ -1571,6 +1569,7 @@ str OIDXgetorderidx(Client cntxt, MalBlk
str OIDXmerge(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
void OPTaliasRemap(InstrPtr p, int *alias);
int OPTaliasesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr p);
+int OPTcandidatesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr p);
int OPTcoercionImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
int OPTcommonTermsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
int OPTconstantsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr p);
@@ -2014,8 +2013,6 @@ str bstream_read_wrapwrap(int *res, Bstr
str calcRef;
str callMAL(Client cntxt, MalBlkPtr mb, MalStkPtr *glb, ValPtr argv[], char
debug);
int callString(Client c, str s, int listing);
-int canBeCrackedProp;
-int canBeJoinselectProp;
str catalogRef;
str catchKernelException(Client cntxt, str ret);
void chkDeclarations(stream *out, MalBlkPtr mb);
@@ -2077,7 +2074,6 @@ void delName(const char *nme, size_t len
void delVariable(MalBlkPtr mb, int varid);
str deleteRef;
void deleteSymbol(Module scope, Symbol prg);
-int deletesProp;
str deltaRef;
str depositRef;
void deriveModule(Module scope, str nme);
@@ -2188,16 +2184,14 @@ int hasSameSignature(MalBlkPtr mb, Instr
int hasSideEffects(InstrPtr p, int strict);
str hashRef;
int have_hge;
-int headProp;
str hgeRef;
-int hlbProp;
int horiginProp;
-int hubProp;
str identityRef;
str ifthenelseRef;
str ilikeRef;
str ilikeselectRef;
str ilikesubselectRef;
+str ilikethetasubselectRef;
str ilikeuselectRef;
void initHeartbeat(void);
void initLibraries(void);
@@ -2211,7 +2205,6 @@ str inplaceRef;
void insertInstruction(MalBlkPtr mb, InstrPtr p, int pc);
str insertRef;
void insertSymbol(Module scope, Symbol prg);
-int insertionsProp;
str instruction2str(MalBlkPtr mb, MalStkPtr stl, InstrPtr p, int hidden);
str instructionCall(MalBlkPtr mb, InstrPtr p, str s, str base, size_t len);
str intRef;
@@ -2259,7 +2252,6 @@ str joinPathRef;
str joinRef;
str jsonRef;
str kdifferenceRef;
-int keepProp;
str languageRef;
str leftfetchjoinPathRef;
str leftfetchjoinRef;
@@ -2269,6 +2261,7 @@ str levenshteinbasic_impl(int *result, s
str likeRef;
str likeselectRef;
str likesubselectRef;
+str likethetasubselectRef;
str likeuselectRef;
str listRef;
str loadLibrary(str modulename, int flag);
@@ -2398,7 +2391,6 @@ str notRef;
str not_ilikeRef;
str not_likeRef;
str not_uniqueRef;
-int notnilProp;
str oidRef;
void oldmoveInstruction(InstrPtr dst, InstrPtr src);
str openProfilerStream(stream *fd);
@@ -2422,8 +2414,6 @@ str pcreRef;
str pcre_init(void *ret);
var_t pcre_put(Heap *h, var_t *bun, pcre *val);
str pinRef;
-int pivotDisjunctiveProp;
-int pivotProp;
str plusRef;
str postludeRef;
str preludeRef;
@@ -2487,7 +2477,6 @@ str remoteRef;
void removeDataflow(MalBlkPtr mb);
void removeInstruction(MalBlkPtr mb, InstrPtr p);
void removeInstructionBlock(MalBlkPtr mb, int pc, int cnt);
-int removeProp;
void removeVariable(MalBlkPtr mb, int varid);
void renameVariable(MalBlkPtr mb, int i, str pattern, int newid);
str replaceRef;
@@ -2553,7 +2542,6 @@ void showScenarioByName(stream *f, str s
void showScriptException(stream *out, MalBlkPtr, int, enum malexception,
_In_z_ _Printf_format_string_ const char *, ...)
__attribute__((__format__(__printf__, 5, 6)));
str shutdownFactory(Client cntxt, MalBlkPtr mb);
str shutdownFactoryByName(Client cntxt, Module m, str nme);
-int sidewaysSelectProp;
str singleRef;
str sinkRef;
void slash_2_dir_sep(str fname);
@@ -2566,7 +2554,6 @@ int sqlblob_fromstr(char *instr, int *l,
int sqlblob_tostr(str *tostr, int *l, const blob *p);
int sqlfunctionProp;
str srvpoolRef;
-int stableProp;
str startProfiler(oid user, int mode, int beat);
str startRef;
str stopProfiler(void);
@@ -2599,8 +2586,8 @@ str subsliceRef;
str subsortRef;
str subsumRef;
str subthetajoinRef;
+str subuniqueRef;
str sumRef;
-int tableProp;
str takeOid(oid id, str *val);
str takeRef;
str thetajoinRef;
@@ -2612,12 +2599,10 @@ timestamp *timestamp_nil;
int timestamp_tostr(str *buf, int *len, const timestamp *val);
int timestamp_tz_fromstr(const char *buf, int *len, timestamp **ret);
int timestamp_tz_tostr(str *buf, int *len, const timestamp *val, const tzone
*timezone);
-int tlbProp;
int toriginProp;
void trimMalBlk(MalBlkPtr mb);
void trimMalVariables(MalBlkPtr mb, MalStkPtr stk);
void trimMalVariables_(MalBlkPtr mb, bit *used, MalStkPtr glb);
-int tubProp;
void typeChecker(stream *out, Module scope, MalBlkPtr mb, InstrPtr p, int
silent);
int tzone_fromstr(const char *buf, int *len, tzone **d);
tzone tzone_local;
@@ -2631,7 +2616,6 @@ int unsafeProp;
void updateFootPrint(MalBlkPtr mb, MalStkPtr stk, int varid);
str updateRef;
void updateScenario(str scen, str nme, MALfcn fcn);
-int updatesProp;
str userRef;
VarPtr varGetProp(MalBlkPtr mb, int var, int prop);
str varGetPropStr(MalBlkPtr mb, int var);
diff --git a/clients/mapiclient/eventparser.c b/clients/mapiclient/eventparser.c
--- a/clients/mapiclient/eventparser.c
+++ b/clients/mapiclient/eventparser.c
@@ -8,6 +8,7 @@
/* (c) M Kersten */
+#include "monetdb_config.h"
#include "eventparser.h"
char *statenames[]= {"","start","done","action","ping","wait","system"};
diff --git a/clients/mapiclient/eventparser.h b/clients/mapiclient/eventparser.h
--- a/clients/mapiclient/eventparser.h
+++ b/clients/mapiclient/eventparser.h
@@ -19,8 +19,6 @@
#ifndef _EVENT_PARSER_
#define _EVENT_PARSER_
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list