MonetDB: mbedded - add initial support for hge in the embedded api
Changeset: a50693431f8c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a50693431f8c Modified Files: ctest/tools/embedded/example2.c tools/embedded/monetdb_embedded.c tools/embedded/monetdb_embedded.h Branch: mbedded Log Message: add initial support for hge in the embedded api diffs (174 lines): diff --git a/ctest/tools/embedded/example2.c b/ctest/tools/embedded/example2.c --- a/ctest/tools/embedded/example2.c +++ b/ctest/tools/embedded/example2.c @@ -25,11 +25,17 @@ main(void) error(err) if ((err = monetdb_connect(&conn)) != NULL) error(err) - if ((err = monetdb_query(conn, "CREATE TABLE test (b bool, t tinyint, s smallint, x integer, l bigint, f float, d double, y string)", NULL, NULL, NULL)) != NULL) + if ((err = monetdb_query(conn, "CREATE TABLE test (b bool, t tinyint, s smallint, x integer, l bigint, " +#if HAVE_HGE + "h hugeint, " +#else + "h bigint, " +#endif + "f float, d double, y string)", NULL, NULL, NULL)) != NULL) error(err) - if ((err = monetdb_query(conn, "INSERT INTO test VALUES (TRUE, 42, 42, 42, 42, 42.42, 42.42, 'Hello'), (NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'World')", NULL, NULL, NULL)) != NULL) + if ((err = monetdb_query(conn, "INSERT INTO test VALUES (TRUE, 42, 42, 42, 42, 42, 42.42, 42.42, 'Hello'), (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'World')", NULL, NULL, NULL)) != NULL) error(err) - if ((err = monetdb_query(conn, "SELECT b, t, s, x, l, f, d, y FROM test; ", &result, NULL, NULL)) != NULL) + if ((err = monetdb_query(conn, "SELECT b, t, s, x, l, h, f, d, y FROM test; ", &result, NULL, NULL)) != NULL) error(err) fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n", result->ncols, result->nrows); @@ -84,6 +90,17 @@ main(void) } break; } +#if HAVE_HGE + case monetdb_int128_t: { + monetdb_column_int128_t * col = (monetdb_column_int128_t *) rcol; + if (col->data[r] == col->null_value) { + printf("NULL"); + } else { + printf("%" PRId64 "%" PRId64, (int64_t)(col->data[r]>>64), (int64_t)(col->data[r])); + } + break; + } +#endif case monetdb_float: { monetdb_column_float * col = (monetdb_column_float *) rcol; if (col->data[r] == col->null_value) { diff --git a/tools/embedded/monetdb_embedded.c b/tools/embedded/monetdb_embedded.c --- a/tools/embedded/monetdb_embedded.c +++ b/tools/embedded/monetdb_embedded.c @@ -792,11 +792,18 @@ monetdb_shutdown(void) GENERATE_BASE_HEADERS(tpe, tpename); \ static int tpename##_is_null(tpe value) { return value == mname##_nil; } +#ifdef bool +#undef bool +#endif + GENERATE_BASE_FUNCTIONS(int8_t, bool, bit) GENERATE_BASE_FUNCTIONS(int8_t, int8_t, bte) GENERATE_BASE_FUNCTIONS(int16_t, int16_t, sht) GENERATE_BASE_FUNCTIONS(int32_t, int32_t, int) GENERATE_BASE_FUNCTIONS(int64_t, int64_t, lng) +#if HAVE_HGE +GENERATE_BASE_FUNCTIONS(__int128, int128_t, hge) +#endif GENERATE_BASE_FUNCTIONS(size_t, size_t, oid) GENERATE_BASE_FUNCTIONS(float, float, flt) @@ -809,32 +816,32 @@ GENERATE_BASE_HEADERS(monetdb_data_date, GENERATE_BASE_HEADERS(monetdb_data_time, time); GENERATE_BASE_HEADERS(monetdb_data_timestamp, timestamp); -#define GENERATE_BAT_INPUT_BASE(tpe) \ +#define GENERATE_BAT_INPUT_BASE(tpe) \ monetdb_column_##tpe *bat_data = GDKzalloc(sizeof(monetdb_column_##tpe)); \ if (!bat_data) { \ msg = createException(MAL, "embedded.monetdb_result_fetch", MAL_MALLOC_FAIL); \ - goto cleanup; \ + goto cleanup; \ } \ bat_data->type = monetdb_##tpe; \ bat_data->is_null = tpe##_is_null; \ bat_data->scale = pow(10, sqltpe->scale); \ column_result = (monetdb_column*) bat_data; -#define GENERATE_BAT_INPUT(b, tpe, mtype) \ +#define GENERATE_BA
MonetDB: mbedded - add (tiny) example for temporal values
Changeset: a8c658fb035b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a8c658fb035b Added Files: ctest/tools/embedded/example_temporal.c Modified Files: ctest/tools/embedded/CMakeLists.txt Branch: mbedded Log Message: add (tiny) example for temporal values diffs (134 lines): diff --git a/ctest/tools/embedded/CMakeLists.txt b/ctest/tools/embedded/CMakeLists.txt --- a/ctest/tools/embedded/CMakeLists.txt +++ b/ctest/tools/embedded/CMakeLists.txt @@ -29,3 +29,15 @@ target_link_libraries(example2 #sql ) add_test(run_example2 example2) + +add_executable(example_temporal example_temporal.c) +target_link_libraries(example_temporal + PRIVATE +monetdb_config_header +embedded +sqlinclude +gdk +mapi +#sql +) +add_test(run_example_temporal example_temporal) diff --git a/ctest/tools/embedded/example_temporal.c b/ctest/tools/embedded/example_temporal.c new file mode 100644 --- /dev/null +++ b/ctest/tools/embedded/example_temporal.c @@ -0,0 +1,110 @@ +/* + * 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 "monetdb_embedded.h" +#include +#include +#include + +#define error(msg) {fprintf(stderr, "Failure: %s\n", msg); return -1;} + +#define date_eq(d1, d2) (d1.year == d2.year && d1.month == d2.month && d1.day == d2.day) +#define time_eq(t1, t2) (t1.hours == t2.hours && t1.minutes == t2.minutes && t1.seconds == t2.seconds && t1.ms == t2.ms) + +int +main(void) +{ + char* err = NULL; + monetdb_connection conn = NULL; + monetdb_result* result = NULL; + + // first argument is a string for the db directory or NULL for in-memory mode + if ((err = monetdb_startup(NULL, 0)) != NULL) + error(err) + if ((err = monetdb_connect(&conn)) != NULL) + error(err) + if ((err = monetdb_query(conn, "CREATE TABLE test (x integer, d date, t time, ts timestamp, y string)", NULL, NULL, NULL)) != NULL) + error(err) + if ((err = monetdb_query(conn, "INSERT INTO test VALUES (42, '2020-1-1', '13:13:30', '2020-1-1 13:13:30', 'Hello'), (NULL, NULL, NULL, NULL, 'World')", NULL, NULL, NULL)) != NULL) + error(err) + if ((err = monetdb_query(conn, "SELECT x, d, t, ts, y FROM test; ", &result, NULL, NULL)) != NULL) + error(err) + + fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n", result->ncols, result->nrows); + for (int64_t r = 0; r < result->nrows; r++) { + for (size_t c = 0; c < result->ncols; c++) { + monetdb_column* rcol; + if ((err = monetdb_result_fetch(conn, &rcol, result, c)) != NULL) + error(err) + switch (rcol->type) { + case monetdb_int32_t: { + monetdb_column_int32_t * col = (monetdb_column_int32_t *) rcol; + if (col->data[r] == col->null_value) { + printf("NULL"); + } else { + printf("%d", col->data[r]); + } + break; + } + case monetdb_date: { + monetdb_column_date * col = (monetdb_column_date *) rcol; + if (date_eq(col->data[r], col->null_value)) { + printf("NULL"); + } else { + printf("%d-%d-%d", col->data[r].year, col->data[r].month, col->data[r].day); + } + break; + } + case monetdb_time: { + monetdb_column_time * col = (monetdb_column_time *) rcol; + if (time_eq(col->data[r], col->null_value)) { + printf("NULL"); + } else { + printf("%d:%d:%d.%d", col->data[r].hours, col->data[r].minutes, col->data[r].seconds, col->data[r].ms); + } + break; + } + case monetdb_timestamp: { + monetdb_column_timestamp * col = (monetdb_column_timestamp *) rcol; +
MonetDB: mbedded - fedora 31 has snappy
Changeset: 050df76abfe0 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=050df76abfe0 Modified Files: ctest/cmake/detect-snappy.cmake Branch: mbedded Log Message: fedora 31 has snappy diffs (14 lines): diff --git a/ctest/cmake/detect-snappy.cmake b/ctest/cmake/detect-snappy.cmake --- a/ctest/cmake/detect-snappy.cmake +++ b/ctest/cmake/detect-snappy.cmake @@ -38,8 +38,8 @@ elseif(${LINUX_DISTRO} STREQUAL "fedora" set(UNDETECT "0") endif() if(${LINUX_DISTRO_VERSION} STREQUAL "31") -set(DETECT "1") -set(UNDETECT "0") +set(DETECT "0") +set(UNDETECT "1") endif() if(${LINUX_DISTRO_VERSION} STREQUAL "32") set(DETECT "1") ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: unlock - fix unused variable
Changeset: a364a797bf5c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a364a797bf5c Modified Files: sql/storage/bat/bat_storage.c Branch: unlock Log Message: fix unused variable diffs (11 lines): diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -1644,6 +1644,7 @@ tr_update_cs( sql_trans *tr, column_stor #endif int cleared = ccs->cleared; + (void)cleared; if (ccs->cleared) { ccs->cleared = 0; assert(ccs->bid != ocs->bid); ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: unlock - more windows compile fixes
Changeset: 2211c583112d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2211c583112d Modified Files: gdk/gdk_logger.c Branch: unlock Log Message: more windows compile fixes diffs (12 lines): diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c --- a/gdk/gdk_logger.c +++ b/gdk/gdk_logger.c @@ -1966,7 +1966,7 @@ static gdk_return if (sliced) offset = 0; if (b->ttype < TYPE_str && !isVIEW(b)) { - const void *t = BUNtail(bi, offset); + const void *t = BUNtail(bi, (BUN)offset); ok = wt(t, lg->output_log, (size_t)nr); } else { ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: mbedded - small fix of Snappy detection
Changeset: 1bfb7eb1724d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1bfb7eb1724d Modified Files: cmake/Modules/FindSnappy.cmake cmake/monetdb-findpackages.cmake common/stream/CMakeLists.txt Branch: mbedded Log Message: small fix of Snappy detection diffs (36 lines): diff --git a/cmake/Modules/FindSnappy.cmake b/cmake/Modules/FindSnappy.cmake --- a/cmake/Modules/FindSnappy.cmake +++ b/cmake/Modules/FindSnappy.cmake @@ -9,7 +9,7 @@ find_path(SNAPPY_INCLUDE_DIR NAMES snapp find_library(SNAPPY_LIBRARIES NAMES snappy) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SNAPPY +find_package_handle_standard_args(Snappy DEFAULT_MSG SNAPPY_LIBRARIES SNAPPY_INCLUDE_DIR) diff --git a/cmake/monetdb-findpackages.cmake b/cmake/monetdb-findpackages.cmake --- a/cmake/monetdb-findpackages.cmake +++ b/cmake/monetdb-findpackages.cmake @@ -80,7 +80,7 @@ if(WITH_PROJ) endif() if(WITH_SNAPPY) - find_package(Snappy) + find_package(Snappy) endif() if(WITH_UUID) diff --git a/common/stream/CMakeLists.txt b/common/stream/CMakeLists.txt --- a/common/stream/CMakeLists.txt +++ b/common/stream/CMakeLists.txt @@ -41,7 +41,7 @@ target_link_libraries(stream $<$:CURL::libcurl> $<$:LibLZMA::LibLZMA> $<$:LZ4::LZ4> - $<$:Snappy::snappy> + $<$:SNAPPY::SNAPPY> $<$:Iconv::Iconv> PRIVATE matomic ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: mbedded - cleanup cmake code, add tests and fix bugs
Changeset: 063b05bb3840 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=063b05bb3840 Added Files: ctest/cmake/detect-fits.cmake ctest/cmake/detect-libr.cmake ctest/cmake/detect-snappy.cmake ctest/cmake/set-cmake-vars.cmake ctest/cmake/test_detect_fits.c.in ctest/cmake/test_detect_libr.c.in ctest/cmake/test_detect_snappy.c.in Modified Files: cmake/monetdb-defines.cmake cmake/monetdb-findpackages.cmake cmake/monetdb-functions.cmake cmake/monetdb-options.cmake ctest/cmake/CMakeLists.txt ctest/cmake/detect-curl.cmake monetdb5/extras/rapi/CMakeLists.txt monetdb_config.h.in monetdb_config_win32.h.in sql/backends/monet5/UDF/capi/CMakeLists.txt Branch: mbedded Log Message: cleanup cmake code, add tests and fix bugs diffs (truncated from 577 to 300 lines): diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -137,10 +137,13 @@ macro(monetdb_macro_variables) set(HAVE_LIBLZ4 ${LZ4_FOUND}) set(HAVE_PROJ ${PROJ_FOUND}) set(HAVE_SNAPPY ${SNAPPY_FOUND}) + set(HAVE_FITS ${CFITSIO_FOUND}) set(HAVE_UUID ${HAVE_UUID_GENERATE}) set(HAVE_VALGRIND ${VALGRIND_FOUND}) set(HAVE_NETCDF ${NETCDF_FOUND}) set(HAVE_READLINE ${READLINE_FOUND}) + set(HAVE_LIBR ${LIBR_FOUND}) + set(RHOME "${LIBR_HOME}") set(SOCKET_LIBRARIES "") if (WIN32) @@ -153,6 +156,11 @@ macro(monetdb_macro_variables) if(WIN_GETADDRINFO) set(HAVE_GETADDRINFO 1) endif() + set(HAVE_CUDF +${CINTEGRATION} +CACHE +INTERNAL +"C udfs extension is available") set(DIR_SEP "/") set(PATH_SEP ":") diff --git a/cmake/monetdb-findpackages.cmake b/cmake/monetdb-findpackages.cmake --- a/cmake/monetdb-findpackages.cmake +++ b/cmake/monetdb-findpackages.cmake @@ -64,7 +64,7 @@ if(WITH_BZ2) endif() if(WITH_CURL) - find_package(CURL CONFIG) + find_package(CURL) endif() if(WITH_ZLIB) @@ -80,7 +80,7 @@ if(WITH_PROJ) endif() if(WITH_SNAPPY) - find_package(Snappy CONFIG) + find_package(Snappy) endif() if(WITH_UUID) @@ -99,10 +99,6 @@ if(FITS) find_package(CFitsIO) endif() -if(CINTEGRATION) - set(HAVE_CUDF ON CACHE INTERNAL "C udfs extension is available") -endif() - if(NETCDF) find_package(NetCDF) endif() @@ -150,8 +146,6 @@ endif(ODBC) if(RINTEGRATION) find_package(LibR) - set(HAVE_LIBR "${LIBR_FOUND}") - set(RHOME "${LIBR_HOME}") endif() # vim: set ts=2:sw=2:et diff --git a/cmake/monetdb-functions.cmake b/cmake/monetdb-functions.cmake --- a/cmake/monetdb-functions.cmake +++ b/cmake/monetdb-functions.cmake @@ -131,12 +131,14 @@ function(monetdb_cmake_summary) message(STATUS "Zlib library: ${ZLIB_FOUND}") message(STATUS "Lz4 library: ${LZ4_FOUND}") message(STATUS "Proj library: ${PROJ_FOUND}") + message(STATUS "Snappy library: ${SNAPPY_FOUND}") message(STATUS "Geos library: ${GEOS_FOUND}") message(STATUS "Gdal library: ${GDAL_FOUND}") message(STATUS "Cfitsio library: ${CFITSIO_FOUND}") message(STATUS "Kvm library: ${KVM_FOUND}") message(STATUS "Netcdf library: ${NETCDF_FOUND}") message(STATUS "Readline library: ${READLINE_FOUND}") + message(STATUS "R library: ${LIBR_FOUND}") message(STATUS "-") message(STATUS "") endfunction() diff --git a/cmake/monetdb-options.cmake b/cmake/monetdb-options.cmake --- a/cmake/monetdb-options.cmake +++ b/cmake/monetdb-options.cmake @@ -69,8 +69,6 @@ cmake_dependent_option(SHP GEOM ON) -set(ENABLE_MAPI "YES" CACHE STRING "Enable MAPI (default=YES)") # Check with HAVE_MAPI - option(SANITIZER "Enable support for the GCC address sanitizer (default=OFF)" OFF) diff --git a/ctest/cmake/CMakeLists.txt b/ctest/cmake/CMakeLists.txt --- a/ctest/cmake/CMakeLists.txt +++ b/ctest/cmake/CMakeLists.txt @@ -30,6 +30,9 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/dete include(${CMAKE_CURRENT_SOURCE_DIR}/detect-proj.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/detect-netcdf.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/detect-readline.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/detect-libr.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/detect-snappy.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/detect-fits.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) @@ -38,3 +41,4 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/dete include(${CMAKE_CURRENT_SOURCE_DIR}/detect-pthreadsig.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/set-dir-vars.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/set-cmake-vars.cmake) diff --git a/ctest/cmake/detect-curl.cmake b/ctest/cmake/detect-curl.cmake --- a/ctest/cmake/detect-curl.cmake +++ b/ctest/cmake/detect-curl.cmake @@ -30,16 +30,16 @@ elseif (${LINUX_DISTRO} STREQUAL "ubun
MonetDB: mbedded - Apple Darwin 19 no longer supports CommonCryp...
Changeset: 4f3fea4d4003 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4f3fea4d4003 Modified Files: cmake/monetdb-findpackages.cmake tools/merovingian/utils/CMakeLists.txt Branch: mbedded Log Message: Apple Darwin 19 no longer supports CommonCrypto, ie lets use a brew installed openssl diffs (25 lines): diff --git a/cmake/monetdb-findpackages.cmake b/cmake/monetdb-findpackages.cmake --- a/cmake/monetdb-findpackages.cmake +++ b/cmake/monetdb-findpackages.cmake @@ -53,7 +53,7 @@ if(NOT PCRE_FOUND AND NOT HAVE_POSIX_REG message(FATAL_ERROR "PCRE library or GNU regex library not found but required for MonetDB5") endif() -if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") +if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" AND ${CMAKE_SYSTEM_VERSION} VERSION_LESS "19.0.0") find_package(CommonCrypto) else() find_package(OpenSSL) diff --git a/tools/merovingian/utils/CMakeLists.txt b/tools/merovingian/utils/CMakeLists.txt --- a/tools/merovingian/utils/CMakeLists.txt +++ b/tools/merovingian/utils/CMakeLists.txt @@ -25,7 +25,8 @@ target_link_libraries(meroutil PRIVATE monetdb_config_header mutils - stream) + stream + $<$:OpenSSL::Crypto>) install(TARGETS meroutil ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: mbedded - more code reorganization
Changeset: f718f3f0bf91 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f718f3f0bf91 Modified Files: CMakeLists.txt cmake/monetdb-defines.cmake cmake/monetdb-findpackages.cmake monetdb_config.h.in monetdb_config_win32.h.in Branch: mbedded Log Message: more code reorganization diffs (truncated from 384 to 300 lines): diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,9 +44,13 @@ include(TestBigEndian REQUIRED) if(WIN32) set(CMAKE_REQUIRED_LIBRARIES ws2_32.lib shell32.lib advapi32.lib) endif() + # Include MonetDB specific functions include(monetdb-functions) include(monetdb-findpackages) +include(monetdb-toolchain) +monetdb_default_toolchain() + include(monetdb-defines) monetdb_hg_revision() @@ -58,66 +62,27 @@ endif() monetdb_configure_defines() -# On C99, but we have to calculate the size -check_type_size(size_t SIZEOF_SIZE_T LANGUAGE C) -set(SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P}) if(HAVE_NETDB_H) set(CMAKE_EXTRA_INCLUDE_FILES "netdb.h" "unistd.h") endif() if(HAVE_WINSOCK_H) set(CMAKE_EXTRA_INCLUDE_FILES "winsock.h") endif() -check_type_size(socklen_t HAVE_SOCKLEN_T LANGUAGE C) - set(CMAKE_REQUIRED_INCLUDES "/usr/include") monetdb_configure_crypto() - -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) -check_type_size(long SIZEOF_LONG LANGUAGE C) -check_type_size(wchar_t SIZEOF_WCHAR_T LANGUAGE C) - -if(MSVC) - set(_Noreturn "__declspec(noreturn)") - # C99 feature not present in MSVC - set(restrict "__restrict") - # C99 feature only available on C++ compiler in MSVC - # https://docs.microsoft.com/en-us/cpp/cpp/inline-functions-cpp?view=vs-2015 - set(inline "__inline") -endif() +monetdb_configure_sizes() include(GNUInstallDirs) # Define the macro variables after configuring the install directories. # Some variables define additional installation settings. monetdb_macro_variables() +monetdb_configure_misc() # Define custom target after the install directories variables. # Some custom target will need these setting. include(monetdb-custom-targets) -# Used for installing testing python module (don't pass a location, else we need to strip this again) -execute_process(COMMAND "${Python3_EXECUTABLE}" "-c" "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(0,0,''))" - RESULT_VARIABLE PY3_LIBDIR_CODE - OUTPUT_VARIABLE PYTHON3_SITEDIR - OUTPUT_STRIP_TRAILING_WHITESPACE) -if (PY3_LIBDIR_CODE) - message(WARNING "Could not determine MonetDB Python3 site-packages instalation directory") -endif() -set(PYTHON3_LIBDIR "${PYTHON3_SITEDIR}") -set(PYTHON "${Python3_EXECUTABLE}") - SET(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") @@ -133,21 +98,6 @@ set(PROGRAM_PERMISSIONS_DEFAULT WORLD_READ WORLD_EXECUTE) -# Set host information -string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" CMAKE_SYSTEM_PROCESSOR_LOWER) -string(TOLOWER "${CMAKE_SYSTEM_NAME}" CMAKE_SYSTEM_NAME_LOWER) -string(TOLOWER "${CMAKE_C_COMPILER_ID}" CMAKE_C_COMPILER_ID_LOWER) -set("HOST" "${CMAKE_SYSTEM_PROCESSOR_LOWER}-pc-${CMAKE_SYSTEM_NAME_LOWER}-${CMAKE_C_COMPILER_ID_LOWER}") - -# Password hash algorithm -set(PASSWORD_BACKEND "SHA512" - CACHE STRING - "Password hash algorithm, one of MD5, SHA1, RIPEMD160, SHA224, SHA256, SHA384, SHA512, defaults to SHA512") - -if(NOT ${PASSWORD_BACKEND} MATCHES "^MD5|SHA1|RIPEMD160|SHA224|SHA256|SHA384|SHA512$") - message(FATAL_ERROR "PASSWORD_BACKEND invalid, choose one of MD5, SHA1, RIPEMD160, SHA224, SHA256, SHA384, SHA512") -endif() - find_program(BASH NAMES bash DOC "bash interpreter fullpath") if(WIN32) diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -234,3 +234,80 @@ macro(monetdb_configure_crypto) endif() cmake_pop_check_state() endmacro() + +macro(monetdb_configure_sizes) + # On C99, but we have to calculate the size + 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) +
MonetDB: unlock - fix problems with compilation on windows and mac
Changeset: f4c3b45ae197 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f4c3b45ae197 Modified Files: gdk/gdk_logger.c sql/storage/bat/bat_storage.c sql/storage/store.c Branch: unlock Log Message: fix problems with compilation on windows and mac diffs (37 lines): diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c --- a/gdk/gdk_logger.c +++ b/gdk/gdk_logger.c @@ -1970,8 +1970,8 @@ static gdk_return ok = wt(t, lg->output_log, (size_t)nr); } else { - BUN end = offset+nr; - for (p = offset; p < end && ok == GDK_SUCCEED; p++) { + BUN end = (BUN)(offset+nr); + for (p = (BUN)offset; p < end && ok == GDK_SUCCEED; p++) { const void *t = BUNtail(bi, p); ok = wt(t, lg->output_log, 1); diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -1625,6 +1625,7 @@ tr_update_cs( sql_trans *tr, column_stor int ok = LOG_OK; BAT *cur = NULL; + (void)tr; assert(ATOMIC_GET(&store_nr_active)==1); assert (ocs->bid != 0 || tr != gtrans); diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -2308,8 +2308,6 @@ store_manager(void) continue; } - continue; - MT_thread_setworking("flushing"); res = store_apply_deltas(); ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: mbedded - merged
Changeset: e0a47d761f64 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e0a47d761f64 Modified Files: cmake/monetdb-defines.cmake monetdb_config.h.in monetdb_config_win32.h.in Branch: mbedded Log Message: merged diffs (truncated from 437 to 300 lines): diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -11,6 +11,7 @@ # additional variables, for example for legacy defines, do this # in the "monetdb_macro_variables" macro. function(monetdb_configure_defines) + find_path(HAVE_SYS_TYPES_H "sys/types.h") find_path(HAVE_DISPATCH_DISPATCH_H "dispatch/dispatch.h") find_path(HAVE_DLFCN_H "dlfcn.h") find_path(HAVE_FCNTL_H "fcntl.h") @@ -31,7 +32,7 @@ function(monetdb_configure_defines) find_path(HAVE_STROPTS_H "stropts.h") find_path(HAVE_SYS_FILE_H "sys/file.h") find_path(HAVE_SYS_IOCTL_H "sys/ioctl.h") - find_path(HAVE_SYS_IOCTL_H "sys/sysctl.h") + find_path(HAVE_SYS_SYSCTL_H "sys/sysctl.h") find_path(HAVE_SYS_MMAN_H "sys/mman.h") find_path(HAVE_SYS_PARAM_H "sys/param.h") find_path(HAVE_SYS_RESOURCE_H "sys/resource.h") @@ -44,7 +45,6 @@ function(monetdb_configure_defines) find_path(HAVE_UNISTD_H "unistd.h") find_path(HAVE_UUID_UUID_H "uuid/uuid.h") find_path(HAVE_WINSOCK_H "winsock2.h") - find_path(HAVE_SYS_TYPES_H "sys/types.h") find_path(HAVE_SEMAPHORE_H "semaphore.h") find_path(HAVE_GETOPT_H "getopt.h") diff --git a/monetdb_config.h.in b/monetdb_config.h.in --- a/monetdb_config.h.in +++ b/monetdb_config.h.in @@ -26,7 +26,7 @@ #include #include -#cmakedefine HAVE_DIRENT_H @HAVE_DIRENT_H@ +// Section: monetdb configure defines #cmakedefine HAVE_DISPATCH_DISPATCH_H @HAVE_DISPATCH_DISPATCH_H@ #cmakedefine HAVE_DLFCN_H @HAVE_DLFCN_H@ #cmakedefine HAVE_FCNTL_H @HAVE_FCNTL_H@ @@ -52,9 +52,7 @@ #cmakedefine HAVE_SYS_MMAN_H @HAVE_SYS_MMAN_H@ #cmakedefine HAVE_SYS_PARAM_H @HAVE_SYS_PARAM_H@ #cmakedefine HAVE_SYS_RESOURCE_H @HAVE_SYS_RESOURCE_H@ -#cmakedefine HAVE_SYS_SOCKET_H @HAVE_SYS_SOCKET_H@ #cmakedefine HAVE_SYS_TIME_H @HAVE_SYS_TIME_H@ -#cmakedefine HAVE_GETTIMEOFDAY @HAVE_SYS_TIME_H@ #cmakedefine HAVE_SYS_TIMES_H @HAVE_SYS_TIMES_H@ #cmakedefine HAVE_SYS_UIO_H @HAVE_SYS_UIO_H@ #cmakedefine HAVE_SYS_UN_H @HAVE_SYS_UN_H@ @@ -64,49 +62,18 @@ #cmakedefine HAVE_UNISTD_H 1 #cmakedefine HAVE_UUID_UUID_H @HAVE_UUID_UUID_H@ #cmakedefine HAVE_WINSOCK_H @HAVE_WINSOCK_H@ - #cmakedefine HAVE_SEMAPHORE_H @HAVE_SEMAPHORE_H@ - -#cmakedefine HAVE_SYS_STAT_H @HAVE_SYS_STAT_H@ -#cmakedefine HAVE_GETADDRINFO @HAVE_GETADDRINFO@ +#cmakedefine HAVE_GETOPT_H @HAVE_GETOPT_H@ -#define ICONV_CONST -#cmakedefine HAVE_PTHREAD_KILL @HAVE_PTHREAD_KILL@ -#cmakedefine HAVE_PTHREAD_SIGMASK @HAVE_PTHREAD_SIGMASK@ -#cmakedefine HAVE_LOCALTIME_R @HAVE_LOCALTIME_R@ -#cmakedefine HAVE_STRERROR_R @HAVE_STRERROR_R@ - -// Section: monetdb configure defines #cmakedefine HAVE_STDATOMIC_H @HAVE_STDATOMIC_H@ -#cmakedefine HAVE_GETOPT_H @HAVE_GETOPT_H@ -#cmakedefine HAVE_GETOPT @HAVE_GETOPT@ -// End Section: monetdb configure defines -// Section: monetdb macro variables -#cmakedefine HAVE_ICONV @HAVE_ICONV@ -#cmakedefine HAVE_PTHREAD_H @HAVE_PTHREAD_H@ -#cmakedefine HAVE_LIBPCRE @HAVE_LIBPCRE@ -#cmakedefine HAVE_OPENSSL @HAVE_OPENSSL@ -#cmakedefine HAVE_COMMONCRYPTO @HAVE_COMMONCRYPTO@ -#cmakedefine HAVE_LIBBZ2 @HAVE_LIBBZ2@ -#cmakedefine HAVE_CURL @HAVE_CURL@ -#cmakedefine HAVE_LIBLZMA @HAVE_LIBLZMA@ -#cmakedefine HAVE_LIBXML @HAVE_LIBXML@ -#cmakedefine HAVE_LIBZ @HAVE_LIBZ@ -#cmakedefine HAVE_LIBLZ4 @HAVE_LIBLZ4@ -#cmakedefine HAVE_PROJ @HAVE_PROJ@ -#cmakedefine HAVE_SNAPPY @HAVE_SNAPPY@ -#cmakedefine HAVE_UUID @HAVE_UUID@ -#cmakedefine HAVE_VALGRIND @HAVE_VALGRIND@ -#cmakedefine HAVE_NETCDF @HAVE_NETCDF@ -#cmakedefine HAVE_READLINE @HAVE_READLINE@ -// End Section: monetdb macro variables - -#define FLEXIBLE_ARRAY_MEMBER - +#cmakedefine HAVE_DIRENT_H @HAVE_DIRENT_H@ +#cmakedefine HAVE_SYS_SOCKET_H @HAVE_SYS_SOCKET_H@ +#cmakedefine HAVE_GETTIMEOFDAY @HAVE_SYS_TIME_H@ +#cmakedefine HAVE_SYS_STAT_H @HAVE_SYS_STAT_H@ +#cmakedefine HAVE_FDATASYNC @HAVE_FDATASYNC@ #cmakedefine HAVE_ACCEPT4 @HAVE_ACCEPT4@ #cmakedefine HAVE_ASCTIME_R @HAVE_ASCTIME_R@ -#define HAVE_CBRT 1 #cmakedefine HAVE_CLOCK_GETTIME @HAVE_CLOCK_GETTIME@ #cmakedefine HAVE_CTIME_R @HAVE_CTIME_R@ #cmakedefine HAVE_DISPATCH_SEMAPHORE_CREATE @HAVE_DISPATCH_SEMAPHORE_CREATE@ @@ -123,6 +90,7 @@ #cmakedefine HAVE_GETUID @HAVE_GETUID@ #cmakedefine HAVE_GMTIME_R @HAVE_GMTIME_R@ #cmakedefine HAVE_LOCALTIME_R @HAVE_LOCALTIME_R@ +#cmakedefine HAVE_STRERROR_R @HAVE_STRERROR_R@ #cmakedefine HAVE_LOCKF @HAVE_LOCKF@ #cmakedefine HAVE_MADVISE @HAVE_MADVISE@ #cmakedefine HAVE_MREMAP @HAVE_MREMAP@ @@ -148,10 +116,36 @@ #cmakedefine HAVE_TASK_INFO @HAVE_TASK_INFO@ #cmakedefine HAVE_TIMES @HAVE_TIMES@ #cmakedefine HAVE_UNAME @HAVE_UNAME@ +// #cmakedefine HAVE_SEMTIMEDOP +#cmakedefine HAVE_PT
MonetDB: mbedded - try to fix windows compilation
Changeset: c63ed45cff4d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c63ed45cff4d Modified Files: ctest/tools/embedded/example2.c Branch: mbedded Log Message: try to fix windows compilation diffs (12 lines): diff --git a/ctest/tools/embedded/example2.c b/ctest/tools/embedded/example2.c --- a/ctest/tools/embedded/example2.c +++ b/ctest/tools/embedded/example2.c @@ -80,7 +80,7 @@ main(void) if (col->data[r] == col->null_value) { printf("NULL"); } else { - printf("%ld", col->data[r]); + printf("%" PRId64, col->data[r]); } break; } ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: mbedded - reorganize code, match order of detection and...
Changeset: 03669e73a54b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=03669e73a54b Modified Files: cmake/monetdb-defines.cmake monetdb_config.h.in monetdb_config_win32.h.in Branch: mbedded Log Message: reorganize code, match order of detection and definition diffs (truncated from 437 to 300 lines): diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -11,6 +11,7 @@ # additional variables, for example for legacy defines, do this # in the "monetdb_macro_variables" macro. function(monetdb_configure_defines) + find_path(HAVE_SYS_TYPES_H "sys/types.h") find_path(HAVE_DISPATCH_DISPATCH_H "dispatch/dispatch.h") find_path(HAVE_DLFCN_H "dlfcn.h") find_path(HAVE_FCNTL_H "fcntl.h") @@ -31,7 +32,7 @@ function(monetdb_configure_defines) find_path(HAVE_STROPTS_H "stropts.h") find_path(HAVE_SYS_FILE_H "sys/file.h") find_path(HAVE_SYS_IOCTL_H "sys/ioctl.h") - find_path(HAVE_SYS_IOCTL_H "sys/sysctl.h") + find_path(HAVE_SYS_SYSCTL_H "sys/sysctl.h") find_path(HAVE_SYS_MMAN_H "sys/mman.h") find_path(HAVE_SYS_PARAM_H "sys/param.h") find_path(HAVE_SYS_RESOURCE_H "sys/resource.h") @@ -44,7 +45,6 @@ function(monetdb_configure_defines) find_path(HAVE_UNISTD_H "unistd.h") find_path(HAVE_UUID_UUID_H "uuid/uuid.h") find_path(HAVE_WINSOCK_H "winsock2.h") - find_path(HAVE_SYS_TYPES_H "sys/types.h") find_path(HAVE_SEMAPHORE_H "semaphore.h") find_path(HAVE_GETOPT_H "getopt.h") diff --git a/monetdb_config.h.in b/monetdb_config.h.in --- a/monetdb_config.h.in +++ b/monetdb_config.h.in @@ -26,7 +26,7 @@ #include #include -#cmakedefine HAVE_DIRENT_H @HAVE_DIRENT_H@ +// Section: monetdb configure defines #cmakedefine HAVE_DISPATCH_DISPATCH_H @HAVE_DISPATCH_DISPATCH_H@ #cmakedefine HAVE_DLFCN_H @HAVE_DLFCN_H@ #cmakedefine HAVE_FCNTL_H @HAVE_FCNTL_H@ @@ -52,9 +52,7 @@ #cmakedefine HAVE_SYS_MMAN_H @HAVE_SYS_MMAN_H@ #cmakedefine HAVE_SYS_PARAM_H @HAVE_SYS_PARAM_H@ #cmakedefine HAVE_SYS_RESOURCE_H @HAVE_SYS_RESOURCE_H@ -#cmakedefine HAVE_SYS_SOCKET_H @HAVE_SYS_SOCKET_H@ #cmakedefine HAVE_SYS_TIME_H @HAVE_SYS_TIME_H@ -#cmakedefine HAVE_GETTIMEOFDAY @HAVE_SYS_TIME_H@ #cmakedefine HAVE_SYS_TIMES_H @HAVE_SYS_TIMES_H@ #cmakedefine HAVE_SYS_UIO_H @HAVE_SYS_UIO_H@ #cmakedefine HAVE_SYS_UN_H @HAVE_SYS_UN_H@ @@ -64,49 +62,18 @@ #cmakedefine HAVE_UNISTD_H 1 #cmakedefine HAVE_UUID_UUID_H @HAVE_UUID_UUID_H@ #cmakedefine HAVE_WINSOCK_H @HAVE_WINSOCK_H@ - #cmakedefine HAVE_SEMAPHORE_H @HAVE_SEMAPHORE_H@ - -#cmakedefine HAVE_SYS_STAT_H @HAVE_SYS_STAT_H@ -#cmakedefine HAVE_GETADDRINFO @HAVE_GETADDRINFO@ +#cmakedefine HAVE_GETOPT_H @HAVE_GETOPT_H@ -#define ICONV_CONST -#cmakedefine HAVE_PTHREAD_KILL @HAVE_PTHREAD_KILL@ -#cmakedefine HAVE_PTHREAD_SIGMASK @HAVE_PTHREAD_SIGMASK@ -#cmakedefine HAVE_LOCALTIME_R @HAVE_LOCALTIME_R@ -#cmakedefine HAVE_STRERROR_R @HAVE_STRERROR_R@ - -// Section: monetdb configure defines #cmakedefine HAVE_STDATOMIC_H @HAVE_STDATOMIC_H@ -#cmakedefine HAVE_GETOPT_H @HAVE_GETOPT_H@ -#cmakedefine HAVE_GETOPT @HAVE_GETOPT@ -// End Section: monetdb configure defines -// Section: monetdb macro variables -#cmakedefine HAVE_ICONV @HAVE_ICONV@ -#cmakedefine HAVE_PTHREAD_H @HAVE_PTHREAD_H@ -#cmakedefine HAVE_LIBPCRE @HAVE_LIBPCRE@ -#cmakedefine HAVE_OPENSSL @HAVE_OPENSSL@ -#cmakedefine HAVE_COMMONCRYPTO @HAVE_COMMONCRYPTO@ -#cmakedefine HAVE_LIBBZ2 @HAVE_LIBBZ2@ -#cmakedefine HAVE_CURL @HAVE_CURL@ -#cmakedefine HAVE_LIBLZMA @HAVE_LIBLZMA@ -#cmakedefine HAVE_LIBXML @HAVE_LIBXML@ -#cmakedefine HAVE_LIBZ @HAVE_LIBZ@ -#cmakedefine HAVE_LIBLZ4 @HAVE_LIBLZ4@ -#cmakedefine HAVE_PROJ @HAVE_PROJ@ -#cmakedefine HAVE_SNAPPY @HAVE_SNAPPY@ -#cmakedefine HAVE_UUID @HAVE_UUID@ -#cmakedefine HAVE_VALGRIND @HAVE_VALGRIND@ -#cmakedefine HAVE_NETCDF @HAVE_NETCDF@ -#cmakedefine HAVE_READLINE @HAVE_READLINE@ -// End Section: monetdb macro variables - -#define FLEXIBLE_ARRAY_MEMBER - +#cmakedefine HAVE_DIRENT_H @HAVE_DIRENT_H@ +#cmakedefine HAVE_SYS_SOCKET_H @HAVE_SYS_SOCKET_H@ +#cmakedefine HAVE_GETTIMEOFDAY @HAVE_SYS_TIME_H@ +#cmakedefine HAVE_SYS_STAT_H @HAVE_SYS_STAT_H@ +#cmakedefine HAVE_FDATASYNC @HAVE_FDATASYNC@ #cmakedefine HAVE_ACCEPT4 @HAVE_ACCEPT4@ #cmakedefine HAVE_ASCTIME_R @HAVE_ASCTIME_R@ -#define HAVE_CBRT 1 #cmakedefine HAVE_CLOCK_GETTIME @HAVE_CLOCK_GETTIME@ #cmakedefine HAVE_CTIME_R @HAVE_CTIME_R@ #cmakedefine HAVE_DISPATCH_SEMAPHORE_CREATE @HAVE_DISPATCH_SEMAPHORE_CREATE@ @@ -123,6 +90,7 @@ #cmakedefine HAVE_GETUID @HAVE_GETUID@ #cmakedefine HAVE_GMTIME_R @HAVE_GMTIME_R@ #cmakedefine HAVE_LOCALTIME_R @HAVE_LOCALTIME_R@ +#cmakedefine HAVE_STRERROR_R @HAVE_STRERROR_R@ #cmakedefine HAVE_LOCKF @HAVE_LOCKF@ #cmakedefine HAVE_MADVISE @HAVE_MADVISE@ #cmakedefine HAVE_MREMAP @HAVE_MREMAP@ @@ -148,10 +116,36 @@ #cmakedefine HAVE_TASK_INFO @HAVE_TASK_INFO@ #cmakedefine HAVE_TIMES @HAVE_TIMES@ #cmakedefine HAVE_UNAME @HAVE_UNAME@ +//
MonetDB: mbedded - add LIBDIR adn LIBDIR/monetdb5 to the PATH, w...
Changeset: 9e8c81aadb6f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9e8c81aadb6f Modified Files: testing/monetdb_mtest.bat.in Branch: mbedded Log Message: add LIBDIR adn LIBDIR/monetdb5 to the PATH, when running mtest diffs (10 lines): diff --git a/testing/monetdb_mtest.bat.in b/testing/monetdb_mtest.bat.in --- a/testing/monetdb_mtest.bat.in +++ b/testing/monetdb_mtest.bat.in @@ -6,5 +6,5 @@ @echo off -set PATH=@CMAKE_INSTALL_FULL_BINDIR@;%PATH% +set PATH=@CMAKE_INSTALL_FULL_LIBDIR@;@CMAKE_INSTALL_FULL_LIBDIR@\monetdb5;@CMAKE_INSTALL_FULL_BINDIR@;%PATH% @CMAKE_INSTALL_FULL_BINDIR@/Mtest.py ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: mbedded - add bool type
Changeset: cf33fead690f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cf33fead690f Added Files: ctest/tools/embedded/example2.c Modified Files: ctest/tools/embedded/CMakeLists.txt tools/embedded/monetdb_embedded.c tools/embedded/monetdb_embedded.h Branch: mbedded Log Message: add bool type add simple example of base types bool, tinyint, smallint, int, bigint, float, double and varchar diffs (213 lines): diff --git a/ctest/tools/embedded/CMakeLists.txt b/ctest/tools/embedded/CMakeLists.txt --- a/ctest/tools/embedded/CMakeLists.txt +++ b/ctest/tools/embedded/CMakeLists.txt @@ -17,3 +17,15 @@ target_link_libraries(example1 #sql ) add_test(run_example1 example1) + +add_executable(example2 example2.c) +target_link_libraries(example2 + PRIVATE +monetdb_config_header +embedded +sqlinclude +gdk +mapi +#sql +) +add_test(run_example2 example2) diff --git a/ctest/tools/embedded/example2.c b/ctest/tools/embedded/example2.c new file mode 100644 --- /dev/null +++ b/ctest/tools/embedded/example2.c @@ -0,0 +1,133 @@ +/* + * 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 "monetdb_embedded.h" +#include +#include +#include + +#define error(msg) {fprintf(stderr, "Failure: %s\n", msg); return -1;} + +int +main(void) +{ + char* err = NULL; + monetdb_connection conn = NULL; + monetdb_result* result = NULL; + + // first argument is a string for the db directory or NULL for in-memory mode + if ((err = monetdb_startup(NULL, 0)) != NULL) + error(err) + if ((err = monetdb_connect(&conn)) != NULL) + error(err) + if ((err = monetdb_query(conn, "CREATE TABLE test (b bool, t tinyint, s smallint, x integer, l bigint, f float, d double, y string)", NULL, NULL, NULL)) != NULL) + error(err) + if ((err = monetdb_query(conn, "INSERT INTO test VALUES (TRUE, 42, 42, 42, 42, 42.42, 42.42, 'Hello'), (NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'World')", NULL, NULL, NULL)) != NULL) + error(err) + if ((err = monetdb_query(conn, "SELECT b, t, s, x, l, f, d, y FROM test; ", &result, NULL, NULL)) != NULL) + error(err) + + fprintf(stdout, "Query result with %zu cols and %"PRId64" rows\n", result->ncols, result->nrows); + for (int64_t r = 0; r < result->nrows; r++) { + for (size_t c = 0; c < result->ncols; c++) { + monetdb_column* rcol; + if ((err = monetdb_result_fetch(conn, &rcol, result, c)) != NULL) + error(err) + switch (rcol->type) { + case monetdb_bool: { + monetdb_column_bool * col = (monetdb_column_bool *) rcol; + if (col->data[r] == col->null_value) { + printf("NULL"); + } else { + printf("%c", col->data[r]?'T':'F'); + } + break; + } + case monetdb_int8_t: { + monetdb_column_int8_t * col = (monetdb_column_int8_t *) rcol; + if (col->data[r] == col->null_value) { + printf("NULL"); + } else { + printf("%d", col->data[r]); + } + break; + } + case monetdb_int16_t: { + monetdb_column_int16_t * col = (monetdb_column_int16_t *) rcol; + if (col->data[r] == col->null_value) { + printf("NULL"); + } else { + printf("%d", col->data[r]); + } + break; + } + case monetdb_int32_t: { + monetdb_column_int32_t * col = (monetdb_column_int32_t *) rcol; + if (col->data[r] == col->null_value) { + printf("NULL"); + } else { + printf("%