Changeset: dd5fbbdd96cd for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dd5fbbdd96cd Removed Files: sql/test/miscellaneous/Tests/simple_plans.stable.out.single Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out gdk/gdk_align.c gdk/gdk_join.c monetdb5/mal/mal_authorize.c monetdb5/modules/kernel/batmmath.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_upgrades.c sql/backends/monet5/vaults/shp/shp.c sql/server/rel_optimizer.c sql/server/sql_parser.y sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-query.stable.out 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/mergetables/Tests/mergequery.stable.out sql/test/sys-schema/Tests/systemfunctions.stable.out sql/test/sys-schema/Tests/systemfunctions.stable.out.int128 Branch: unlock Log Message:
merged with default diffs (truncated from 4853 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -789,3 +789,5 @@ cb4b3f021774b60ffd84c3004d341ec04de736f3 bd91504a03736565fb2dff13cd4c94c738e81aa0 Oct2020_5 cb4b3f021774b60ffd84c3004d341ec04de736f3 Oct2020_release bd91504a03736565fb2dff13cd4c94c738e81aa0 Oct2020_release +ac8254a47e87d0be9df2a623e2c2fcf67c0f982d Oct2020_7 +ac8254a47e87d0be9df2a623e2c2fcf67c0f982d Oct2020_SP1_release diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -183,4 +183,5 @@ if(CMAKE_SUMMARY) monetdb_cmake_summary() endif() + # vim: set ts=2:sw=2:et diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -97,7 +97,7 @@ Group: Applications/Databases License: MPLv2.0 URL: https://www.monetdb.org/ BugURL: https://bugs.monetdb.org/ -Source: https://www.monetdb.org/downloads/sources/Oct2020/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Oct2020-SP1/%{name}-%{version}.tar.bz2 # The Fedora packaging document says we need systemd-rpm-macros for # the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7 @@ -153,6 +153,13 @@ BuildRequires: python3-numpy %endif %if %{with rintegration} BuildRequires: pkgconfig(libR) +%if (0%{?fedora} == 32) +# work around a packaging bug on Fedora 32 (18 Nov 2020) +# problem is things like: +# file /etc/texlive/web2c/updmap.cfg conflicts between attempted installs of texlive-tetex-7:20190410-12.fc32.noarch and texlive-texlive-scripts-7:20200327-16.fc32.noarch +# texlive-tetex is obsoleted by texlive-obsolete +BuildRequires: texlive-obsolete +%endif %endif # if we were to compile with cmocka support (-DWITH_CMOCKA=ON): # BuildRequires: pkgconfig(cmocka) @@ -866,6 +873,22 @@ fi %postun -p /sbin/ldconfig %changelog +* Wed Nov 18 2020 Sjoerd Mullender <sjo...@acm.org> - 11.39.7-20201118 +- Rebuilt. +- BZ#6890: Add support of xz/lzma (de)compression on MS Windows +- BZ#6891: Add support of lz4 (de)compression on MS Windows +- BZ#6971: Parsing table returning function on remote server fails +- BZ#6981: Oct2020: PREPARE DDL statement silently fails +- BZ#6983: monetdb allows to use non-existing optimizer pipe +- BZ#6998: MAL profiler buffer limitations +- BZ#7001: crossproduct generated for a simple (semi-)join +- BZ#7003: Segfault on large chain of constant decimal multiplication +- BZ#7005: Dropping a STREAM TABLE does not remove the associated column + info from sys._columns +- BZ#7010: deallocate <id> results in all prepared statements being + deallocated (not error-related) +- BZ#7011: uuid() called only once when used in projection list + * Tue Oct 13 2020 Sjoerd Mullender <sjo...@acm.org> - 11.39.5-20201013 - Rebuilt. 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 @@ -6108,6 +6108,8 @@ stdout of test 'MAL-signatures` in direc [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl] ", "CMDscience_bat_radians;", "" ] [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:flt]):bat[:flt] ", "CMDscience_bat_radians;", "" ] [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:flt], X_2:bat[:oid]):bat[:flt] ", "CMDscience_bat_radians;", "" ] +[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_1:bat[:int]):bat[:int] ", "CMDscience_bat_randintarg;", "" ] +[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_1:bat[:int], X_2:bat[:oid]):bat[:int] ", "CMDscience_bat_randintarg;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:dbl]):bat[:dbl] ", "CMDscience_bat_sin;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl] ", "CMDscience_bat_sin;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:flt]):bat[:flt] ", "CMDscience_bat_sin;", "" ] @@ -6683,6 +6685,7 @@ stdout of test 'MAL-signatures` in direc [ "batudf", "fuse", "command batudf.fuse(X_1:bat[:sht], X_2:bat[:sht]):bat[:int] ", "UDFBATfuse;", "" ] [ "batudf", "reverse", "command batudf.reverse(X_1:bat[:str]):bat[:str] ", "UDFBATreverse;", "" ] [ "batuuid", "isaUUID", "command batuuid.isaUUID(X_1:bat[:str]):bat[:bit] ", "UUIDisaUUID_bulk;", "" ] +[ "batuuid", "new", "unsafe command batuuid.new(X_1:bat[:int]):bat[:uuid] ", "UUIDgenerateUuidInt_bulk;", "" ] [ "batxml", "attribute", "command batxml.attribute(X_1:str, X_2:bat[:str]):bat[:xml] ", "BATXMLattribute;", "" ] [ "batxml", "comment", "command batxml.comment(X_1:bat[:str]):bat[:xml] ", "BATXMLcomment;", "" ] [ "batxml", "concat", "command batxml.concat(X_1:bat[:xml], X_2:bat[:xml]):bat[:xml] ", "BATXMLconcat;", "" ] 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 @@ -8642,6 +8642,8 @@ stdout of test 'MAL-signatures` in direc [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl] ", "CMDscience_bat_radians;", "" ] [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:flt]):bat[:flt] ", "CMDscience_bat_radians;", "" ] [ "batmmath", "radians", "pattern batmmath.radians(X_1:bat[:flt], X_2:bat[:oid]):bat[:flt] ", "CMDscience_bat_radians;", "" ] +[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_1:bat[:int]):bat[:int] ", "CMDscience_bat_randintarg;", "" ] +[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_1:bat[:int], X_2:bat[:oid]):bat[:int] ", "CMDscience_bat_randintarg;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:dbl]):bat[:dbl] ", "CMDscience_bat_sin;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl] ", "CMDscience_bat_sin;", "" ] [ "batmmath", "sin", "pattern batmmath.sin(X_1:bat[:flt]):bat[:flt] ", "CMDscience_bat_sin;", "" ] @@ -9247,6 +9249,7 @@ stdout of test 'MAL-signatures` in direc [ "batudf", "fuse", "command batudf.fuse(X_1:bat[:sht], X_2:bat[:sht]):bat[:int] ", "UDFBATfuse;", "" ] [ "batudf", "reverse", "command batudf.reverse(X_1:bat[:str]):bat[:str] ", "UDFBATreverse;", "" ] [ "batuuid", "isaUUID", "command batuuid.isaUUID(X_1:bat[:str]):bat[:bit] ", "UUIDisaUUID_bulk;", "" ] +[ "batuuid", "new", "unsafe command batuuid.new(X_1:bat[:int]):bat[:uuid] ", "UUIDgenerateUuidInt_bulk;", "" ] [ "batxml", "attribute", "command batxml.attribute(X_1:str, X_2:bat[:str]):bat[:xml] ", "BATXMLattribute;", "" ] [ "batxml", "comment", "command batxml.comment(X_1:bat[:str]):bat[:xml] ", "BATXMLcomment;", "" ] [ "batxml", "concat", "command batxml.concat(X_1:bat[:xml], X_2:bat[:xml]):bat[:xml] ", "BATXMLconcat;", "" ] diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -304,7 +304,7 @@ int GDKnr_threads; void GDKprepareExit(void); void GDKqsort(void *restrict h, void *restrict t, const void *restrict base, size_t n, int hs, int ts, int tpe, bool reverse, bool nilslast); void *GDKrealloc(void *pold, size_t size) __attribute__((__alloc_size__(2))) __attribute__((__warn_unused_result__)); -gdk_return GDKrebuild_segment_tree(oid ncount, oid data_size, void **segment_tree, oid *tree_capacity, oid **levels_offset, oid *levels_capacity, oid *nlevels); +gdk_return GDKrebuild_segment_tree(oid ncount, oid data_size, void **segment_tree, oid *tree_capacity, oid **levels_offset, oid *nlevels); gdk_return GDKreleasemmap(void *ptr, size_t size, size_t id); gdk_return GDKreleasesem(int sem_id); void GDKreset(int status); diff --git a/clients/mapiclient/ReadlineTools.c b/clients/mapiclient/ReadlineTools.c --- a/clients/mapiclient/ReadlineTools.c +++ b/clients/mapiclient/ReadlineTools.c @@ -88,7 +88,7 @@ sql_tablename_generator(const char *text static char * sql_command_generator(const char *text, int state) { - static int idx, len; + static size_t idx, len; const char *name; if (!state) { @@ -303,20 +303,43 @@ readline_show_error(const char *msg) { #define BUFFER_SIZE 1024 #endif +#ifdef WIN32 +#define unlink _unlink +#endif + static int invoke_editor(int cnt, int key) { - char template[] = "/tmp/mclient_temp_XXXXXX"; char editor_command[BUFFER_SIZE]; char *read_buff = NULL; char *editor = NULL; - FILE *fp; + FILE *fp = NULL; size_t content_len; size_t read_bytes, idx; +#ifdef WIN32 + char *mytemp; + char template[] = "mclient_temp_XXXXXX"; +#else + int mytemp; + char template[] = "/tmp/mclient_temp_XXXXXX"; +#endif (void) cnt; (void) key; - if ((fp = fdopen(mkstemp(template), "r+")) == NULL) { +#ifdef WIN32 + if ((mytemp = _mktemp(template)) == NULL) { +#else + if ((mytemp = mkstemp(template)) == 0) { +#endif + readline_show_error("invoke_editor: Cannot create temp file\n"); + goto bailout; + } + +#ifdef WIN32 + if ((fp = fopen(mytemp, "r+")) == NULL) { +#else + if ((fp = fdopen(mytemp, "r+")) == NULL) { +#endif // Notify the user that we cannot create temp file readline_show_error("invoke_editor: Cannot create temp file\n"); goto bailout; @@ -367,7 +390,7 @@ invoke_editor(int cnt, int key) { } rl_replace_line(read_buff, 0); - rl_point = idx + 1; // place the point one character after the end of the string + rl_point = (int)(idx + 1); // place the point one character after the end of the string free(read_buff); } else { 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 @@ -6,6 +6,10 @@ # Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V. #]] +if (${HAVE_ODBCINST}) + add_compile_definitions(HAVE_SQLGETPRIVATEPROFILESTRING) +endif() + add_library(MonetODBC MODULE) @@ -109,6 +113,7 @@ target_include_directories(MonetODBC PRIVATE $<TARGET_PROPERTY:mapi,INTERFACE_INCLUDE_DIRECTORIES> $<$<BOOL:${ODBC_FOUND}>:${ODBC_INCLUDE_DIRS}> + $<$<BOOL:${ODBCinst_FOUND}>:${ODBCINST_INCLUDE_DIRS}> PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/monetdb>) @@ -121,7 +126,8 @@ target_link_libraries(MonetODBC PRIVATE monetdb_config_header mutils - mapi) + mapi + ${ODBCINST_LIBRARIES}) install(TARGETS MonetODBC diff --git a/cmake/Modules/FindODBCinst.cmake b/cmake/Modules/FindODBCinst.cmake new file mode 100644 --- /dev/null +++ b/cmake/Modules/FindODBCinst.cmake @@ -0,0 +1,38 @@ +#[[ +# 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 http://mozilla.org/MPL/2.0/. +# +# Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V. +#]] + +include(FindPackageHandleStandardArgs) + +if(WIN32) + set(ODBCINST_INCLUDE_DIR "") + set(ODBCINST_LIBRARIES odbccp32.lib legacy_stdio_definitions.lib) + + # ODBCINST_INCLUDE_DIR is empty, so don't require it + find_package_handle_standard_args(ODBCinst DEFAULT_MSG + ODBCINST_LIBRARIES) +else() + find_package(PkgConfig QUIET) + pkg_check_modules(PC_ODBCINST QUIET odbcinst) + + find_path(ODBCINST_INCLUDE_DIR NAMES odbcinst.h + HINTS + ${PC_ODBCINST_INCLUDEDIR} + ${PC_ODBCINST_INCLUDE_DIRS} + ) + + find_library(ODBCINST_LIBRARIES NAMES odbcinst + HINTS + ${PC_ODBCINST_LIBDIR} + ${PC_ODBCINST_LIBRARY_DIRS} + ) + + find_package_handle_standard_args(ODBCinst DEFAULT_MSG + ODBCINST_LIBRARIES ODBCINST_INCLUDE_DIR) +endif() + +mark_as_advanced(ODBCINST_INCLUDE_DIR ODBCINST_LIBRARIES) diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -146,6 +146,7 @@ macro(monetdb_macro_variables) set(HAVE_VALGRIND ${VALGRIND_FOUND}) set(HAVE_NETCDF ${NETCDF_FOUND}) set(HAVE_READLINE ${READLINE_FOUND}) + set(HAVE_ODBCINST ${ODBCinst_FOUND}) set(HAVE_LIBR ${LIBR_FOUND}) set(RHOME "${LIBR_HOME}") set(HAVE_GEOM ${GEOS_FOUND}) diff --git a/cmake/monetdb-findpackages.cmake b/cmake/monetdb-findpackages.cmake --- a/cmake/monetdb-findpackages.cmake +++ b/cmake/monetdb-findpackages.cmake @@ -102,6 +102,7 @@ endif() if(ODBC) find_package(ODBC) + find_package(ODBCinst) endif() if(RINTEGRATION) diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake --- a/cmake/monetdb-versions.cmake +++ b/cmake/monetdb-versions.cmake @@ -50,7 +50,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M # version of the GDK library (subdirectory gdk; also includes # common/options and common/utils) set(GDK_VERSION_CURRENT "21") -set(GDK_VERSION_REVISION "2") +set(GDK_VERSION_REVISION "3") set(GDK_VERSION_AGE "0") math(EXPR GDK_VERSION_MAJOR "${GDK_VERSION_CURRENT} - ${GDK_VERSION_AGE}") set(GDK_VERSION "${GDK_VERSION_MAJOR}.${GDK_VERSION_AGE}.${GDK_VERSION_REVISION}") @@ -64,21 +64,21 @@ set(MAPI_VERSION "${MAPI_VERSION_MAJOR}. # version of the MONETDB5 library (subdirectory monetdb5, not including extras or sql) set(MONETDB5_VERSION_CURRENT "30") _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list