Changeset: 801aee9c9a8c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=801aee9c9a8c Added Files: sql/test/BugTracker-2019/Tests/double-free.Bug-6757.sql sql/test/BugTracker-2019/Tests/double-free.Bug-6757.stable.err sql/test/BugTracker-2019/Tests/double-free.Bug-6757.stable.out sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.py sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.out sql/test/BugTracker-2019/Tests/select-char.Bug-6761.sql sql/test/BugTracker-2019/Tests/select-char.Bug-6761.stable.err sql/test/BugTracker-2019/Tests/select-char.Bug-6761.stable.out Modified Files: MonetDB.spec NT/rules.msc clients/mapiclient/mclient.c clients/mapiclient/stethoscope.c common/stream/stream.c common/utils/matomic.h configure.ag debian/control debian/fix-deb.sh debian/monetdb-testing-python.install gdk/gdk.h gdk/gdk_align.c gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c gdk/gdk_hash.c gdk/gdk_hash.h gdk/gdk_heap.c gdk/gdk_imprints.c gdk/gdk_interprocess.c gdk/gdk_logger.c gdk/gdk_orderidx.c gdk/gdk_private.h gdk/gdk_storage.c gdk/gdk_system.h gdk/gdk_utils.c monetdb5/mal/mal_dataflow.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/tablet.c sql/backends/monet5/UDF/pyapi/pyapi.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_result.h sql/backends/monet5/sql_upgrades.c sql/common/sql_types.c sql/common/sql_types.h sql/include/sql_catalog.h sql/rel.txt sql/server/rel_optimizer.c sql/server/rel_psm.c sql/server/rel_psm.h sql/server/rel_schema.c sql/server/rel_select.c sql/server/rel_semantic.c sql/server/rel_unnest.c sql/server/rel_unnest.h sql/server/sql_env.c sql/server/sql_mvc.c sql/server/sql_mvc.h sql/server/sql_parser.y sql/server/sql_qc.c sql/server/sql_qc.h sql/server/sql_tokens.h sql/storage/bat/res_table.c sql/storage/sql_catalog.c sql/storage/sql_storage.h sql/storage/store.c sql/storage/store_dependency.c sql/test/BugTracker-2009/Tests/All sql/test/BugTracker-2009/Tests/insert_into_done_by_procedure.SF-2607293.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out sql/test/BugTracker-2019/Tests/All sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.sql sql/test/BugTracker/Tests/All sql/test/SQLite_regress/sqllogictest/sqllogictest.py sql/test/analytics/Tests/analytics09.stable.err sql/test/analytics/Tests/analytics09.stable.out sql/test/subquery/Tests/any.sql sql/test/subquery/Tests/any.stable.err sql/test/subquery/Tests/any.stable.out sql/test/subquery/Tests/correlated.stable.err sql/test/subquery/Tests/correlated.stable.out sql/test/subquery/Tests/subquery.sql sql/test/subquery/Tests/subquery.stable.err sql/test/subquery/Tests/subquery2.sql sql/test/testdb-reload/Tests/reload.py testing/Mtest.py.in testing/process.py tools/merovingian/daemon/client.c tools/merovingian/daemon/controlrunner.c tools/merovingian/daemon/discoveryrunner.c tools/merovingian/daemon/merovingian.c tools/merovingian/daemon/multiplex-funnel.c Branch: json Log Message:
Merge with default diffs (truncated from 8355 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -84,9 +84,9 @@ %bcond_without rintegration %endif -# On Fedora and RHEL 7, create the MonetDB-python2 package. +# On Fedora <= 30 and RHEL 7, create the MonetDB-python2 package. # On RHEL 6, numpy is too old. -%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 +%if 0%{?rhel} == 7 || %{!?fedora:1000}%{?fedora} <= 30 %bcond_without py2integration %endif %if %{?rhel:0}%{!?rhel:1} @@ -164,12 +164,7 @@ BuildRequires: python-devel # RedHat Enterprise Linux calls it simply numpy BuildRequires: numpy %else -%if (0%{?fedora} >= 24) BuildRequires: python2-numpy -%else -# Fedora <= 23 doesn't have python2-numpy -BuildRequires: numpy -%endif %endif %endif %if %{with py3integration} @@ -1053,7 +1048,12 @@ do install -p -m 644 buildtools/selinux/monetdb.pp.${selinuxvariant} \ %{buildroot}%{_datadir}/selinux/${selinuxvariant}/monetdb.pp done -/usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux +if [ -x /usr/sbin/hardlink ]; then + /usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux +else + # Fedora 31 + /usr/bin/hardlink -cv %{buildroot}%{_datadir}/selinux +fi %endif %post -p /sbin/ldconfig diff --git a/NT/rules.msc b/NT/rules.msc --- a/NT/rules.msc +++ b/NT/rules.msc @@ -42,6 +42,7 @@ BITSMCHN=X64 # force W_CFLAGS off in debug builds: using icc, you get way more # warnings about casts which results in the code being uncompilable W_CFLAGS = +HAVE_MAL_DEBUGGER = 1 !ENDIF !IFDEF ENABLE_STRICT # strict mode: treat warnings as errors @@ -386,6 +387,11 @@ create_winconfig_conds_new_py: !ELSE $(ECHO) HAVE_SHP_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py" !ENDIF +!IFDEF HAVE_MAL_DEBUGGER + $(ECHO) HAVE_MAL_DEBUGGER_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py" +!ELSE + $(ECHO) HAVE_MAL_DEBUGGER_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py" +!ENDIF !IFDEF HAVE_SQL $(ECHO) HAVE_SQL_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py" !ELSE diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -3664,6 +3664,9 @@ main(int argc, char **argv) if (mode == SQL) dump_version(mid, toConsole, "Database:"); + mnstr_printf(toConsole, "FOLLOW US on https://twitter.com/MonetDB "); + mnstr_printf(toConsole, "or https://github.com/MonetDB/MonetDB\n"); + mnstr_printf(toConsole, "Type \\q to quit, \\? for a list of available commands\n"); if (mode == SQL) mnstr_printf(toConsole, "auto commit mode: %s\n", diff --git a/clients/mapiclient/stethoscope.c b/clients/mapiclient/stethoscope.c --- a/clients/mapiclient/stethoscope.c +++ b/clients/mapiclient/stethoscope.c @@ -110,7 +110,7 @@ renderEvent(EventRecord *ev){ return; fprintf(s, "[ "); fprintf(s, "%"PRId64", ", ev->eventnr); - printf("\"%s\", ", ev->time); + fprintf(s, "\"%s\", ", ev->time); if( ev->function && *ev->function) fprintf(s, "\"%s[%d]%d\", ", ev->function, ev->pc, ev->tag); else diff --git a/common/stream/stream.c b/common/stream/stream.c --- a/common/stream/stream.c +++ b/common/stream/stream.c @@ -73,6 +73,9 @@ # include <netinet/tcp.h> # include <netdb.h> #endif +#ifdef HAVE_POLL_H +#include <poll.h> +#endif #ifdef NATIVE_WIN32 #include <io.h> @@ -2489,9 +2492,21 @@ socket_read(stream *restrict s, void *re #endif for (;;) { if (s->timeout) { + int ret; +#ifdef HAVE_POLL + struct pollfd pfd; + + pfd = (struct pollfd) {.fd = s->stream_data.s, + .events = POLLIN}; + + ret = poll(&pfd, 1, (int) s->timeout); + if (ret == -1 || (pfd.revents & POLLERR)) { + s->errnr = MNSTR_READ_ERROR; + return -1; + } +#else struct timeval tv; fd_set fds; - int ret; errno = 0; #ifdef _MSC_VER @@ -2512,6 +2527,7 @@ socket_read(stream *restrict s, void *re s->errnr = MNSTR_READ_ERROR; return -1; } +#endif if (ret == 0) { if (s->timeout_func == NULL || s->timeout_func()) { s->errnr = MNSTR_TIMEOUT; @@ -2520,7 +2536,11 @@ socket_read(stream *restrict s, void *re continue; } assert(ret == 1); +#ifdef HAVE_POLL + assert(pfd.revents & (POLLIN|POLLHUP)); +#else assert(FD_ISSET(s->stream_data.s, &fds)); +#endif } #ifdef _MSC_VER nr = recv(s->stream_data.s, buf, (int) size, 0); @@ -2617,9 +2637,20 @@ static int socket_isalive(stream *s) { SOCKET fd = s->stream_data.s; - char buffer[32]; +#ifdef HAVE_POLL + struct pollfd pfd; + int ret; + pfd = (struct pollfd){.fd = fd}; + if ((ret = poll(&pfd, 1, 0)) == 0) + return 1; + if (ret < 0 || pfd.revents & (POLLERR | POLLHUP)) + return 0; + assert(0); /* unexpected revents value */ + return 0; +#else fd_set fds; struct timeval t; + char buffer[32]; t.tv_sec = 0; t.tv_usec = 0; @@ -2633,6 +2664,7 @@ socket_isalive(stream *s) #endif &fds, NULL, NULL, &t) <= 0 || recv(fd, buffer, sizeof(buffer), MSG_PEEK | MSG_DONTWAIT) != 0; +#endif } static stream * diff --git a/common/utils/matomic.h b/common/utils/matomic.h --- a/common/utils/matomic.h +++ b/common/utils/matomic.h @@ -476,7 +476,7 @@ ATOMIC_CLEAR(ATOMIC_FLAG *var) pthread_mutex_unlock(&var->lck); } -#define USE_PTHREAD_LOCKS /* must use pthread locks */ +#define USE_NATIVE_LOCKS /* must use pthread locks */ #endif diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -838,6 +838,7 @@ AS_VAR_IF([enable_assert], [no], [ AC_MSG_RESULT([no])], [AC_MSG_RESULT([yes])]) +AM_CONDITIONAL([HAVE_MAL_DEBUGGER], [test "x$enable_assert" != xno]) AC_MSG_CHECKING([for --enable-optimize]) AS_CASE([$enable_optimize], [yes], [ @@ -1012,7 +1013,7 @@ AC_PROG_LN_S AC_CHECK_PROGS([DIFF], [gdiff diff]) AC_DEFINE_UNQUOTED([DIFF], ["$DIFF"], [Program to perform diffs]) -AC_CHECK_PROGS([RPMBUILD], [rpmbuild]) +AC_CHECK_PROG([RPMBUILD], [rpmbuild], [rpmbuild], [false]) # This is how we use the various Python-related configuration variables. # PYTHON - the Python interpreter we use for testing. This can either @@ -2257,6 +2258,7 @@ AC_CHECK_HEADERS([ \ mach-o/dyld.h \ netdb.h \ netinet/in.h \ + poll.h \ procfs.h \ pwd.h \ strings.h \ @@ -2267,7 +2269,6 @@ AC_CHECK_HEADERS([ \ sys/param.h \ sys/resource.h \ sys/socket.h \ - sys/sysctl.h \ sys/time.h \ sys/times.h \ sys/types.h \ @@ -2282,12 +2283,14 @@ AC_CHECK_HEADERS([ \ ]) # on OpenBSD, sys/sysctl.h requires sys/param.h to be included beforehand -AC_CHECK_HEADERS([sys/sysctl.h], [], [], -[ - @%:@ifdef HAVE_SYS_PARAM_H - @%:@ include <sys/param.h> - @%:@endif -]) +AS_CASE([$host_os], + [linux*], [], + [AC_CHECK_HEADERS([sys/sysctl.h], [], [], + [ + @%:@ifdef HAVE_SYS_PARAM_H + @%:@ include <sys/param.h> + @%:@endif + ])]) SOCKET_LIBS="" @@ -2487,6 +2490,7 @@ AC_CHECK_FUNCS([\ nl_langinfo \ _NSGetExecutablePath \ pipe2 \ + poll \ popen \ posix_fadvise \ posix_fallocate \ diff --git a/debian/control b/debian/control --- a/debian/control +++ b/debian/control @@ -11,7 +11,7 @@ Build-Depends: debhelper (>= 9), autotoo libssl-dev, libxml2-dev, pkg-config, python, python-dev, python-numpy, python3, python3-dev, python3-numpy, - unixodbc-dev, uuid-dev, zlib1g-dev, liblas-c-dev (>= 1.8.0), r-base, + unixodbc-dev, uuid-dev, zlib1g-dev, liblas-c-dev (>= 1.8.0), r-base-dev, libcfitsio-dev Standards-Version: 3.8.0 X-Python-Version: >= 2.6 diff --git a/debian/fix-deb.sh b/debian/fix-deb.sh --- a/debian/fix-deb.sh +++ b/debian/fix-deb.sh @@ -49,17 +49,19 @@ jessie) # Debian 8 still have php5-cli and doesn't have php*-sockets; # newer ones use php-cli and do have php-sockets. sed -i 's/php-cli/php5-cli/;s/, *php-sockets//' debian/control - ;; -esac -case $SUITE in -jessie) # The Python 3 version is too old for py3integration. sed -i '/^Package: monetdb-python3/,/^$/d' debian/control sed -i 's/ python3-dev, python3-numpy,//' debian/control rm debian/monetdb-python3.install sed -i 's/py3integration=yes/py3integration=no/' debian/rules -;; + ;; +eoan) + # Ubuntu 19.10 (Eoan Ermine) doesn't have liblas-c-dev, hence no LiDAR + sed -i 's/ liblas-c-dev[^,]*,//' debian/control + sed -i '/^Package: libmonetdb5-server-lidar/,/^$/d' debian/control + sed -i '/--enable-lidar=yes/s/yes/no/;/--enable-liblas=yes/s/yes/no/' debian/rules + ;; esac # debhelper compatibility 9 and later support multiarch by using diff --git a/debian/monetdb-testing-python.install b/debian/monetdb-testing-python.install --- a/debian/monetdb-testing-python.install +++ b/debian/monetdb-testing-python.install @@ -1,3 +1,3 @@ debian/tmp/usr/bin/Mapprove.py usr/bin debian/tmp/usr/bin/Mtest.py usr/bin -debian/tmp/usr/lib/python3.*/*-packages/MonetDBtesting/* _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list