Changeset: fe4b06b4e3cc for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fe4b06b4e3cc Added Files: clients/odbc/ChangeLog.Jun2020 sql/test/analytics/Tests/analytics18.sql sql/test/analytics/Tests/analytics18.stable.err sql/test/analytics/Tests/analytics18.stable.out Modified Files: ChangeLog.Jun2020 MonetDB.spec NT/Makefile NT/rules.msc NT/winconfig.py buildtools/autogen/autogen/am.py buildtools/autogen/autogen/msc.py buildtools/conf/monetdbd.conf buildtools/selinux/monetdb.fc buildtools/selinux/monetdb.te clients/ChangeLog.Jun2020 clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapilib/mapi.c clients/odbc/driver/ODBCUtil.c clients/odbc/driver/SQLColumnPrivileges.c clients/odbc/driver/SQLColumns.c clients/odbc/driver/SQLForeignKeys.c clients/odbc/driver/SQLPrepare.c clients/odbc/driver/SQLPrimaryKeys.c clients/odbc/driver/SQLProcedureColumns.c clients/odbc/driver/SQLProcedures.c clients/odbc/driver/SQLSpecialColumns.c clients/odbc/driver/SQLStatistics.c clients/odbc/driver/SQLTablePrivileges.c clients/odbc/driver/SQLTables.c common/stream/stream.h common/utils/mcrypt.c common/utils/mcrypt.h common/utils/mstring.h configure.ag debian/changelog debian/control debian/monetdb5-server.dirs debian/monetdb5-server.postinst debian/monetdb5-sql.install debian/monetdb5-sql.postinst gdk/ChangeLog.Jun2020 gdk/gdk.h gdk/gdk_bat.c gdk/gdk_bbp.c gdk/gdk_calc.c gdk/gdk_hash.c gdk/gdk_imprints.c gdk/gdk_orderidx.c gdk/gdk_storage.c gdk/gdk_system.c gdk/gdk_system.h gdk/gdk_tracer.c gdk/gdk_tracer.h gdk/gdk_utils.c monetdb5/ChangeLog.Jun2020 monetdb5/mal/mal_authorize.c monetdb5/mal/mal_client.c monetdb5/mal/mal_dataflow.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_runtime.c monetdb5/modules/atoms/json.c monetdb5/modules/atoms/mtime.c monetdb5/modules/atoms/mtime.mal monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/mdb.c monetdb5/modules/mal/querylog.c monetdb5/modules/mal/tablet.c monetdb5/optimizer/opt_mitosis.c monetdb5/optimizer/opt_support.c rpm.mk.in sql/ChangeLog.Jun2020 sql/backends/monet5/mal_backend.c sql/backends/monet5/sql.c sql/backends/monet5/sql.mal sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_orderidx.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_session.mal sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_statistics.c sql/backends/monet5/sql_transaction.mal sql/backends/monet5/sql_upgrades.c sql/backends/monet5/sql_upgrades.h sql/common/sql_types.c sql/include/sql_relation.h sql/scripts/25_debug.sql sql/scripts/51_sys_schema_extension.sql sql/scripts/58_hot_snapshot.sql sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_exp.h sql/server/rel_optimizer.c sql/server/rel_partition.c sql/server/rel_propagate.c sql/server/rel_psm.c sql/server/rel_rel.c sql/server/rel_schema.c sql/server/rel_select.c sql/server/rel_select.h sql/server/rel_sequence.c sql/server/rel_unnest.c sql/server/rel_updates.c sql/server/rel_updates.h sql/server/sql_atom.c sql/server/sql_parser.y sql/server/sql_partition.c sql/server/sql_query.c sql/server/sql_scan.c sql/server/sql_semantic.c sql/server/sql_tokens.h sql/storage/bat/bat_storage.c sql/storage/sql_storage.h sql/storage/store.c sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out sql/test/BugTracker-2015/Tests/project_rewrite.Bug-3693.sql sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.sql sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out sql/test/BugTracker-2017/Tests/groupby_assertion.Bug-6338.stable.err sql/test/Tests/hot-snapshot.py sql/test/VOC/Tests/median.Bug-3096.stable.out sql/test/analytics/Tests/All sql/test/bugs/Tests/default_with_cast.SF-1334486.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 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.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/json/Tests/All sql/test/json/Tests/jsonvalidity.Bug-3753.sql sql/test/json/Tests/jsonvalidity.Bug-3753.stable.out sql/test/mergetables/Tests/sqlsmith-exists.stable.out sql/test/miscellaneous/Tests/simple_selects.sql sql/test/miscellaneous/Tests/simple_selects.stable.err sql/test/pg_regress/Tests/date.stable.out sql/test/sample/Tests/sample.15.stable.out sql/test/subquery/Tests/subquery5.sql sql/test/subquery/Tests/subquery5.stable.err sql/test/subquery/Tests/subquery5.stable.out 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 sql/test/testdb/Tests/dump-nogeom.stable.out testing/Mtest.py.in tools/merovingian/ChangeLog.Jun2020 tools/merovingian/daemon/argvcmds.c tools/merovingian/daemon/forkmserver.c tools/merovingian/utils/control.c Branch: unlock Log Message:
merged with default diffs (truncated from 39610 to 300 lines): diff --git a/ChangeLog.Jun2020 b/ChangeLog.Jun2020 --- a/ChangeLog.Jun2020 +++ b/ChangeLog.Jun2020 @@ -1,12 +1,18 @@ # ChangeLog file for devel # This file is updated with Maddlog -* Tue Feb 18 2020 Thodoris Zois <[email protected]> -- Added mserver5 option (--dbtrace=<path>) in order to be able to - specify the output directory of the produced traces. - -* Thu Feb 6 2020 Panagiotis Koutsourakis <[email protected]> -- Add port and host as fields in the .monetdb file. +* Mon Apr 20 2020 Sjoerd Mullender <[email protected]> +- A new system to deal with debug output has been implemented. There is + now an option --dbtrace to mserver5 that takes a file argument to which + debug output is written. The default value is the file mdbtrace.log + inside the database directory. This option can also be set through + the monetdb program. +- The home directory of the automatically created monetdb user was + changed from /var/MonetDB to /var/lib/monetdb (RPM based systems + only). This home directory is (currently) not used for anything, + though. +- Python 2 support has been removed. There is now only support for + using Python 3. * Thu Jan 30 2020 Sjoerd Mullender <[email protected]> - Removed support for bam and sam files. @@ -16,24 +22,3 @@ database property (raw_strings=yes|no) to control interpretation of strings. -* Fri Nov 29 2019 Panagiotis Koutsourakis <[email protected]> -- Added support for raw strings using the syntax r'' or R''. This means - that C-like escapes will remain uninterpreted within those strings. For - instance SELECT r'\"' returns a string of length two. The user needs - to escape single quotes by doubling them: SELECT r''''. - -* Fri Oct 25 2019 Joeri van Ruth <[email protected]> -- Added SQL function sys.hot_snapshot() which can be used to write - a snapshot of the database to a tar file. For example, - sys.hot_snapshot('/tmp/snapshot.tar'). If compression support is - compiled in, snapshots can also be compressed ('/tmp/snapshot.tar.gz'). - The tar file expands to a single directory with the same name as the - database that was snapshotted. This directory can be passed directly - as the --dbpath argument of mserver5 or it can be copied into an - existing dbfarm and started from monetdbd. - -* Sat Oct 12 2019 Martin Kersten <[email protected]> -- The MAL profiler now assigns the SQL TRACE output to the client record - thereby avoiding the interaction with other queries, but loosing - insight of competing queries. The stethoscope should be used for that. - diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -107,11 +107,14 @@ URL: https://www.monetdb.org/ BugURL: https://bugs.monetdb.org/ Source: https://www.monetdb.org/downloads/sources/Nov2019-SP3/%{name}-%{version}.tar.bz2 -# we need systemd for the _unitdir macro to exist -# we need checkpolicy and selinux-policy-devel for the SELinux policy +# The Fedora packaging document says we need systemd-rpm-macros for +# the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7 +# that doesn't exist and we need systemd, so instead we just require +# the macro file that contains the definitions. +# We need checkpolicy and selinux-policy-devel for the SELinux policy. %if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 # RHEL >= 7, and all current Fedora -BuildRequires: systemd +BuildRequires: /usr/lib/rpm/macros.d/macros.systemd BuildRequires: checkpolicy BuildRequires: selinux-policy-devel BuildRequires: hardlink @@ -519,15 +522,27 @@ package if you want to use the MonetDB d to use the SQL front end, you also need %{name}-SQL-server5. %pre -n MonetDB5-server -getent group monetdb >/dev/null || groupadd -r monetdb -getent passwd monetdb >/dev/null || \ - useradd -r -g monetdb -d %{_localstatedir}/MonetDB -s /sbin/nologin \ - -c "MonetDB Server" monetdb +getent group monetdb >/dev/null || groupadd --system monetdb +if getent passwd monetdb >/dev/null; then + case $(getent passwd monetdb | cut -d: -f6) in + %{_localstatedir}/MonetDB) # old value + # change home directory, but not using usermod + # usermod requires there not to be any running processes owned by the user + EDITOR='sed -i "/^monetdb:/s|:%{_localstatedir}/MonetDB:|:%{_localstatedir}/lib/monetdb:|"' + unset VISUAL + export EDITOR + /sbin/vipw > /dev/null + ;; + esac +else + useradd --system --gid monetdb --home-dir %{_localstatedir}/lib/monetdb \ + --shell /sbin/nologin --comment "MonetDB Server" monetdb +fi exit 0 %files -n MonetDB5-server %defattr(-,root,root) -%attr(750,monetdb,monetdb) %dir %{_localstatedir}/MonetDB +%attr(2750,monetdb,monetdb) %dir %{_localstatedir}/lib/monetdb %attr(2770,monetdb,monetdb) %dir %{_localstatedir}/monetdb5 %attr(2770,monetdb,monetdb) %dir %{_localstatedir}/monetdb5/dbfarm %{_bindir}/mserver5 @@ -633,6 +648,11 @@ Recommends: %{name}-SQL-server5-hugeint% %endif Suggests: %{name}-client%{?_isa} = %{version}-%{release} %endif +%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%endif %description SQL-server5 MonetDB is a database management system that is developed from a @@ -643,6 +663,17 @@ accelerators. It also has an SQL front This package contains the SQL front end for MonetDB. If you want to use SQL with MonetDB, you will need to install this package. +%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 +%post SQL-server5 +%systemd_post monetdbd.service + +%preun SQL-server5 +%systemd_preun monetdbd.service + +%postun SQL-server5 +%systemd_postun_with_restart monetdbd.service +%endif + %files SQL-server5 %defattr(-,root,root) %{_bindir}/monetdb @@ -660,6 +691,7 @@ use SQL with MonetDB, you will need to i %exclude %{_prefix}/lib/systemd/system/monetdbd.service %endif %config(noreplace) %attr(664,monetdb,monetdb) %{_localstatedir}/monetdb5/dbfarm/.merovingian_properties +%verify(not mtime) %attr(664,monetdb,monetdb) %{_localstatedir}/monetdb5/dbfarm/.merovingian_lock %config(noreplace) %attr(644,root,root) %{_sysconfdir}/logrotate.d/monetdbd %{_libdir}/monetdb5/autoload/??_sql.mal %{_libdir}/monetdb5/lib_sql.so @@ -910,7 +942,7 @@ mv %{buildroot}%{_sysconfdir}/tmpfiles.d rmdir %{buildroot}%{_sysconfdir}/tmpfiles.d %endif -install -d -m 0750 %{buildroot}%{_localstatedir}/MonetDB +install -d -m 0750 %{buildroot}%{_localstatedir}/lib/monetdb install -d -m 0770 %{buildroot}%{_localstatedir}/monetdb5/dbfarm install -d -m 0775 %{buildroot}%{_localstatedir}/log/monetdb install -d -m 0775 %{buildroot}%{_rundir}/monetdb @@ -5062,20 +5094,20 @@ fi * Fri May 13 2011 Sjoerd Mullender <[email protected]> - 11.3.3-20110517 - gdk: Fixed a bug where large files (> 2GB) didn't always get deleted on -Windows. + Windows. * Wed May 11 2011 Fabian Groffen <[email protected]> - 11.3.3-20110517 - java: Insertion via PreparedStatement and retrieval via ResultSet of timestamp -and time fields with and without timezones was improved to better -respect timezones, as partly indicated in bug #2781. + and time fields with and without timezones was improved to better + respect timezones, as partly indicated in bug #2781. * Wed May 11 2011 Sjoerd Mullender <[email protected]> - 11.3.3-20110517 - monetdb5: Fixed a bug in conversion from string to the URL type. The bug was -an incorrect call to free(). + an incorrect call to free(). * Wed Apr 27 2011 Sjoerd Mullender <[email protected]> - 11.3.3-20110517 - geom: Fixed various problems so that now all our tests work correctly on -all our testing platforms. + all our testing platforms. * Thu Apr 21 2011 Sjoerd Mullender <[email protected]> - 11.3.1-20110421 - Rebuilt. diff --git a/NT/Makefile b/NT/Makefile --- a/NT/Makefile +++ b/NT/Makefile @@ -64,7 +64,6 @@ targetdirs: if not exist "$(libexecdir)" $(MKDIR) "$(libexecdir)" if not exist "$(datadir)" $(MKDIR) "$(datadir)" if not exist "$(sysconfdir)" $(MKDIR) "$(sysconfdir)" - if not exist "$(sharedstatedir)" $(MKDIR) "$(sharedstatedir)" if not exist "$(localstatedir)" $(MKDIR) "$(localstatedir)" if not exist "$(libdir)" $(MKDIR) "$(libdir)" if not exist "$(infodir)" $(MKDIR) "$(infodir)" diff --git a/NT/rules.msc b/NT/rules.msc --- a/NT/rules.msc +++ b/NT/rules.msc @@ -218,7 +218,6 @@ sbindir = $(exec_prefix)\sbin libexecdir = $(exec_prefix)\libexec datadir = $(prefix)\share sysconfdir = $(prefix)\etc -sharedstatedir = $(prefix)\com localstatedir = $(prefix)\var libdir = $(exec_prefix)\lib infodir = $(prefix)\info diff --git a/NT/winconfig.py b/NT/winconfig.py --- a/NT/winconfig.py +++ b/NT/winconfig.py @@ -18,7 +18,6 @@ subs = [("@exec_prefix@", r'%prefix%'), ("@datadir@", r'%prefix%\share'), ("@datarootdir@", r'%prefix%\share'), ("@sysconfdir@", r'%prefix%\etc'), - ("@sharedstatedir@", r'%prefix%\com'), ("@localstatedir@", r'%prefix%\var'), ("@libdir@", r'%exec_prefix%\lib'), ("@infodir@", r'%prefix%\info'), 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 @@ -853,7 +853,7 @@ def am_translate_dir(path, am): 'libdir', 'libexecdir', 'localstatedir', 'mandir', 'oldincludedir', 'pkgbindir', 'pkgdatadir', 'pkgincludedir', 'pkglibdir', 'pkglocalstatedir', 'pkgsysconfdir', 'sbindir', - 'sharedstatedir', 'srcdir', 'sysconfdir', 'top_builddir', + 'srcdir', 'sysconfdir', 'top_builddir', 'top_srcdir', 'prefix'): dir = "$("+dir+")" dir = dir + rest 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 @@ -147,7 +147,7 @@ def msc_translate_dir(path, msc): 'libdir', 'libexecdir', 'localstatedir', 'mandir', 'oldincludedir', 'pkgbindir', 'pkgdatadir', 'pkgincludedir', 'pkglibdir', 'pkglocalstatedir', 'pkgsysconfdir', 'sbindir', - 'sharedstatedir', 'srcdir', 'sysconfdir', 'top_builddir', + 'srcdir', 'sysconfdir', 'top_builddir', 'top_srcdir', 'prefix'): dir = "$("+dir+")" if rest: diff --git a/buildtools/conf/monetdbd.conf b/buildtools/conf/monetdbd.conf --- a/buildtools/conf/monetdbd.conf +++ b/buildtools/conf/monetdbd.conf @@ -1,3 +1,3 @@ # this file is for systemd -# monetdbd needs a directory in /var/run that is owned by monetdb:monetdb +# monetdbd needs a directory in /run that is owned by monetdb:monetdb d /run/monetdb 0775 monetdb monetdb - diff --git a/buildtools/selinux/monetdb.fc b/buildtools/selinux/monetdb.fc --- a/buildtools/selinux/monetdb.fc +++ b/buildtools/selinux/monetdb.fc @@ -2,8 +2,14 @@ /usr/bin/mserver5 -- gen_context(system_u:object_r:mserver5_exec_t,s0) /usr/lib/systemd/system/monetdbd.* gen_context(system_u:object_r:monetdbd_unit_file_t,s0) /var/log/monetdb(/.*)? gen_context(system_u:object_r:monetdbd_log_t,s0) +# for some reason we cannot use /run/monetdb here, even though that is the real name +/var/run/monetdb(/.*)? gen_context(system_u:object_r:monetdbd_var_run_t,s0) +# database "farm" /var/monetdb5/dbfarm(/.*)? gen_context(system_u:object_r:mserver5_db_t,s0) /var/monetdb5/dbfarm/\.merovingian_properties -- gen_context(system_u:object_r:monetdbd_etc_t,s0) -/var/run/monetdb(/.*)? gen_context(system_u:object_r:monetdbd_var_run_t,s0) /var/monetdb5/dbfarm/\.merovingian_lock -- gen_context(system_u:object_r:monetdbd_lock_t,s0) /var/monetdb5/dbfarm/.*/\.gdk_lock -- gen_context(system_u:object_r:mserver5_lock_t,s0) +/var/lib/monetdb(/.*)? gen_context(system_u:object_r:mserver5_db_t,s0) +/var/lib/monetdb/\.merovingian_properties -- gen_context(system_u:object_r:monetdbd_etc_t,s0) +/var/lib/monetdb/\.merovingian_lock -- gen_context(system_u:object_r:monetdbd_lock_t,s0) +/var/lib/monetdb/.*/\.gdk_lock -- gen_context(system_u:object_r:mserver5_lock_t,s0) diff --git a/buildtools/selinux/monetdb.te b/buildtools/selinux/monetdb.te --- a/buildtools/selinux/monetdb.te +++ b/buildtools/selinux/monetdb.te @@ -1,4 +1,4 @@ -policy_module(monetdb, 0.9) +policy_module(monetdb, 1.0) # The above line declares that this file is a SELinux policy file. Its # name is monetdb, so the file should be saved as monetdb.te @@ -7,6 +7,7 @@ require { type proc_net_t; type tmp_t; type var_t; + type var_lib_t; type user_home_t; type user_home_dir_t; type unconfined_service_t; # for EPEL 7 @@ -132,12 +133,14 @@ manage_sock_files_pattern(mserver5_t, ms allow mserver5_t monetdbd_t:fifo_file { read write getattr }; allow mserver5_t monetdbd_t:unix_stream_socket { read write getopt shutdown }; allow mserver5_t var_t:dir { read }; +allow mserver5_t var_lib_t:dir { read }; # we want to be able to read some cgroup files fs_search_cgroup_dirs(mserver5_t); fs_read_cgroup_files(mserver5_t); allow mserver5_t cgroup_t:dir search; allow mserver5_t self:process execmem; allow monetdbd_t var_t:dir { read }; +allow monetdbd_t var_lib_t:dir { read }; gen_tunable(mserver5_can_read_home, false) tunable_policy(`mserver5_can_read_home', ` userdom_search_user_home_dirs(mserver5_t) diff --git a/clients/ChangeLog.Jun2020 b/clients/ChangeLog.Jun2020 --- a/clients/ChangeLog.Jun2020 +++ b/clients/ChangeLog.Jun2020 @@ -1,6 +1,20 @@ _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
