Changeset: 2cadd95de156 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2cadd95de156
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        gdk/gdk_heap.c
        geom/monetdb5/geom.c
        monetdb5/modules/atoms/str.c
        monetdb5/modules/mal/batcalc.c
        sql/backends/monet5/sql_cast.c
        sql/common/sql_types.c
        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/sys-schema/Tests/systemfunctions.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
        tools/merovingian/daemon/controlrunner.c
        tools/monetdbe/monetdbe.c
Branch: unlock
Log Message:

merged


diffs (truncated from 26506 to 300 lines):

diff --git a/.readthedocs.yml b/.readthedocs.yml
new file mode 100644
--- /dev/null
+++ b/.readthedocs.yml
@@ -0,0 +1,14 @@
+# .readthedocs.yml
+# Read the Docs configuration file
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+# Build documentation in the docs/ directory with Sphinx
+sphinx:
+  configuration: documentation/conf.py
+
+# Optionally build your docs in additional formats such as PDF
+formats:
+  - pdf
diff --git a/Config.cmake.in b/Config.cmake.in
--- a/Config.cmake.in
+++ b/Config.cmake.in
@@ -12,6 +12,7 @@ include("${CMAKE_CURRENT_LIST_DIR}/monet
 include("${CMAKE_CURRENT_LIST_DIR}/streamTargets.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/mapiTargets.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/matomicTargets.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/mstringTargets.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/gdkTargets.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/monetdb5Targets.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/sqlTargets.cmake")
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
@@ -8769,9 +8769,9 @@ stdout of test 'MAL-signatures` in direc
 [ "status",    "vm_maxsize",   "command status.vm_maxsize():lng ",     
"SYSgetvm_maxsize;",    ""      ]
 [ "status",    "vm_maxsize",   "command status.vm_maxsize(X_1:lng):void ",     
"SYSsetvm_maxsize;",    ""      ]
 [ "str",       "+",    "command str.+(X_1:str, X_2:str):str ", "STRConcat;",   
""      ]
-[ "str",       "STRepilogue",  "command str.STRepilogue():void ",      
"strEpilogue;", ""      ]
 [ "str",       "ascii",        "command str.ascii(X_1:str):int ",      
"STRascii;",    ""      ]
 [ "str",       "endsWith",     "command str.endsWith(X_1:str, X_2:str):bit ",  
"STRSuffix;",   ""      ]
+[ "str",       "epilogue",     "command str.epilogue():void ", "STRepilogue;", 
""      ]
 [ "str",       "insert",       "command str.insert(X_1:str, X_2:int, X_3:int, 
X_4:str):str ",  "STRinsert;",   ""      ]
 [ "str",       "length",       "command str.length(X_1:str):int ",     
"STRLength;",   ""      ]
 [ "str",       "like", "command str.like(X_1:str, X_2:str):bit ",      
"STRlikewrap2;",        ""      ]
@@ -8784,7 +8784,7 @@ stdout of test 'MAL-signatures` in direc
 [ "str",       "ltrim",        "command str.ltrim(X_1:str):str ",      
"STRLtrim;",    ""      ]
 [ "str",       "nbytes",       "command str.nbytes(X_1:str):int ",     
"STRBytes;",    ""      ]
 [ "str",       "prefix",       "command str.prefix(X_1:str, X_2:int):str ",    
"STRprefix;",   ""      ]
-[ "str",       "prelude",      "command str.prelude():void ",  "strPrelude;",  
""      ]
+[ "str",       "prelude",      "command str.prelude():void ",  "STRprelude;",  
""      ]
 [ "str",       "r_search",     "command str.r_search(X_1:str, X_2:str):int ",  
"STRReverseStrSearch;", ""      ]
 [ "str",       "repeat",       "command str.repeat(X_1:str, X_2:int):str ",    
"STRrepeat;",   ""      ]
 [ "str",       "replace",      "command str.replace(X_1:str, X_2:str, X_3:str, 
X_4:str):str ", "PCREreplace_wrap;",    ""      ]
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
@@ -11740,9 +11740,9 @@ stdout of test 'MAL-signatures` in direc
 [ "status",    "vm_maxsize",   "command status.vm_maxsize():lng ",     
"SYSgetvm_maxsize;",    ""      ]
 [ "status",    "vm_maxsize",   "command status.vm_maxsize(X_1:lng):void ",     
"SYSsetvm_maxsize;",    ""      ]
 [ "str",       "+",    "command str.+(X_1:str, X_2:str):str ", "STRConcat;",   
""      ]
-[ "str",       "STRepilogue",  "command str.STRepilogue():void ",      
"strEpilogue;", ""      ]
 [ "str",       "ascii",        "command str.ascii(X_1:str):int ",      
"STRascii;",    ""      ]
 [ "str",       "endsWith",     "command str.endsWith(X_1:str, X_2:str):bit ",  
"STRSuffix;",   ""      ]
+[ "str",       "epilogue",     "command str.epilogue():void ", "STRepilogue;", 
""      ]
 [ "str",       "insert",       "command str.insert(X_1:str, X_2:int, X_3:int, 
X_4:str):str ",  "STRinsert;",   ""      ]
 [ "str",       "length",       "command str.length(X_1:str):int ",     
"STRLength;",   ""      ]
 [ "str",       "like", "command str.like(X_1:str, X_2:str):bit ",      
"STRlikewrap2;",        ""      ]
@@ -11755,7 +11755,7 @@ stdout of test 'MAL-signatures` in direc
 [ "str",       "ltrim",        "command str.ltrim(X_1:str):str ",      
"STRLtrim;",    ""      ]
 [ "str",       "nbytes",       "command str.nbytes(X_1:str):int ",     
"STRBytes;",    ""      ]
 [ "str",       "prefix",       "command str.prefix(X_1:str, X_2:int):str ",    
"STRprefix;",   ""      ]
-[ "str",       "prelude",      "command str.prelude():void ",  "strPrelude;",  
""      ]
+[ "str",       "prelude",      "command str.prelude():void ",  "STRprelude;",  
""      ]
 [ "str",       "r_search",     "command str.r_search(X_1:str, X_2:str):int ",  
"STRReverseStrSearch;", ""      ]
 [ "str",       "repeat",       "command str.repeat(X_1:str, X_2:int):str ",    
"STRrepeat;",   ""      ]
 [ "str",       "replace",      "command str.replace(X_1:str, X_2:str, X_3:str, 
X_4:str):str ", "PCREreplace_wrap;",    ""      ]
diff --git a/clients/examples/C/streamcat.c b/clients/examples/C/streamcat.c
--- a/clients/examples/C/streamcat.c
+++ b/clients/examples/C/streamcat.c
@@ -191,8 +191,10 @@ int cmd_read(char *argv[])
                }
                if (wrapper != NULL)
                        s = wrapper(s, parms);
-               if (s == NULL)
-                       croak(2, "Wrapper %s did not return a stream", 
wrapper_name);
+               if (s == NULL || mnstr_errnr(s)) {
+                       char *msg = mnstr_error(s);
+                       croak(2, "Opener %s failed: %s", opener_name, msg ? msg 
: "<no error message>");
+               }
        }
 
        if (out == NULL) {
@@ -300,8 +302,10 @@ int cmd_write(char *argv[])
                }
                if (wrapper != NULL)
                        s = wrapper(s, parms);
-               if (s == NULL)
-                       croak(2, "Wrapper %s did not return a stream", 
wrapper_name);
+               if (s == NULL || mnstr_errnr(s)) {
+                       char *msg = mnstr_error(s);
+                       croak(2, "Opener %s failed: %s", opener_name, msg ? msg 
: "<no error message>");
+               }
        }
 
        if (in == NULL) {
diff --git a/clients/odbc/driver/CMakeLists.txt 
b/clients/odbc/driver/CMakeLists.txt
--- a/clients/odbc/driver/CMakeLists.txt
+++ b/clients/odbc/driver/CMakeLists.txt
@@ -120,7 +120,8 @@ target_link_libraries(MonetODBC
   PRIVATE
   monetdb_config_header
   mutils
-  mapi)
+  mapi
+       ODBC::ODBC)
 
 install(TARGETS
   MonetODBC
diff --git a/cmake/Modules/FindUUID.cmake b/cmake/Modules/FindUUID.cmake
--- a/cmake/Modules/FindUUID.cmake
+++ b/cmake/Modules/FindUUID.cmake
@@ -19,6 +19,8 @@ if(NOT UUID_LIBRARIES)
   set(UUID_LIBRARIES "" CACHE INTERNAL "uuid libraries path")
 endif()
 # Find uuid_generate symbol, which we require and some platforms don't have it
+set(CMAKE_REQUIRED_LIBRARIES ${UUID_LIBRARIES})
+set(CMAKE_REQUIRED_INCLUDES ${UUID_INCLUDE_DIR})
 check_symbol_exists("uuid_generate" "uuid/uuid.h" HAVE_UUID_GENERATE)
 cmake_pop_check_state()
 
diff --git a/cmake/Toolchains/linux-gnu.cmake b/cmake/Toolchains/linux-gnu.cmake
--- a/cmake/Toolchains/linux-gnu.cmake
+++ b/cmake/Toolchains/linux-gnu.cmake
@@ -16,7 +16,6 @@
     #  MT_checkCompilerFlag("-Wdisabled-optimization")
     #  MT_checkCompilerFlag("-Wfloat-equal")
     #  MT_checkCompilerFlag("-Winline")
-    #  MT_checkCompilerFlag("-Wmissing-noreturn")
     #  MT_checkCompilerFlag("-Wpadded")
     #  MT_checkCompilerFlag("-Wredundant-decls")
     #  MT_checkCompilerFlag("-Wshadow")
diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake
--- a/cmake/monetdb-defines.cmake
+++ b/cmake/monetdb-defines.cmake
@@ -43,7 +43,6 @@ function(monetdb_configure_defines)
   check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
   check_include_file("sys/uio.h" HAVE_SYS_UIO_H)
   check_include_file("sys/un.h" HAVE_SYS_UN_H)
-  check_include_file("sys/utime.h" HAVE_SYS_UTIME_H)
   check_include_file("sys/wait.h" HAVE_SYS_WAIT_H)
   check_include_file("unistd.h" HAVE_UNISTD_H)
   check_include_file("uuid/uuid.h" HAVE_UUID_UUID_H)
@@ -116,8 +115,11 @@ function(monetdb_configure_defines)
   check_function_exists("uname" HAVE_UNAME)
   # Some libc versions on Linux distributions don't have it
   check_symbol_exists("semtimedop" "sys/types.h;sys/ipc.h;sys/sem.h" 
HAVE_SEMTIMEDOP)
-  check_function_exists("pthread_kill" HAVE_PTHREAD_KILL)
-  check_function_exists("pthread_sigmask" HAVE_PTHREAD_SIGMASK)
+  cmake_push_check_state()
+    set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
+    check_function_exists("pthread_kill" HAVE_PTHREAD_KILL)
+    check_function_exists("pthread_sigmask" HAVE_PTHREAD_SIGMASK)
+  cmake_pop_check_state()
   check_symbol_exists("regcomp" "regex.h" HAVE_POSIX_REGEX)
 endfunction()
 
@@ -299,7 +301,12 @@ macro(monetdb_configure_sizes)
   check_type_size("long int" SIZEOF_LONG_INT LANGUAGE C)
   check_type_size(double SIZEOF_DOUBLE LANGUAGE C)
   check_type_size(wchar_t SIZEOF_WCHAR_T LANGUAGE C)
+  cmake_push_check_state()
+  if(WIN32)
+    set(CMAKE_EXTRA_INCLUDE_FILES "Ws2tcpip.h")
+  endif()
   check_type_size(socklen_t HAVE_SOCKLEN_T LANGUAGE C)
+  cmake_pop_check_state()
 
   if(INT128)
     cmake_push_check_state()
diff --git a/cmake/monetdb-toolchain.cmake b/cmake/monetdb-toolchain.cmake
--- a/cmake/monetdb-toolchain.cmake
+++ b/cmake/monetdb-toolchain.cmake
@@ -55,6 +55,8 @@ function(monetdb_default_toolchain)
       MT_checkCompilerFlag("-Wduplicated-branches")
       MT_checkCompilerFlag("-Wrestrict")
       MT_checkCompilerFlag("-Wnested-externs")
+      MT_checkCompilerFlag("-Wmissing-noreturn")
+      MT_checkCompilerFlag("-Wuninitialized")
 
       # since we use values of type "int8_t" as subscript,
       # and int8_t may be defined as plain "char", we cannot
diff --git a/common/stream/bz2_stream.c b/common/stream/bz2_stream.c
--- a/common/stream/bz2_stream.c
+++ b/common/stream/bz2_stream.c
@@ -21,7 +21,7 @@ struct inner_state {
        int (*work)(bz_stream *strm, int flush);
        int (*end)(bz_stream *strm);
        bool eof_reached;
-       Bytef buf[64*1024];
+       char buf[64*1024];
 };
 
 
diff --git a/common/stream/iconv_stream.c b/common/stream/iconv_stream.c
--- a/common/stream/iconv_stream.c
+++ b/common/stream/iconv_stream.c
@@ -292,8 +292,10 @@ iconv_rstream(stream *restrict ss, const
        if (ss->isutf8)
                return ss;
        cd = iconv_open("utf-8", charset);
-       if (cd == (iconv_t) -1)
+       if (cd == (iconv_t) -1) {
+               mnstr_set_open_error(name, errno, "iconv_open");
                return NULL;
+       }
        s = ic_open(cd, ss, name);
        if (s == NULL) {
                iconv_close(cd);
@@ -318,8 +320,10 @@ iconv_wstream(stream *restrict ss, const
        if (ss->isutf8)
                return ss;
        cd = iconv_open(charset, "utf-8");
-       if (cd == (iconv_t) -1)
+       if (cd == (iconv_t) -1) {
+               mnstr_set_open_error(name, errno, "iconv_open");
                return NULL;
+       }
        s = ic_open(cd, ss, name);
        if (s == NULL) {
                iconv_close(cd);
@@ -341,7 +345,7 @@ iconv_rstream(stream *restrict ss, const
            strcmp(charset, "UTF8") == 0)
                return ss;
 
-       mnstr_set_open_error(url, 0, "ICONV support has been left out of this 
MonetDB");
+       mnstr_set_open_error(name, 0, "ICONV support has been left out of this 
MonetDB");
        return NULL;
 }
 
@@ -356,7 +360,7 @@ iconv_wstream(stream *restrict ss, const
            strcmp(charset, "UTF8") == 0)
                return ss;
 
-       mnstr_set_open_error(url, 0, "ICONV support has been left out of this 
MonetDB");
+       mnstr_set_open_error(name, 0, "ICONV support has been left out of this 
MonetDB");
        return NULL;
 }
 #endif /* HAVE_ICONV */
diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -86,7 +86,7 @@ get_tl_error_buf(void)
                p = malloc(sizeof(*p));
                if (p == NULL)
                        return NULL;
-               *p = (struct tl_error_buf) { .msg = 0 };
+               *p = (struct tl_error_buf) { .msg = {0} };
                pthread_setspecific(tl_error_key, p);
                struct tl_error_buf *second_attempt = 
pthread_getspecific(tl_error_key);
                assert(p == second_attempt /* maybe mnstr_init has not been 
called? */);
diff --git a/ctest/cmake/detect-bz2.cmake b/ctest/cmake/detect-bz2.cmake
--- a/ctest/cmake/detect-bz2.cmake
+++ b/ctest/cmake/detect-bz2.cmake
@@ -20,19 +20,7 @@ if (${LINUX_DISTRO} STREQUAL "debian")
       variablename BZIP2_FOUND)
   endif()
 elseif (${LINUX_DISTRO} STREQUAL "ubuntu")
-  if(${LINUX_DISTRO_VERSION} STREQUAL "18")
-    assert_package_detected(
-      detect FALSE
-      legacyvariable HAVE_LIBBZ2
-      variablename BZIP2_FOUND)
-  endif()
-  if(${LINUX_DISTRO_VERSION} STREQUAL "19")
-    assert_package_detected(
-      detect FALSE
-      legacyvariable HAVE_LIBBZ2
-      variablename BZIP2_FOUND)
-  endif()
-  if(${LINUX_DISTRO_VERSION} STREQUAL "20")
+  if(${LINUX_DISTRO_VERSION} VERSION_GREATER_EQUAL "18")
     assert_package_detected(
       detect FALSE
       legacyvariable HAVE_LIBBZ2
diff --git a/ctest/cmake/detect-commoncrypto.cmake 
b/ctest/cmake/detect-commoncrypto.cmake
--- a/ctest/cmake/detect-commoncrypto.cmake
+++ b/ctest/cmake/detect-commoncrypto.cmake
@@ -20,19 +20,7 @@ if (${LINUX_DISTRO} STREQUAL "debian")
       variablename COMMONCRYPTO_FOUND)
   endif()
 elseif (${LINUX_DISTRO} STREQUAL "ubuntu")
-  if(${LINUX_DISTRO_VERSION} STREQUAL "18")
-    assert_package_detected(
-      detect FALSE
-      legacyvariable HAVE_COMMONCRYPTO
-      variablename COMMONCRYPTO_FOUND)
-  endif()
-  if(${LINUX_DISTRO_VERSION} STREQUAL "19")
-    assert_package_detected(
-      detect FALSE
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to