Changeset: b13e58aff479 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b13e58aff479 Modified Files: MonetDB.spec NT/monetdb_config.h.in NT/rules.msc buildtools/ChangeLog.Apr2019 clients/Tests/All clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/mclient.c clients/mapiclient/stethoscope.c clients/mapilib/mapi.rc common/utils/matomic.h configure.ag debian/control debian/fix-deb.sh debian/monetdb-testing-python.install debian/rules gdk/ChangeLog.Apr2019 gdk/gdk_atoms.h gdk/gdk_utils.c gdk/gdk_utils.h monetdb5/mal/mal_import.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_profiler.c monetdb5/modules/atoms/uuid.c monetdb5/modules/mal/language.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/wlc.c monetdb5/tools/Tests/mserver5--help.stable.err.Windows sql/ChangeLog sql/backends/monet5/Tests/All sql/backends/monet5/UDF/Makefile.ag sql/backends/monet5/UDF/capi/Tests/capi09.stable.out sql/backends/monet5/UDF/pyapi/Makefile.ag sql/backends/monet5/UDF/pyapi/Tests/All sql/backends/monet5/UDF/pyapi3/Tests/All sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_05.stable.err sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_05.stable.out sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql.h sql/backends/monet5/sql.mal sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_scenario.h sql/backends/monet5/sql_transaction.c sql/backends/monet5/sql_upgrades.c sql/backends/monet5/sql_user.c sql/backends/monet5/wlr.c sql/common/sql_types.c sql/include/sql_catalog.h sql/scripts/25_debug.sql sql/server/rel_exp.h sql/server/rel_psm.c sql/server/rel_select.c sql/server/rel_semantic.c sql/server/sql_mvc.c sql/server/sql_privileges.c sql/storage/bat/bat_storage.c sql/storage/sql_storage.h sql/storage/store.c sql/test/BugTracker-2013/Tests/restore-uuid.Bug-3407.stable.out sql/test/BugTracker-2015/Tests/uuid-compare.Bug-3827.stable.out sql/test/BugTracker-2016/Tests/isaUUID_function.Bug-3997.stable.out sql/test/BugTracker-2016/Tests/min-max-uuid-column-wrong-results.Bug-3953.stable.out sql/test/BugTracker-2017/Tests/All sql/test/BugTracker-2018/Tests/All sql/test/BugTracker-2018/Tests/remote-table-where-is-null.Bug-6601.stable.out sql/test/BugTracker-2018/Tests/remote-table-where-not-equal.Bug-6621.stable.out sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.int128 sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/upgrade.stable.out sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 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/mapi/Tests/All sql/test/merge-partitions/Tests/All sql/test/orderidx/Tests/imprints_all_types.stable.out sql/test/orderidx/Tests/oidx_all_types.stable.out sql/test/remote/Tests/invalid_creds.SQL.py sql/test/sys-schema/Tests/systemfunctions.stable.out sql/test/sys-schema/Tests/systemfunctions.stable.out.int128 sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 testing/Mtest.py.in Branch: context Log Message:
merged with default diffs (truncated from 5930 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -100,8 +100,8 @@ %bcond_without fits %endif -%{!?__python2: %global __python2 %__python} -%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?__python3: %global __python3 /usr/bin/python3} +%{!?python3_sitelib: %global python3_sitelib %(%{__python3} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} Name: %{name} Version: %{version} @@ -126,6 +126,7 @@ BuildRequires: hardlink %endif BuildRequires: gcc BuildRequires: bison +BuildRequires: /usr/bin/python3 %if %{?rhel:1}%{!?rhel:0} BuildRequires: bzip2-devel %else @@ -397,7 +398,7 @@ Recommends: perl-DBD-monetdb >= 1.0 Recommends: php-monetdb >= 1.0 %endif Requires: %{name}-SQL-server5%{?_isa} = %{version}-%{release} -Requires: python-pymonetdb >= 1.0.6 +Requires: python3-pymonetdb >= 1.0.6 %description client-tests MonetDB is a database management system that is developed from a @@ -846,7 +847,7 @@ Summary: MonetDB - Monet Database Manage Group: Applications/Databases Requires: %{name}-testing = %{version}-%{release} Requires: %{name}-client-tests = %{version}-%{release} -Requires: python +Requires: /usr/bin/python3 BuildArch: noarch %description testing-python @@ -863,8 +864,8 @@ developer, but if you do want to test, t %defattr(-,root,root) %{_bindir}/Mapprove.py %{_bindir}/Mtest.py -%dir %{python2_sitelib}/MonetDBtesting -%{python2_sitelib}/MonetDBtesting/* +%dir %{python3_sitelib}/MonetDBtesting +%{python3_sitelib}/MonetDBtesting/* %if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 %package selinux @@ -953,9 +954,11 @@ fi CFLAGS="${CFLAGS:-%optflags -Wno-format-truncation}" %endif export CFLAGS +# do not use --enable-optimize or --disable-optimize: we don't want +# any changes to optimization flags %{configure} \ --enable-assert=no \ - --enable-debug=no \ + --enable-debug=yes \ --enable-developer=no \ --enable-embedded=no \ --enable-embedded-r=no \ @@ -968,7 +971,6 @@ export CFLAGS --enable-monetdb5=yes \ --enable-netcdf=no \ --enable-odbc=yes \ - --enable-optimize=no \ --enable-py2integration=%{?with_py2integration:yes}%{!?with_py2integration:no} \ --enable-py3integration=%{?with_py3integration:yes}%{!?with_py3integration:no} \ --enable-rintegration=%{?with_rintegration:yes}%{!?with_rintegration:no} \ @@ -989,8 +991,8 @@ export CFLAGS --with-openssl=yes \ --with-proj=no \ --with-pthread=yes \ - --with-python2=yes \ - --with-python3=%{?with_py3integration:yes}%{!?with_py3integration:no} \ + --with-python2=%{?with_py2integration:yes}%{!?with_py2integration:no} \ + --with-python3=yes \ --with-readline=yes \ --with-regex=%{?with_pcre:PCRE}%{!?with_pcre:POSIX} \ --with-samtools=%{?with_samtools:yes}%{!?with_samtools:no} \ diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in --- a/NT/monetdb_config.h.in +++ b/NT/monetdb_config.h.in @@ -264,7 +264,7 @@ /* #undef HAVE_LIBPTHREAD */ /* Define if we can link to python */ -/* #undef HAVE_LIBPY */ +/* #undef HAVE_LIBPY2 */ /* Define if we can link to python */ /* #undef HAVE_LIBPY3 */ diff --git a/NT/rules.msc b/NT/rules.msc --- a/NT/rules.msc +++ b/NT/rules.msc @@ -69,7 +69,6 @@ PYTHON2BASE=C:\Python27 !IFNDEF PYTHON2LIB PYTHON2LIB=python27.lib !ENDIF -PYTHON2_LIBDIR=share\MonetDB\python !IFNDEF PYTHON3BASE PYTHON3BASE=C:\Python32 @@ -77,15 +76,8 @@ PYTHON3BASE=C:\Python32 !IFNDEF PYTHON3LIB PYTHON3LIB=python32.lib !ENDIF -PYTHON3_LIBDIR=share\MonetDB\python3 -!IFDEF PYTHON2BASE -PYTHON_LIBDIR=$(PYTHON2_LIBDIR) -!ELSE -!IFDEF PYTHON3BASE -PYTHON_LIBDIR=$(PYTHON3_LIBDIR) -!ENDIF -!ENDIF +PYTHON_LIBDIR=share\MonetDB\python !IFDEF HAVE_PCRE # This is the location of the PCRE library @@ -173,13 +165,13 @@ libr_CFLAGS = -DHAVE_LIBR "-I$(LIBR)\inc # generate R.lib from R.dll, needed for linking R.lib: "$(libr_DLL)" - dumpbin /exports "$(libr_DLL)" | python "$(TOPDIR)\..\NT\makelibdef.py" > R.def + dumpbin /exports "$(libr_DLL)" | "$(PYTHON)" "$(TOPDIR)\..\NT\makelibdef.py" > R.def lib /machine:$(BITSMCHN) /def:R.def /out:R.lib !ENDIF -!IFDEF HAVE_LIBPY -libpy_LIBS = "$(PYTHON2DIR)\libs\python27.lib" -libpy_CFLAGS = -DHAVE_LIBPY "-I$(PYTHON2DIR)\include" "-I$(PYTHON2DIR)\Lib\site-packages\numpy\core\include" +!IFDEF HAVE_LIBPY2 +libpy2_LIBS = "$(PYTHON2DIR)\libs\python27.lib" +libpy2_CFLAGS = -DHAVE_LIBPY2 "-I$(PYTHON2DIR)\include" "-I$(PYTHON2DIR)\Lib\site-packages\numpy\core\include" !ENDIF !IFDEF HAVE_LIBPY3 @@ -191,6 +183,7 @@ libpy3_CFLAGS = -DHAVE_LIBPY3 "-I$(PYTHO # install python, flex and bison on your systems # PYTHON may be either a version 2 or a version 3 +# here we let %Path% determine which version we get PYTHON = python YACC = bison LEX = flex @@ -328,10 +321,10 @@ create_winconfig_conds_new_py: !ELSE $(ECHO) HAVE_LIBLZMA_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py" !ENDIF -!IFDEF HAVE_LIBPY - $(ECHO) HAVE_LIBPY_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py" +!IFDEF HAVE_LIBPY2 + $(ECHO) HAVE_LIBPY2_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py" !ELSE - $(ECHO) HAVE_LIBPY_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py" + $(ECHO) HAVE_LIBPY2_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py" !ENDIF !IFDEF HAVE_LIBPY3 $(ECHO) HAVE_LIBPY3_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py" @@ -383,21 +376,6 @@ create_winconfig_conds_new_py: !ELSE $(ECHO) HAVE_PROJ_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py" !ENDIF -!IFDEF HAVE_PYTHON - $(ECHO) HAVE_PYTHON_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py" -!ELSE - $(ECHO) HAVE_PYTHON_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py" -!ENDIF -!IFDEF HAVE_PYTHON2 - $(ECHO) HAVE_PYTHON2_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py" -!ELSE - $(ECHO) HAVE_PYTHON2_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py" -!ENDIF -!IFDEF HAVE_PYTHON3 - $(ECHO) HAVE_PYTHON3_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py" -!ELSE - $(ECHO) HAVE_PYTHON3_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py" -!ENDIF !IFDEF HAVE_SAMTOOLS $(ECHO) HAVE_SAMTOOLS_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py" !ELSE @@ -439,7 +417,7 @@ update_winconfig_conds_py: create_wincon cmp -s "$(TOPDIR)\winconfig_conds_new.py" "$(TOPDIR)\winconfig_conds.py" || \ $(CP) "$(TOPDIR)\winconfig_conds_new.py" "$(TOPDIR)\winconfig_conds.py" -CONFIGURE=$(PYTHON) $(CONFIGURE_PY) \ +CONFIGURE="$(PYTHON)" $(CONFIGURE_PY) \ "$(TOPDIR)\winconfig_conds.py" \ "prefix=$(prefix)" \ "LIBICONV=$(LIBICONV)" \ @@ -449,9 +427,7 @@ CONFIGURE=$(PYTHON) $(CONFIGURE_PY) \ "PYTHON=$(PYTHON)" \ "PYTHON_LIBDIR=$(PYTHON_LIBDIR)" \ "PYTHON2=$(PYTHON2)" \ - "PYTHON2_LIBDIR=$(PYTHON2_LIBDIR)" \ "PYTHON3=$(PYTHON3)" \ - "PYTHON3_LIBDIR=$(PYTHON3_LIBDIR)" \ "TOPDIR=$(TOPDIR)" \ "VERSION=$(VERSION)" \ "builtby=%USER%@%COMPUTERNAME%" \ diff --git a/buildtools/ChangeLog.Apr2019 b/buildtools/ChangeLog.Apr2019 --- a/buildtools/ChangeLog.Apr2019 +++ b/buildtools/ChangeLog.Apr2019 @@ -1,3 +1,12 @@ # ChangeLog file for buildtools # This file is updated with Maddlog +* Fri Jul 12 2019 Sjoerd Mullender <sjo...@acm.org> +- Removed restriction on using combinations of --enable-assert, + --enable-debug, and --enable-optimize. --enable-debug adds a -g (or + -even -g3) option, --enable-debug=gdb adds a -ggdb3 flag (for GCC); + --enable-optimize adds a bunch of optimization flags; --disable-debug + (or --enable-debug=no) removes any -g flags; --disable-optimize + removes any -O flags; --enable-optimize=auto leaves the optimization + flags untouched. + diff --git a/clients/Tests/All b/clients/Tests/All --- a/clients/Tests/All +++ b/clients/Tests/All @@ -1,4 +1,4 @@ exports -HAVE_FITS&HAVE_GEOM&HAVE_LIBPY&HAVE_LIBR&HAVE_LIDAR&HAVE_NETCDF&HAVE_SAMTOOLS&HAVE_SHP?MAL-signatures +HAVE_FITS&HAVE_GEOM&HAVE_LIBPY2&HAVE_LIBR&HAVE_LIDAR&HAVE_NETCDF&HAVE_SAMTOOLS&HAVE_SHP?MAL-signatures MERCURIAL?malcheck mclient-uri 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 @@ -56,10 +56,9 @@ stdout of test 'MAL-signatures` in direc # MonetDB/Python2 module loaded # MonetDB/R module loaded - -# 14:39:22 > -# 14:39:22 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-23085" "--port=30158" -# 14:39:22 > +# 16:19:19 > +# 16:19:19 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-28001" "--port=38663" +# 16:19:19 > #select * from sys.malfunctions() order by module, "function", address, signature, comment; % .L1, .L1, .L1, .L1, .L1 # table_name @@ -11631,7 +11630,9 @@ stdout of test 'MAL-signatures` in direc [ "sql", "delete", "unsafe pattern sql.delete(mvc:int, sname:str, tname:str, b:any):int ", "mvc_delete_wrap;", "Delete a row from a table. Returns sequence number for order dependece." ] [ "sql", "delta", "command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ", "DELTAbat2;", "Return column bat with delta's applied." ] [ "sql", "delta", "command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] ", "DELTAbat;", "Return column bat with delta's applied." ] -[ "sql", "deltas", "pattern sql.deltas(schema:str, table:str, column:str):bat[:lng] ", "mvc_delta_values;", "Return the delta values sizes of a bat, plus the current transaction level" ] +[ "sql", "deltas", "pattern sql.deltas(schema:str) (ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) ", "mvc_delta_values;", "Return the delta values sizes of all columns of the schema's tables, plus the current transaction level" ] +[ "sql", "deltas", "pattern sql.deltas(schema:str, table:str) (ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) ", "mvc_delta_values;", "Return the delta values sizes from the table's columns, plus the current transaction level" ] +[ "sql", "deltas", "pattern sql.deltas(schema:str, table:str, column:str) (ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) ", "mvc_delta_values;", "Return the delta values sizes of a column, plus the current transaction level" ] [ "sql", "dense_rank", "pattern sql.dense_rank(b:any_1, p:bit, o:bit):int ", "SQLdense_rank;", "return the densely ranked groups" ] [ "sql", "diff", "pattern sql.diff(b:any_1):bit ", "SQLdiff;", "return true if cur != prev row" ] [ "sql", "diff", "pattern sql.diff(p:bit, b:any_1):bit ", "SQLdiff;", "return true if cur != prev row" ] 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 @@ -60,10 +60,9 @@ stdout of test 'MAL-signatures` in direc # MonetDB/Python2 module loaded # MonetDB/R module loaded - -# 16:09:44 > -# 16:09:44 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-1158" "--port=39285" -# 16:09:44 > +# 16:10:29 > +# 16:10:29 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-29643" "--port=32888" +# 16:10:29 > #select * from sys.malfunctions() order by module, "function", address, signature, comment; % .L1, .L1, .L1, .L1, .L1 # table_name @@ -16045,7 +16044,9 @@ stdout of test 'MAL-signatures` in direc [ "sql", "delete", "unsafe pattern sql.delete(mvc:int, sname:str, tname:str, b:any):int ", "mvc_delete_wrap;", "Delete a row from a table. Returns sequence number for order dependece." ] [ "sql", "delta", "command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ", "DELTAbat2;", "Return column bat with delta's applied." ] [ "sql", "delta", "command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] ", "DELTAbat;", "Return column bat with delta's applied." ] -[ "sql", "deltas", "pattern sql.deltas(schema:str, table:str, column:str):bat[:lng] ", "mvc_delta_values;", "Return the delta values sizes of a bat, plus the current transaction level" ] +[ "sql", "deltas", "pattern sql.deltas(schema:str) (ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) ", "mvc_delta_values;", "Return the delta values sizes of all columns of the schema's tables, plus the current transaction level" ] +[ "sql", "deltas", "pattern sql.deltas(schema:str, table:str) (ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) ", "mvc_delta_values;", "Return the delta values sizes from the table's columns, plus the current transaction level" ] +[ "sql", "deltas", "pattern sql.deltas(schema:str, table:str, column:str) (ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) ", "mvc_delta_values;", "Return the delta values sizes of a column, plus the current transaction level" ] [ "sql", "dense_rank", "pattern sql.dense_rank(b:any_1, p:bit, o:bit):int ", "SQLdense_rank;", "return the densely ranked groups" ] [ "sql", "diff", "pattern sql.diff(b:any_1):bit ", "SQLdiff;", "return true if cur != prev row" ] [ "sql", "diff", "pattern sql.diff(p:bit, b:any_1):bit ", "SQLdiff;", "return true if cur != prev row" ] 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 @@ -274,7 +274,6 @@ int GDKnr_threads; void GDKprepareExit(void); void GDKqsort(void *restrict h, void *restrict t, const void *restrict base, size_t n, int hs, int ts, int tpe, bool reverse, bool nilslast); void *GDKrealloc(void *pold, size_t size) __attribute__((__alloc_size__(2))) __attribute__((__warn_unused_result__)); -void GDKregister(MT_Id pid); gdk_return GDKreleasemmap(void *ptr, size_t size, size_t id); gdk_return GDKreleasesem(int sem_id); void GDKreset(int status); diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -1512,25 +1512,26 @@ SQLrenderer(MapiHdl hdl) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list