Changeset: 5acf68095531 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5acf68095531 Added Files: clients/odbc/driver/ODBCQueries.h common/utils/ChangeLog.Mar2018 monetdb5/modules/mal/Tests/remote13.stable.err monetdb5/modules/mal/Tests/remote13.stable.out sql/test/BugTracker-2018/Tests/aggr-in-case.Bug-6526.stable.err sql/test/BugTracker-2018/Tests/aggr-in-case.Bug-6526.stable.out sql/test/BugTracker-2018/Tests/aggr-in-case.Bug-6526.stable.out.int128 sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.sql sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.stable.err sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.stable.out sql/test/BugTracker-2018/Tests/ilike.Bug-6547.sql sql/test/BugTracker-2018/Tests/ilike.Bug-6547.stable.err sql/test/BugTracker-2018/Tests/ilike.Bug-6547.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-case-coalesce.Bug-6550.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-case-coalesce.Bug-6550.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-case-coalesce.Bug-6550.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-coalesce-division-by-zero.Bug-6556.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-extra-columns.Bug-6555.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-extra-columns.Bug-6555.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-extra-columns.Bug-6555.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case.Bug-6552.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case.Bug-6552.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case.Bug-6552.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-not-in.Bug-6553.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-not-in.Bug-6553.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-not-in.Bug-6553.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-in-cast-null.Bug-6529.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-in-cast-null.Bug-6529.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-in-query.Bug-6545.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-in-query.Bug-6545.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-in-query.Bug-6545.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-in-with-division.Bug-6546.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-in-with-division.Bug-6546.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-in-with-division.Bug-6546.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-nested-case.Bug-6554.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-nested-case.Bug-6554.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-nested-case.Bug-6554.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-not-in-wrong-results.Bug-6530.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-not-in-wrong-results.Bug-6530.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-cast-null.Bug-6551.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-cast-null.Bug-6551.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-cast-null.Bug-6551.stable.out sql/test/BugTracker-2018/Tests/truncate_add_user.sql sql/test/BugTracker-2018/Tests/truncate_add_user.stable.err sql/test/BugTracker-2018/Tests/truncate_add_user.stable.out sql/test/BugTracker-2018/Tests/truncate_bam_tables.Bug-6543.reqtests sql/test/BugTracker-2018/Tests/truncate_bam_tables.Bug-6543.sql sql/test/BugTracker-2018/Tests/truncate_bam_tables.Bug-6543.stable.err sql/test/BugTracker-2018/Tests/truncate_bam_tables.Bug-6543.stable.out sql/test/BugTracker-2018/Tests/truncate_empty_table.Bug-6544.sql sql/test/BugTracker-2018/Tests/truncate_empty_table.Bug-6544.stable.err sql/test/BugTracker-2018/Tests/truncate_empty_table.Bug-6544.stable.out sql/test/BugTracker-2018/Tests/truncate_remove_user.sql sql/test/BugTracker-2018/Tests/truncate_remove_user.stable.err sql/test/BugTracker-2018/Tests/truncate_remove_user.stable.out sql/test/BugTracker-2018/Tests/truncate_sys_netcdf_tables.Bug-6543.reqtests sql/test/BugTracker-2018/Tests/truncate_sys_netcdf_tables.Bug-6543.sql sql/test/BugTracker-2018/Tests/truncate_sys_netcdf_tables.Bug-6543.stable.err sql/test/BugTracker-2018/Tests/truncate_sys_netcdf_tables.Bug-6543.stable.out sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.reqtests sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.sql sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.stable.err sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.stable.out sql/test/BugTracker/Tests/mapi_connect_errors_vanish.SF-1432134.sql sql/test/Dump/Tests/dump-empty.sql sql/test/Users/Tests/grantAndRevokeUserLoggedIN.Bug-3476.SQL.py sql/test/Users/Tests/grantAndRevokeUserLoggedIN.Bug-3476.stable.err sql/test/Users/Tests/grantAndRevokeUserLoggedIN.Bug-3476.stable.out sql/test/emptydb-upgrade-chain-hge/Tests/dump.sql sql/test/emptydb-upgrade-chain/Tests/dump.sql sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.int128 sql/test/emptydb-upgrade-hge/Tests/dump.sql sql/test/emptydb-upgrade/Tests/dump.sql sql/test/emptydb/Tests/dump.sql sql/test/group-concat/Tests/All sql/test/group-concat/Tests/groupconcat01.sql sql/test/group-concat/Tests/groupconcat01.stable.err sql/test/group-concat/Tests/groupconcat01.stable.out sql/test/group-concat/Tests/groupconcat02.sql sql/test/group-concat/Tests/groupconcat02.stable.err sql/test/group-concat/Tests/groupconcat02.stable.out sql/test/group-concat/Tests/groupconcat03.sql sql/test/group-concat/Tests/groupconcat03.stable.err sql/test/group-concat/Tests/groupconcat03.stable.out sql/test/group-concat/Tests/groupconcat04.sql sql/test/group-concat/Tests/groupconcat04.stable.err sql/test/group-concat/Tests/groupconcat04.stable.out sql/test/group-concat/Tests/groupconcat05.sql sql/test/group-concat/Tests/groupconcat05.stable.err sql/test/group-concat/Tests/groupconcat05.stable.out sql/test/testdb-upgrade-chain-hge/Tests/dump.sql sql/test/testdb-upgrade-chain/Tests/dump.sql sql/test/testdb-upgrade-hge/Tests/dump.sql sql/test/testdb-upgrade/Tests/dump.sql sql/test/testdb/Tests/testdb-dump.sql sql/type.txt Removed Files: sql/scripts/97_comments.sql sql/test/BugTracker-2016/Tests/storagemodel.stable.out.Darwin sql/test/BugTracker-2016/Tests/storagemodel.stable.out.FreeBSD sql/test/BugTracker-2016/Tests/storagemodel.stable.out.Windows sql/test/BugTracker/Tests/mapi_connect_errors_vanish.SF-1432134.SQL.py sql/test/Dump/Tests/dump-empty.SQL.py sql/test/Users/Tests/grantAndRevokeUserLogedIN.Bug-3476.SQL.py sql/test/Users/Tests/grantAndRevokeUserLogedIN.Bug-3476.stable.err sql/test/Users/Tests/grantAndRevokeUserLogedIN.Bug-3476.stable.out sql/test/emptydb-upgrade-chain-hge/Tests/dump.SQL.py sql/test/emptydb-upgrade-chain/Tests/dump.SQL.py sql/test/emptydb-upgrade-hge/Tests/dump.SQL.py sql/test/emptydb-upgrade/Tests/dump.SQL.py sql/test/emptydb/Tests/dump.SQL.py sql/test/testdb-upgrade-chain-hge/Tests/dump.SQL.py.src sql/test/testdb-upgrade-chain/Tests/dump.SQL.py.src sql/test/testdb-upgrade-hge/Tests/dump.SQL.py.src sql/test/testdb-upgrade/Tests/dump.SQL.py.src sql/test/testdb/Tests/testdb-dump.SQL.py testing/trace.py Modified Files: ChangeLog.Mar2018 NT/makelibdef.py NT/mkgeomwxs.py NT/mkodbcwxs.py NT/mksqlwxs.py NT/rules.msc buildtools/autogen/autogen.py buildtools/autogen/autogen/am.py buildtools/autogen/autogen/codegen.py buildtools/autogen/autogen/msc.py buildtools/conf/fixlicense.py clients/ChangeLog.Mar2018 clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/examples/python/basics.py clients/examples/python/mclient-python2.py clients/examples/python/sqlsample.py clients/mapiclient/dotfile.py clients/mapiclient/dump.c clients/mapiclient/mclient.c clients/mapiclient/mhelp.c clients/mapiclient/mnc.c clients/mapiclient/stethoscope.c clients/mapiclient/tachograph.c clients/mapiclient/tomograph.c clients/mapilib/ChangeLog.Mar2018 clients/mapilib/mapi.c clients/mapilib/mapi.h clients/odbc/driver/Makefile.ag clients/odbc/driver/ODBCDbc.c clients/odbc/driver/ODBCDbc.h clients/odbc/driver/SQLColumnPrivileges.c clients/odbc/driver/SQLColumns.c clients/odbc/driver/SQLConnect.c clients/odbc/driver/SQLDisconnect.c clients/odbc/driver/SQLGetFunctions.c clients/odbc/driver/SQLGetInfo.c clients/odbc/driver/SQLProcedureColumns.c clients/odbc/driver/SQLProcedures.c clients/odbc/driver/SQLSpecialColumns.c clients/odbc/driver/SQLTablePrivileges.c clients/odbc/driver/SQLTables.c clients/odbc/setup/drvcfg.h common/utils/mcrypt.c common/utils/mcrypt.h configure.ag gdk/ChangeLog.Mar2018 gdk/gdk.h gdk/gdk_aggr.c gdk/gdk_align.c gdk/gdk_atomic.h gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c gdk/gdk_calc.h gdk/gdk_heap.c gdk/gdk_join.c gdk/gdk_logger.c gdk/gdk_private.h gdk/gdk_project.c gdk/gdk_qsort.c gdk/gdk_select.c gdk/gdk_ssort_impl.h gdk/gdk_storage.c gdk/gdk_system.c gdk/gdk_utils.c geom/monetdb5/Makefile.ag geom/monetdb5/geom.c monetdb5/ChangeLog.Mar2018 monetdb5/extras/mal_optimizer_template/Makefile.ag monetdb5/extras/rapi/Makefile.ag monetdb5/mal/mal_builder.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_linker.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_readline.c monetdb5/modules/atoms/url.c monetdb5/modules/kernel/aggr.c monetdb5/modules/kernel/aggr.mal monetdb5/modules/kernel/aggr.mal.sh monetdb5/modules/kernel/bat5.c monetdb5/modules/mal/01_calc.mal monetdb5/modules/mal/01_calc.mal.sh monetdb5/modules/mal/bbp.c monetdb5/modules/mal/calc.c monetdb5/modules/mal/clients.c monetdb5/modules/mal/inspect.c monetdb5/modules/mal/mal_io.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/manifold.c monetdb5/modules/mal/mdb.c monetdb5/modules/mal/mkey.c monetdb5/modules/mal/pcre.c monetdb5/modules/mal/tablet.c monetdb5/optimizer/opt_candidates.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_pipes.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_projectionpath.c monetdb5/optimizer/opt_pushselect.c monetdb5/optimizer/opt_wlc.c monetdb5/scheduler/run_adder.c sql/ChangeLog sql/ChangeLog.Mar2018 sql/backends/monet5/LSST/Makefile.ag sql/backends/monet5/Makefile.ag sql/backends/monet5/UDF/capi/Makefile.ag sql/backends/monet5/UDF/capi/capi.c sql/backends/monet5/UDF/pyapi/Makefile.ag sql/backends/monet5/UDF/pyapi/connection.c sql/backends/monet5/UDF/pyapi/emit.c sql/backends/monet5/UDF/pyapi/pyapi.c sql/backends/monet5/UDF/pyapi/pyapi.h sql/backends/monet5/UDF/pyapi3/Makefile.ag sql/backends/monet5/UDF/udf/Makefile.ag sql/backends/monet5/generator/Makefile.ag 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_cat.h sql/backends/monet5/sql_fround_impl.h sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_optimizer.c sql/backends/monet5/sql_optimizer.h sql/backends/monet5/sql_result.c sql/backends/monet5/sql_round_impl.h sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_upgrades.c sql/backends/monet5/sql_user.c sql/backends/monet5/sqlcatalog.mal sql/backends/monet5/vaults/Makefile.ag sql/backends/monet5/vaults/bam/85_bam.sql sql/backends/monet5/vaults/bam/Makefile.ag sql/backends/monet5/vaults/fits/Makefile.ag sql/backends/monet5/vaults/lidar/Makefile.ag sql/backends/monet5/vaults/netcdf/74_netcdf.sql sql/backends/monet5/vaults/netcdf/Makefile.ag sql/backends/monet5/vaults/shp/Makefile.ag sql/backends/monet5/vaults/shp/shp.c sql/backends/monet5/vaults/vault.c sql/benchmarks/hist-uva/ground/create.py sql/common/sql_keyword.c sql/common/sql_types.c sql/include/sql_relation.h sql/scripts/21_dependency_views.sql sql/scripts/51_sys_schema_extension.sql sql/scripts/99_system.sql sql/scripts/Makefile.ag sql/server/rel_exp.c sql/server/rel_exp.h sql/server/rel_optimizer.c sql/server/rel_schema.c sql/server/rel_select.c sql/server/rel_updates.c sql/server/sql_mvc.c sql/server/sql_mvc.h sql/server/sql_parser.y sql/server/sql_privileges.c sql/server/sql_scan.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_table.c sql/storage/bat/bat_utils.c sql/storage/store.c sql/test/BugTracker-2009/Tests/parallel_bulk-load.SF-2771052.unpack_csv.py sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.py sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.py sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out sql/test/BugTracker-2014/Tests/acidity-fail.Bug-3635.py sql/test/BugTracker-2014/Tests/copy-into.Bug-3481.SQL.py sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out sql/test/BugTracker-2014/Tests/python-microseconds.Bug-3439.SQL.py sql/test/BugTracker-2014/Tests/utf8bom.Bug-3436.SQL.py sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.SQL.py sql/test/BugTracker-2015/Tests/null.Bug-3833.stable.out sql/test/BugTracker-2015/Tests/schemadiff.Bug-3778.SQL.py sql/test/BugTracker-2016/Tests/null_in_null.Bug-3900.stable.out sql/test/BugTracker-2016/Tests/storagemodel.sql sql/test/BugTracker-2016/Tests/storagemodel.stable.out sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out.FreeBSD sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out.Windows sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out sql/test/BugTracker-2017/Tests/python_loader_clobbers_default_with_null.Bug-6464.stable.err sql/test/BugTracker-2018/Tests/All sql/test/BugTracker/Tests/All sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/BugTracker/Tests/python_escape.SF-1916844.SQL.py sql/test/Dependencies/Tests/Dependencies.stable.out sql/test/Dependencies/Tests/Dependencies.stable.out.int128 sql/test/Dependencies/Tests/dependency_loop.stable.out sql/test/Dependencies/Tests/dependency_loop.stable.out.int128 sql/test/FeatureRequests/Tests/All sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.sql sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.sql sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-prologue.stable.out sql/test/Tests/comment-auth.stable.err sql/test/Tests/comment-auth.stable.out sql/test/Tests/comment-on.stable.out sql/test/Tests/keys.stable.out sql/test/Tests/systemfunctions.stable.out sql/test/Tests/systemfunctions.stable.out.int128 sql/test/Users/Tests/All sql/test/concurrent/Tests/crash_on_concurrent_use.SF-1411926.SQL.py sql/test/concurrent/Tests/simple_select.SQL.py sql/test/emptydb-upgrade-chain-hge/Tests/All sql/test/emptydb-upgrade-chain-hge/Tests/package.py sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64 sql/test/emptydb-upgrade-chain/Tests/All sql/test/emptydb-upgrade-chain/Tests/package.py 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 sql/test/emptydb-upgrade-hge/Tests/All sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/All 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/All sql/test/emptydb/Tests/check.SQL.py 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/emptydb/Tests/package-hge.py sql/test/emptydb/Tests/package.py sql/test/malloc_fail/Tests/mallocs.SQL.py sql/test/mapi/Tests/python_dec38.py sql/test/mapi/Tests/python_int128.py sql/test/mapi/Tests/utf8test.SQL.py sql/test/mapi/Tests/utf8test.stable.out sql/test/mergetables/Tests/alter.stable.err sql/test/remote/Tests/ssbm.SQL.py sql/test/testdb-upgrade-chain-hge/Tests/package.py sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain/Tests/package.py 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 sql/test/testdb/Tests/testdb-package-hge.py sql/test/testdb/Tests/testdb-package.py sql/test/wlcr/Tests/wlc01.py sql/test/wlcr/Tests/wlc100.py sql/test/wlcr/Tests/wlc20.py sql/test/wlcr/Tests/wlc21.py sql/test/wlcr/Tests/wlc30.py sql/test/wlcr/Tests/wlc40.py sql/test/wlcr/Tests/wlc50.py sql/test/wlcr/Tests/wlc70.py sql/test/wlcr/Tests/wlcr00.py sql/test/wlcr/Tests/wlr01.py sql/test/wlcr/Tests/wlr100.py sql/test/wlcr/Tests/wlr20.py sql/test/wlcr/Tests/wlr30.py sql/test/wlcr/Tests/wlr40.py sql/test/wlcr/Tests/wlr50.py sql/test/wlcr/Tests/wlr70.py testing/Makefile.ag testing/Mfilter.py testing/Mtest.py.in testing/README testing/malcheck.py tools/merovingian/daemon/client.c tools/merovingian/daemon/connections.c tools/mserver/mserver5.c Branch: merge-partitions Log Message:
Merge with default diffs (truncated from 43280 to 300 lines): diff --git a/ChangeLog.Mar2018 b/ChangeLog.Mar2018 --- a/ChangeLog.Mar2018 +++ b/ChangeLog.Mar2018 @@ -2,9 +2,9 @@ # This file is updated with Maddlog * Wed Feb 14 2018 Stefan Manegold <stefan.maneg...@cwi.nl> -- mclient's executing time profiling options and output format have +- mclient's execution time profiling options and output format have been changed. Instead of implicitly via the "--interactive"/"-i" - option (or when using and interactive mclient console), execution time + option (or when using an interactive mclient console), execution time profiling is now controlled via an explicit "--timer=timermode"/"-t timermode" command-line option, or a "\t timermode" command in the interactive mclient console. The default (also in the interactive @@ -25,7 +25,7 @@ only the total wall-clock time per batch is measured and reported. The server-measured detailed performance timings "sql", "opt", "run" are always measured and reported per query. Also, all timing information - is now given on a separate line and set to stderr rather than stdout. + is now given on a separate line and sent to stderr rather than stdout. * Fri Feb 9 2018 Sjoerd Mullender <sjo...@acm.org> - Some types and constants were moved from configure (and hence diff --git a/NT/makelibdef.py b/NT/makelibdef.py --- a/NT/makelibdef.py +++ b/NT/makelibdef.py @@ -1,8 +1,10 @@ +from __future__ import print_function + import fileinput, re p = re.compile('^\s*\d+\s+[0-9A-F]+\s+[0-9A-F]+\s+(\w+)') -print 'LIBRARY R' -print 'EXPORTS' +print('LIBRARY R') +print('EXPORTS') for line in fileinput.input(): - m = p.match(line); - if (m): - print m.group(1); + m = p.match(line) + if m: + print(m.group(1)) diff --git a/NT/mkgeomwxs.py b/NT/mkgeomwxs.py --- a/NT/mkgeomwxs.py +++ b/NT/mkgeomwxs.py @@ -1,3 +1,5 @@ +from __future__ import print_function + # python mkgeomwxs.py VERSION makedefs.txt PREFIX > PREFIX/MonetDB5-Geom-Installer.wxs # "c:\Program Files (x86)\WiX Toolset v3.10\bin\candle.exe" -nologo -arch x64/x86 PREFIX/MonetDB5-Geom-Installer.wxs # "c:\Program Files (x86)\WiX Toolset v3.10\bin\light.exe" -nologo -sice:ICE03 -sice:ICE60 -sice:ICE82 -ext WixUIExtension PREFIX/MonetDB5-Geom-Installer.wixobj diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py --- a/NT/mkodbcwxs.py +++ b/NT/mkodbcwxs.py @@ -1,3 +1,5 @@ +from __future__ import print_function + # python mkodbcwxs.py VERSION makedefs.txt PREFIX > PREFIX/MonetDB-ODBC-Installer.wxs # "c:\Program Files (x86)\WiX Toolset v3.10\bin\candle.exe" -nologo -arch x64/x86 PREFIX/MonetDB-ODBC-Installer.wxs # "c:\Program Files (x86)\WiX Toolset v3.10\bin\light.exe" -nologo -sice:ICE03 -sice:ICE60 -sice:ICE82 -ext WixUIExtension PREFIX/MonetDB-ODBC-Installer.wixobj diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py --- a/NT/mksqlwxs.py +++ b/NT/mksqlwxs.py @@ -1,3 +1,5 @@ +from __future__ import print_function + # python mksqlwxs.py VERSION makedefs.txt PREFIX > PREFIX/MonetDB5-SQL-Installer.wxs # "c:\Program Files (x86)\WiX Toolset v3.10\bin\candle.exe" -nologo -arch x64/x86 PREFIX/MonetDB5-SQL-Installer.wxs # "c:\Program Files (x86)\WiX Toolset v3.10\bin\light.exe" -nologo -sice:ICE03 -sice:ICE60 -sice:ICE82 -ext WixUIExtension PREFIX/MonetDB5-SQL-Installer.wixobj diff --git a/NT/rules.msc b/NT/rules.msc --- a/NT/rules.msc +++ b/NT/rules.msc @@ -85,6 +85,14 @@ PYTHON3LIB=python32.lib !ENDIF PYTHON3_LIBDIR=share\MonetDB\python3 +!IFDEF PYTHON2BASE +PYTHON_LIBDIR=$(PYTHON2_LIBDIR) +!ELSE +!IFDEF PYTHON3BASE +PYTHON_LIBDIR=$(PYTHON3_LIBDIR) +!ENDIF +!ENDIF + !IFDEF HAVE_PCRE # This is the location of the PCRE library !IFNDEF LIBPCRE @@ -440,6 +448,7 @@ CONFIGURE=$(PYTHON) $(CONFIGURE_PY) \ "LIBZLIB=$(LIBZLIB)" \ "PACKAGE=$(pkg)" \ "PYTHON=$(PYTHON)" \ + "PYTHON_LIBDIR=$(PYTHON_LIBDIR)" \ "PYTHON2=$(PYTHON2)" \ "PYTHON2_LIBDIR=$(PYTHON2_LIBDIR)" \ "PYTHON3=$(PYTHON3)" \ diff --git a/buildtools/autogen/autogen.py b/buildtools/autogen/autogen.py --- a/buildtools/autogen/autogen.py +++ b/buildtools/autogen/autogen.py @@ -6,6 +6,8 @@ # # Copyright 1997 - July 2008 CWI, August 2008 - 2018 MonetDB B.V. +from __future__ import print_function + # # autogen scans the makefile.ag # and generates both the makefile.am and makefile.msc diff --git a/buildtools/autogen/autogen/am.py b/buildtools/autogen/autogen/am.py --- a/buildtools/autogen/autogen/am.py +++ b/buildtools/autogen/autogen/am.py @@ -4,6 +4,8 @@ # # Copyright 1997 - July 2008 CWI, August 2008 - 2018 MonetDB B.V. +from __future__ import print_function + import os import posixpath import sys diff --git a/buildtools/autogen/autogen/codegen.py b/buildtools/autogen/autogen/codegen.py --- a/buildtools/autogen/autogen/codegen.py +++ b/buildtools/autogen/autogen/codegen.py @@ -4,6 +4,8 @@ # # Copyright 1997 - July 2008 CWI, August 2008 - 2018 MonetDB B.V. +from __future__ import print_function + import string import re import fileinput @@ -138,13 +140,29 @@ def find_org(deps,f): buildincsfiles = {} installincsfiles = {} +# replacement for os.path.join which also normalizes the resultant +# path, keeping Make variables in place +def normpathjoin(a, *p): + f = os.path.join(a, *p) + parts = re.split(r'(\$(?:[^()]|\([^()]*\)))', f) + for i in range(len(parts)): + prt = parts[i] + if prt and prt != os.sep and not prt.startswith('$'): + s, e = 0, len(prt) + if prt.startswith(os.sep): + s += len(os.sep) + if prt.endswith(os.sep): + e -= len(os.sep) + parts[i] = prt[:s] + os.path.normpath(prt[s:e]) + prt[e:] + return ''.join(parts) + def do_deps(targets,deps,includes,incmap,cwd,incdirsmap): basename = os.path.basename(cwd) incs = {} do_scan(targets,deps,incmap,cwd,incs) do_dep_combine(deps,includes,cwd,incs) - normcwd = os.path.normpath(cwd) + normcwd = normpathjoin(cwd) buildincs = buildincsfiles[normcwd] = {} for k,vals in incs.items(): buildincs[k] = vals @@ -156,7 +174,7 @@ def do_deps(targets,deps,includes,incmap if os.path.isabs(i): nvals.append(i) else: - inc = os.path.normpath(os.path.join(cwd,i)) + inc = normpathjoin(cwd,i) mlen = 0 subsrc = '' subins = '' @@ -203,7 +221,7 @@ def do_scan_target(target,targets,deps,i if target not in incs: inc_files = [] if ext in scan_map: - org = os.path.join(cwd,find_org(deps,target)) + org = normpathjoin(cwd,find_org(deps,target)) if os.path.exists(org): b = readfilepart(org,ext) pat,sep,incext = scan_map[ext] @@ -214,29 +232,29 @@ def do_scan_target(target,targets,deps,i ressep = sep.search(b, p, e) while ressep is not None: n = ressep.start(0) - fnd1 = b[p:n] + fnd1 = b[p:n] + incext p = ressep.end(0) # start of next file - if fnd1+incext in deps or fnd1+incext in targets: - if fnd1+incext not in inc_files: - inc_files.append(fnd1+incext) - elif fnd1+incext in incmap: - if fnd1+incext not in inc_files: - inc_files.append(os.path.join(incmap[fnd1+incext],fnd1+incext)) + if fnd1 in deps or fnd1 in targets: + if fnd1 not in inc_files: + inc_files.append(fnd1) + elif fnd1 in incmap: + if fnd1 not in inc_files: + inc_files.append(normpathjoin(incmap[fnd1],fnd1)) ressep = sep.search(b,p,e) - fnd = b[p:e] - if fnd+incext in deps or fnd+incext in targets: - if fnd+incext not in inc_files: - inc_files.append(fnd+incext) - elif fnd+incext in incmap: - if fnd+incext not in inc_files: - inc_files.append(os.path.join(incmap[fnd+incext],fnd+incext)) - elif os.path.exists(os.path.join(cwd, fnd+incext)): - if fnd+incext not in inc_files: - inc_files.append(fnd+incext) - if fnd+incext not in incs: - incs[fnd+incext] = [] + fnd = b[p:e] + incext + if fnd in deps or fnd in targets: + if fnd not in inc_files: + inc_files.append(fnd) + elif fnd in incmap: + if fnd not in inc_files: + inc_files.append(normpathjoin(incmap[fnd],fnd)) + elif os.path.exists(os.path.join(cwd, fnd)): + if fnd not in inc_files: + inc_files.append(fnd) + if fnd not in incs: + incs[fnd] = [] ## else: -## print fnd + incext + " not in deps or incmap" +## print(fnd + " not in deps or incmap") res = pat.search(b,res.end(0)) incs[target] = inc_files @@ -274,7 +292,7 @@ def expand_incdir(i,topdir): if i.find(os.sep) >= 0: d,rest = i.split(os.sep, 1) if d == "top_srcdir" or d == "top_builddir": - dir = os.path.join(topdir, rest) + dir = normpathjoin(topdir, rest) elif d == "srcdir" or d == "builddir": dir = rest return dir @@ -314,7 +332,7 @@ def collect_includes(incdirs, cwd, topdi for dir,org in dirs: if dir.startswith('$'): continue - dir = os.path.normpath(os.path.join(cwd, dir)) + dir = normpathjoin(cwd, dir) if dir in buildincsfiles: incs = buildincsfiles[dir] elif dir in installincsfiles: @@ -327,14 +345,14 @@ def collect_includes(incdirs, cwd, topdi incfiles = [] for inc in incs[file]: if not os.path.isabs(inc) and inc[0] != '$': - inc = os.path.join(org,inc) + inc = normpathjoin(org,inc) incfiles.append(inc) - includes[os.path.join(org,file)] = incfiles + includes[normpathjoin(org,file)] = incfiles incmap[file] = org else: if os.path.exists(dir): for inc in os.listdir(dir): - includes[os.path.join(org,inc)] = [ os.path.join(org,inc) ] + includes[normpathjoin(org,inc)] = [ normpathjoin(org,inc) ] incmap[inc] = org return includes,incmap diff --git a/buildtools/autogen/autogen/msc.py b/buildtools/autogen/autogen/msc.py --- a/buildtools/autogen/autogen/msc.py +++ b/buildtools/autogen/autogen/msc.py @@ -4,6 +4,8 @@ # # Copyright 1997 - July 2008 CWI, August 2008 - 2018 MonetDB B.V. +from __future__ import print_function + import string import os import re diff --git a/buildtools/conf/fixlicense.py b/buildtools/conf/fixlicense.py --- a/buildtools/conf/fixlicense.py +++ b/buildtools/conf/fixlicense.py @@ -6,6 +6,8 @@ # # Copyright 1997 - July 2008 CWI, August 2008 - 2018 MonetDB B.V. +from __future__ import print_function + import os, sys, getopt, stat usage = '''\ @@ -41,7 +43,7 @@ def main(): opts, args = getopt.getopt(sys.argv[1:], 'arl:sv', ['pre=', 'post=', 'start=', 'end=']) except getopt.GetoptError: - print >> sys.stderr, usage % {'prog': sys.argv[0]} + print(usage % {'prog': sys.argv[0]}, file=sys.stderr) sys.exit(1) for o, a in opts: if o == '-a': _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list