Changeset: 962cd064e2c1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/962cd064e2c1
Branch: manti
Log Message:

merged from default


diffs (truncated from 4980 to 300 lines):

diff --git a/ChangeLog.Dec2025 b/ChangeLog.Dec2025
--- a/ChangeLog.Dec2025
+++ b/ChangeLog.Dec2025
@@ -1,6 +1,18 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Fri Nov  6 2026 Sjoerd Mullender <[email protected]>
+- There was a regression in the handling of the --dbextra=in-memory option.
+  Instead of keeping the "extra" farm (i.e. all transient BATs) fully
+  in memory, they were stored in a subdirectory called in-memory.
+- There was a bug in handling backslash escapes in strings if the
+  backslash was immediately followed by a non-ASCII UTF-8 character.
+- On Fedora 45, there was a change in how the ODBC drivers are configured.
+  The MonetDB ODBC driver now follows the new way of doing things.
+- In Dec2025-SP4, the MonetDB-geom module was accidentally not built for
+  Fedora and RHEL 9 and 10.  This has been corrected.  The module cannot
+  be built for RHEL 8 since the required geos library is too old.
+
 * Fri Oct 23 2026 Sjoerd Mullender <[email protected]>
 - Added an option --relative-dir to mclient to specify the directory
   for relative path names when using the ON CLIENT option in SQL queries.
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -62,7 +62,7 @@
 # derivatives (CentOS, Scientific Linux), the geos library is not
 # available.  However, the geos library is available in the Extra
 # Packages for Enterprise Linux (EPEL).
-%if 0%{?fedpkgs} && (0%{?rhel} > 8)
+%if 0%{?fedpkgs} && (%{!?rhel:10}%{?rhel} > 8)
 # By default create the MonetDB-geom package on Fedora
 %bcond_without geos
 %endif
diff --git a/clients/odbc/driver/ODBCConvert.c 
b/clients/odbc/driver/ODBCConvert.c
--- a/clients/odbc/driver/ODBCConvert.c
+++ b/clients/odbc/driver/ODBCConvert.c
@@ -190,7 +190,7 @@ parsemonthinterval(bignum_t *nval, SQL_I
        ival->intval.year_month.month = (SQLUINTEGER) (nval->val % 12);
 }
 
-static short monthlengths[] = {
+static const short monthlengths[] = {
        0,                      /* dummy */
        31,                     /* Jan */
        29,                     /* Feb */
diff --git a/clients/odbc/driver/ODBCUtil.c b/clients/odbc/driver/ODBCUtil.c
--- a/clients/odbc/driver/ODBCUtil.c
+++ b/clients/odbc/driver/ODBCUtil.c
@@ -1232,7 +1232,7 @@ ODBCParsePV(const char *tab, const char 
                res[i++] = *s;
        }
        /* raw strings prefix syntax is only supported by servers since Jun2020 
(11.37) */
-       if (dbc->major == 11 && dbc->minor >= 37) {
+       if ((dbc->major >= 56) || (dbc->major == 11 && dbc->minor >= 37)){
                s = "' escape r'\\'";
        } else {
                s = "' escape '\\\\'";
diff --git a/clients/odbc/driver/SQLConnect.c b/clients/odbc/driver/SQLConnect.c
--- a/clients/odbc/driver/SQLConnect.c
+++ b/clients/odbc/driver/SQLConnect.c
@@ -73,7 +73,7 @@ get_serverinfo(ODBCDbc *dbc)
                goto end;
 
        /* table sys.comments should exist since Mar2018 (11.29) */
-       if (dbc->major == 11 && dbc->minor > 29) {
+       if ((dbc->major >= 56) || (dbc->major == 11 && dbc->minor > 29)) {
                dbc->has_comment = true;
        } else {
                mapi_close_handle(hdl);
diff --git a/clients/odbc/driver/SQLExecDirect.c 
b/clients/odbc/driver/SQLExecDirect.c
--- a/clients/odbc/driver/SQLExecDirect.c
+++ b/clients/odbc/driver/SQLExecDirect.c
@@ -52,7 +52,7 @@ ODBCExecDirect(ODBCStmt *stmt, const SQL
        if (stmt->qtimeout != stmt->Dbc->qtimeout) {
                char buf[48];
                snprintf(buf, sizeof(buf), "call sys.%s(%" PRIu64 ")",
-                        (stmt->Dbc->major == 11 && stmt->Dbc->minor >= 37)
+                        ((stmt->Dbc->major >= 56) || (stmt->Dbc->major == 11 
&& stmt->Dbc->minor >= 37))
                         ? "setquerytimeout" : "settimeout",
                         (uint64_t) stmt->qtimeout);
                if (mapi_query_handle(hdl, buf) == MOK)
diff --git a/clients/odbc/driver/SQLExecute.c b/clients/odbc/driver/SQLExecute.c
--- a/clients/odbc/driver/SQLExecute.c
+++ b/clients/odbc/driver/SQLExecute.c
@@ -480,7 +480,7 @@ MNDBExecute(ODBCStmt *stmt)
        }
        if (stmt->qtimeout != stmt->Dbc->qtimeout) {
                snprintf(query, querylen, "call sys.%s(%" PRIu64 ")",
-                        (stmt->Dbc->major == 11 && stmt->Dbc->minor >= 37)
+                        ((stmt->Dbc->major >= 56) || (stmt->Dbc->major == 11 
&& stmt->Dbc->minor >= 37))
                         ? "setquerytimeout" : "settimeout",
                         (uint64_t) stmt->qtimeout);
                if (mapi_query_handle(hdl, query) == MOK)
diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c
--- a/clients/odbc/driver/SQLGetInfo.c
+++ b/clients/odbc/driver/SQLGetInfo.c
@@ -378,7 +378,10 @@ MNDBGetInfo(ODBCDbc *dbc,
                break;
        case SQL_CREATE_VIEW:
                nValue = SQL_CV_CREATE_VIEW | SQL_CV_CHECK_OPTION;
-               /* SQL_CV_CASCADE | SQL_CV_LOCAL */
+               /* CREATE LOCAL TEMPORARY VIEW is supported since 11.53 
(Mar2025) */
+               if ((dbc->major >= 56) || (dbc->major == 11 && dbc->minor >= 
53))
+                       nValue = nValue | SQL_CV_LOCAL;
+               /* SQL_CV_CASCADE */
                break;
        case SQL_CURSOR_COMMIT_BEHAVIOR:
        case SQL_CURSOR_ROLLBACK_BEHAVIOR:
diff --git a/clients/odbc/tests/ODBCgetInfo.c b/clients/odbc/tests/ODBCgetInfo.c
--- a/clients/odbc/tests/ODBCgetInfo.c
+++ b/clients/odbc/tests/ODBCgetInfo.c
@@ -395,7 +395,7 @@ const struct {
                .info = SQL_CREATE_VIEW,
                .name = "SQL_CREATE_VIEW",
                .type = INTEGER,
-               .i = SQL_CV_CREATE_VIEW | SQL_CV_CHECK_OPTION,
+               .i = SQL_CV_CREATE_VIEW | SQL_CV_CHECK_OPTION | SQL_CV_LOCAL,
        },
        {
                .info = SQL_CURSOR_COMMIT_BEHAVIOR,
diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake
--- a/cmake/monetdb-defines.cmake
+++ b/cmake/monetdb-defines.cmake
@@ -52,10 +52,6 @@ function(monetdb_configure_defines)
   check_symbol_exists("gethostbyname" "netdb.h" HAVE_NETDB_H)
   check_symbol_exists("setsockopt" "sys/socket.h" HAVE_SYS_SOCKET_H)
   check_symbol_exists("gettimeofday" "sys/time.h" HAVE_SYS_TIME_H)
-  # Linux specific, in the future, it might be ported to other platforms
-  check_symbol_exists("getaddrinfo" "sys/types.h;sys/socket.h;netdb.h" 
UNIX_GETADDRINFO)
-  check_symbol_exists("getaddrinfo" "ws2tcpip.h" WIN_GETADDRINFO)
-  #check_symbol_exists("WSADATA" "winsock2.h" HAVE_WINSOCK_H)
   check_symbol_exists("fdatasync" "unistd.h" HAVE_FDATASYNC)
   # Some libc versions on Linux distributions don't have it
   check_symbol_exists("accept4"
@@ -83,7 +79,7 @@ function(monetdb_configure_defines)
   check_symbol_exists("strerror_s" "string.h" HAVE_STRERROR_S)
   check_symbol_exists("strerror_r" "string.h" HAVE_STRERROR_R)
   check_function_exists("lockf" HAVE_LOCKF)
-  check_symbol_exists("madvise" "sys/mman.h" HAVE_MADVISE)
+#  check_symbol_exists("madvise" "sys/mman.h" HAVE_MADVISE)
   check_function_exists("malloc_info" HAVE_MALLOC_INFO)
   check_function_exists("mallinfo2" HAVE_MALLINFO2)
   check_symbol_exists("mremap" "sys/mman.h" HAVE_MREMAP)
@@ -97,7 +93,7 @@ function(monetdb_configure_defines)
   check_symbol_exists("posix_fadvise" "fcntl.h" HAVE_POSIX_FADVISE)
   # Some POSIX systems don't have it (e.g. Macos)
   check_symbol_exists("posix_fallocate" "fcntl.h" HAVE_POSIX_FALLOCATE)
-  check_symbol_exists("posix_madvise" "sys/mman.h" HAVE_POSIX_MADVISE)
+#  check_symbol_exists("posix_madvise" "sys/mman.h" HAVE_POSIX_MADVISE)
   check_function_exists("setsid" HAVE_SETSID)
   check_function_exists("sockatmark" HAVE_SOCKATMARK)
   check_function_exists("shutdown" HAVE_SHUTDOWN)
@@ -110,7 +106,6 @@ function(monetdb_configure_defines)
   check_function_exists("strptime" HAVE_STRPTIME)
   check_symbol_exists("sysconf" "unistd.h" HAVE_SYSCONF)
   check_function_exists("task_info" HAVE_TASK_INFO)
-  check_function_exists("times" HAVE_TIMES)
   check_function_exists("uname" HAVE_UNAME)
   cmake_push_check_state()
     set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
@@ -190,12 +185,6 @@ macro(monetdb_macro_variables)
     set(SOCKET_LIBRARIES "ws2_32")
   endif()
 
-  if(UNIX_GETADDRINFO)
-    set(HAVE_GETADDRINFO 1)
-  endif()
-  if(WIN_GETADDRINFO)
-    set(HAVE_GETADDRINFO 1)
-  endif()
   # compiler options, profiling (google perf tools), valgrind
   # Check that posix regex is available when pcre is not found
   # "monetdb5/module/mal/pcre.c" assumes the regex library is available
@@ -204,12 +193,6 @@ macro(monetdb_macro_variables)
     message(FATAL_ERROR "PCRE library or GNU regex library not found but 
required for MonetDB5")
   endif()
 
-  set(MAPI_PORT 50000)
-  set(MAPI_PORT_STR "${MAPI_PORT}")
-
-  set(DIR_SEP  "/")
-  set(PATH_SEP ":")
-  set(DIR_SEP_STR  "/")
   set(SO_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}")
   set(SO_EXT "${CMAKE_SHARED_LIBRARY_SUFFIX}")
 
@@ -241,15 +224,6 @@ macro(monetdb_configure_sizes)
   check_type_size(size_t SIZEOF_SIZE_T LANGUAGE C)
   set(SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
   check_type_size(ssize_t SIZEOF_SSIZE_T LANGUAGE C)
-  if(NOT HAVE_SIZEOF_SSIZE_T)
-    # Set a default value
-    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-      set(ssize_t "int64_t")
-    else()
-      set(ssize_t "int32_t")
-    endif()
-    set(SIZEOF_SSIZE_T ${CMAKE_SIZEOF_VOID_P})
-  endif()
   check_type_size(char SIZEOF_CHAR LANGUAGE C)
   check_type_size(short SIZEOF_SHORT LANGUAGE C)
   check_type_size(int SIZEOF_INT LANGUAGE C)
diff --git a/ctest/cmake/CMakeLists.txt b/ctest/cmake/CMakeLists.txt
--- a/ctest/cmake/CMakeLists.txt
+++ b/ctest/cmake/CMakeLists.txt
@@ -32,9 +32,6 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/dete
 include(${CMAKE_CURRENT_SOURCE_DIR}/detect-valgrind.cmake)
 include(${CMAKE_CURRENT_SOURCE_DIR}/detect-geos.cmake)
 include(${CMAKE_CURRENT_SOURCE_DIR}/detect-gdal.cmake)
-include(${CMAKE_CURRENT_SOURCE_DIR}/detect-unixgetaddrinfo.cmake)
-include(${CMAKE_CURRENT_SOURCE_DIR}/detect-wingetaddrinfo.cmake)
-include(${CMAKE_CURRENT_SOURCE_DIR}/detect-getaddrinfo.cmake)
 include(${CMAKE_CURRENT_SOURCE_DIR}/detect-pthreadinit.cmake)
 include(${CMAKE_CURRENT_SOURCE_DIR}/detect-pthreadkill.cmake)
 include(${CMAKE_CURRENT_SOURCE_DIR}/detect-pthreadsig.cmake)
diff --git a/ctest/cmake/detect-getaddrinfo.cmake 
b/ctest/cmake/detect-getaddrinfo.cmake
deleted file mode 100644
--- a/ctest/cmake/detect-getaddrinfo.cmake
+++ /dev/null
@@ -1,50 +0,0 @@
-#[[
-# SPDX-License-Identifier: MPL-2.0
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0.  If a copy of the MPL was not distributed with this
-# file, You can obtain one at https://mozilla.org/MPL/2.0/.
-#
-# For copyright information, see the file debian/copyright.
-#]]
-
-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-  get_os_release_info(LINUX_DISTRO LINUX_DISTRO_VERSION)
-endif()
-
-if (${LINUX_DISTRO} STREQUAL "debian")
-  if(${LINUX_DISTRO_VERSION} STREQUAL "9")
-    set(DETECT "0")
-    set(UNDETECT "1")
-  endif()
-  if(${LINUX_DISTRO_VERSION} STREQUAL "10")
-    set(DETECT "0")
-    set(UNDETECT "1")
-  endif()
-elseif (${LINUX_DISTRO} STREQUAL "ubuntu")
-  if(${LINUX_DISTRO_VERSION} VERSION_GREATER_EQUAL "18")
-    set(DETECT "0")
-    set(UNDETECT "1")
-  endif()
-elseif(${LINUX_DISTRO} STREQUAL "fedora")
-  if(${LINUX_DISTRO_VERSION} VERSION_GREATER_EQUAL "30")
-    set(DETECT "0")
-    set(UNDETECT "1")
-  endif()
-else()
-  message(ERROR "Linux distro: ${LINUX_DISTRO} not known")
-  message(ERROR "Linux distro version: ${LINUX_DISTRO_VERSION} not known")
-endif()
-
-configure_file(test_detect_getaddrinfo.c.in
-  ${CMAKE_CURRENT_BINARY_DIR}/test_detect_getaddrinfo.c
-  @ONLY)
-
-add_executable(test_detect_getaddrinfo)
-target_sources(test_detect_getaddrinfo
-  PRIVATE
-  ${CMAKE_CURRENT_BINARY_DIR}/test_detect_getaddrinfo.c)
-target_link_libraries(test_detect_getaddrinfo
-  PRIVATE
-  monetdb_config_header)
-add_test(NAME testDetectGetaddrinfo COMMAND test_detect_getaddrinfo)
diff --git a/ctest/cmake/detect-unixgetaddrinfo.cmake 
b/ctest/cmake/detect-unixgetaddrinfo.cmake
deleted file mode 100644
--- a/ctest/cmake/detect-unixgetaddrinfo.cmake
+++ /dev/null
@@ -1,47 +0,0 @@
-#[[
-# SPDX-License-Identifier: MPL-2.0
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0.  If a copy of the MPL was not distributed with this
-# file, You can obtain one at https://mozilla.org/MPL/2.0/.
-#
-# For copyright information, see the file debian/copyright.
-#]]
-
-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-  get_os_release_info(LINUX_DISTRO LINUX_DISTRO_VERSION)
-endif()
-
-if (${LINUX_DISTRO} STREQUAL "debian")
-  if(${LINUX_DISTRO_VERSION} STREQUAL "9")
-    set(DETECT "0")
-    set(UNDETECT "1")
-  endif()
-  if(${LINUX_DISTRO_VERSION} STREQUAL "10")
-    set(DETECT "0")
-    set(UNDETECT "1")
-  endif()
-elseif (${LINUX_DISTRO} STREQUAL "ubuntu")
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to