Changeset: 86ed1635d630 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/86ed1635d630
Branch: txtsim-imp
Log Message:
Merge with Jun2023.
diffs (truncated from 530 to 300 lines):
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -54,7 +54,6 @@ include(monetdb-toolchain)
monetdb_default_compiler_options()
include(monetdb-defines)
-monetdb_hg_revision()
# required for symbol existance tests
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
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
@@ -289,7 +289,7 @@ bool GDKgetenv_istrue(const char *name);
bool GDKgetenv_isyes(const char *name);
gdk_return GDKgetsem(int sem_id, int count, int *semid);
gdk_return GDKgetsemval(int sem_id, int number, int *semval);
-gdk_return GDKinit(struct opt *set, int setlen, bool embedded);
+gdk_return GDKinit(struct opt *set, int setlen, bool embedded, const char
*caller_revision);
BAT *GDKinitialize_segment_tree(void);
void *GDKinitmmap(size_t id, size_t size, size_t *return_size);
bool GDKinmemory(int farmid);
@@ -1033,7 +1033,7 @@ void mal_atom_reset(void);
ClientRec *mal_clients;
MT_Lock mal_contextLock;
_Noreturn void mal_exit(int status);
-int mal_init(char *modules[], bool embedded, const char *initpasswd);
+int mal_init(char *modules[], bool embedded, const char *initpasswd, const
char *caller_revision);
void mal_instruction_reset(void);
void mal_module(const char *name, mel_atom *atoms, mel_func *funcs);
void mal_module2(const char *name, mel_atom *atoms, mel_func *funcs, mel_init
initfunc, const char *code);
diff --git a/clients/odbc/driver/ODBCDesc.c b/clients/odbc/driver/ODBCDesc.c
--- a/clients/odbc/driver/ODBCDesc.c
+++ b/clients/odbc/driver/ODBCDesc.c
@@ -227,7 +227,7 @@ ODBCLength(ODBCDescRec *rec, int lengtht
case SQL_VARCHAR:
case SQL_LONGVARCHAR:
if (lengthtype == SQL_DESC_OCTET_LENGTH)
- return rec->sql_desc_length * 6;
+ return rec->sql_desc_length * 4;
else
return rec->sql_desc_length;
case SQL_WCHAR:
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
@@ -376,9 +376,23 @@ ODBCInitResult(ODBCStmt *stmt)
/* this must come after other fields have been
* initialized */
- rec->sql_desc_length = ODBCLength(rec, SQL_DESC_LENGTH);
- rec->sql_desc_display_size = ODBCLength(rec,
SQL_DESC_DISPLAY_SIZE);
- rec->sql_desc_octet_length = ODBCLength(rec,
SQL_DESC_OCTET_LENGTH);
+ if (rec->sql_desc_concise_type == SQL_CHAR ||
+ rec->sql_desc_concise_type == SQL_VARCHAR ||
+ rec->sql_desc_concise_type == SQL_LONGVARCHAR ||
+ rec->sql_desc_concise_type == SQL_WCHAR ||
+ rec->sql_desc_concise_type == SQL_WVARCHAR ||
+ rec->sql_desc_concise_type == SQL_WLONGVARCHAR) {
+ /* for strings, get the display size from what
+ * the server told us the size is for this
+ * column, and derive the octet length from
+ * that */
+ rec->sql_desc_display_size = mapi_get_len(hdl, i);
+ rec->sql_desc_octet_length = 4 *
rec->sql_desc_display_size;
+ } else {
+ rec->sql_desc_length = ODBCLength(rec, SQL_DESC_LENGTH);
+ rec->sql_desc_display_size = ODBCLength(rec,
SQL_DESC_DISPLAY_SIZE);
+ rec->sql_desc_octet_length = ODBCLength(rec,
SQL_DESC_OCTET_LENGTH);
+ }
if (rec->sql_desc_length == 0) {
rec->sql_desc_length = SQL_NO_TOTAL;
rec->sql_desc_display_size = SQL_NO_TOTAL;
diff --git a/cmake/monetdb-functions.cmake b/cmake/monetdb-functions.cmake
--- a/cmake/monetdb-functions.cmake
+++ b/cmake/monetdb-functions.cmake
@@ -8,59 +8,6 @@
# Copyright 1997 - July 2008 CWI, August 2008 - 2023 MonetDB B.V.
#]]
-function(monetdb_hg_revision)
- # Get the current version control revision
- if(EXISTS "${CMAKE_SOURCE_DIR}/.hg_archival.txt")
- file(READ "${CMAKE_SOURCE_DIR}/.hg_archival.txt" HG_ARCHIVAL)
- if(HG_ARCHIVAL MATCHES ".*node:.*")
- string(REGEX REPLACE ".*node:
([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]).*"
"\\1" HG_NODE "${HG_ARCHIVAL}")
- if(HG_ARCHIVAL MATCHES ".*local:.*")
- string(REGEX REPLACE ".*local: ([0-9][0-9]*).*" "\\1" HG_LOCAL
"${HG_ARCHIVAL}")
- set(MERCURIAL_ID "${HG_NODE} ${HG_LOCAL}" PARENT_SCOPE)
- else()
- set(MERCURIAL_ID "${HG_NODE}" PARENT_SCOPE)
- endif()
- else()
- message(WARNING "Failed to find mercurial ID")
- set(MERCURIAL_ID "Unknown" PARENT_SCOPE)
- endif()
- elseif(EXISTS "${CMAKE_SOURCE_DIR}/.hg")
- find_package(Hg)
- if(HG_FOUND)
- message("hg found: ${HG_EXECUTABLE}")
- else()
- message(WARNING "Failed to find mercurial")
- set(MERCURIAL_ID "Unknown" PARENT_SCOPE)
- endif()
- execute_process(COMMAND "${HG_EXECUTABLE}" "id" "-i" WORKING_DIRECTORY
"${CMAKE_SOURCE_DIR}" RESULT_VARIABLE HG_RETURN_CODE
- OUTPUT_VARIABLE HG_OUPUT_RES OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(HG_RETURN_CODE EQUAL 0 AND HG_OUPUT_RES)
- set(MERCURIAL_ID "${HG_OUPUT_RES}" PARENT_SCOPE)
- else()
- message(WARNING "Failed to find mercurial ID")
- set(MERCURIAL_ID "Unknown" PARENT_SCOPE)
- endif()
- elseif(EXISTS "${CMAKE_SOURCE_DIR}/.git")
- find_package(Git)
- if(GIT_FOUND)
- message("git found: ${GIT_EXECUTABLE}")
- else()
- message(WARNING "Failed to find git")
- set(MERCURIAL_ID "Unknown" PARENT_SCOPE)
- endif()
- execute_process(COMMAND "${GIT_EXECUTABLE}" "rev-parse" "--short" "HEAD"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
- RESULT_VARIABLE GIT_RETURN_CODE OUTPUT_VARIABLE GIT_OUPUT_RES
OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(GIT_RETURN_CODE EQUAL 0 AND GIT_OUPUT_RES)
- set(MERCURIAL_ID "${GIT_OUPUT_RES}" PARENT_SCOPE)
- else()
- message(WARNING "Failed to find git ID")
- set(MERCURIAL_ID "Unknown" PARENT_SCOPE)
- endif()
- else()
- set(MERCURIAL_ID "Unknown" PARENT_SCOPE)
- endif()
-endfunction()
-
function(add_option_if_available Flag)
string(REGEX REPLACE "[-/=,]" "" FLAG_TEST "${Flag}")
check_c_compiler_flag(${Flag} ${FLAG_TEST}_FOUND)
diff --git a/common/utils/CMakeLists.txt b/common/utils/CMakeLists.txt
--- a/common/utils/CMakeLists.txt
+++ b/common/utils/CMakeLists.txt
@@ -8,9 +8,6 @@
# Copyright 1997 - July 2008 CWI, August 2008 - 2023 MonetDB B.V.
#]]
-configure_file(monetdb_hgversion.h.in
- ${CMAKE_CURRENT_BINARY_DIR}/monetdb_hgversion.h)
-
add_library(mutils STATIC)
target_sources(mutils
@@ -41,6 +38,14 @@ set_target_properties(mutils
POSITION_INDEPENDENT_CODE ON
PUBLIC_HEADER mutils.h)
+add_custom_target(version
+ ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_SOURCE_DIR}/monetdb_hgversion.h.in
+ -D DST=${CMAKE_CURRENT_BINARY_DIR}/monetdb_hgversion.h
+ -D DIR=${CMAKE_SOURCE_DIR}
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/GenerateVersionHeader.cmake
+ )
+add_dependencies(mutils version)
+
add_library(mcrypt STATIC)
target_sources(mcrypt
diff --git a/common/utils/GenerateVersionHeader.cmake
b/common/utils/GenerateVersionHeader.cmake
new file mode 100644
--- /dev/null
+++ b/common/utils/GenerateVersionHeader.cmake
@@ -0,0 +1,54 @@
+# Get the current version control revision
+message("dir is ${DIR}.")
+if(EXISTS "${DIR}/.hg_archival.txt")
+ file(READ "${DIR}/.hg_archival.txt" HG_ARCHIVAL)
+ if(HG_ARCHIVAL MATCHES ".*node:.*")
+ string(REGEX REPLACE ".*node:
([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]).*"
"\\1" HG_NODE "${HG_ARCHIVAL}")
+ if(HG_ARCHIVAL MATCHES ".*local:.*")
+ string(REGEX REPLACE ".*local: ([0-9][0-9]*).*" "\\1" HG_LOCAL
"${HG_ARCHIVAL}")
+ set(MERCURIAL_ID "${HG_NODE} ${HG_LOCAL}")
+ else()
+ set(MERCURIAL_ID "${HG_NODE}")
+ endif()
+ else()
+ message(WARNING "Failed to find mercurial ID")
+ set(MERCURIAL_ID "Unknown")
+ endif()
+elseif(EXISTS "${DIR}/.hg")
+ find_package(Hg)
+ if(HG_FOUND)
+ message("hg found: ${HG_EXECUTABLE}")
+ else()
+ message(WARNING "Failed to find mercurial")
+ set(MERCURIAL_ID "Unknown")
+ endif()
+ execute_process(COMMAND "${HG_EXECUTABLE}" "id" "-i" WORKING_DIRECTORY
"${DIR}" RESULT_VARIABLE HG_RETURN_CODE
+ OUTPUT_VARIABLE HG_OUPUT_RES OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(HG_RETURN_CODE EQUAL 0 AND HG_OUPUT_RES)
+ set(MERCURIAL_ID "${HG_OUPUT_RES}")
+ else()
+ message(WARNING "Failed to find mercurial ID")
+ set(MERCURIAL_ID "Unknown")
+ endif()
+elseif(EXISTS "${DIR}/.git")
+ find_package(Git)
+ if(GIT_FOUND)
+ message("git found: ${GIT_EXECUTABLE}")
+ else()
+ message(WARNING "Failed to find git")
+ set(MERCURIAL_ID "Unknown")
+ endif()
+ execute_process(COMMAND "${GIT_EXECUTABLE}" "rev-parse" "--short" "HEAD"
WORKING_DIRECTORY "${DIR}"
+ RESULT_VARIABLE GIT_RETURN_CODE OUTPUT_VARIABLE GIT_OUPUT_RES
OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(GIT_RETURN_CODE EQUAL 0 AND GIT_OUPUT_RES)
+ set(MERCURIAL_ID "${GIT_OUPUT_RES}")
+ else()
+ message(WARNING "Failed to find git ID")
+ set(MERCURIAL_ID "Unknown")
+ endif()
+else()
+ set(MERCURIAL_ID "Unknown")
+endif()
+
+message("Configure ${SRC} with ${MERCURIAL_ID}.")
+configure_file(${SRC} ${DST} @ONLY)
diff --git a/ctest/monetdb5/mal/test_malEmbeddedBoot.c
b/ctest/monetdb5/mal/test_malEmbeddedBoot.c
--- a/ctest/monetdb5/mal/test_malEmbeddedBoot.c
+++ b/ctest/monetdb5/mal/test_malEmbeddedBoot.c
@@ -18,7 +18,7 @@ main(void)
char* msg = MAL_SUCCEED;
gdk_return gdk_res;
- gdk_res = GDKinit(NULL, 0, true);
+ gdk_res = GDKinit(NULL, 0, true, NULL);
if (gdk_res != GDK_SUCCEED) {
msg = createException(MAL, "embedded.monetdb_startup",
"GDKinit() failed");
return 1;
diff --git a/ctest/monetdb5/mal/test_malInclude.c
b/ctest/monetdb5/mal/test_malInclude.c
--- a/ctest/monetdb5/mal/test_malInclude.c
+++ b/ctest/monetdb5/mal/test_malInclude.c
@@ -18,7 +18,7 @@ main(void)
{
gdk_return gdk_res;
- gdk_res = GDKinit(NULL, 0, true);
+ gdk_res = GDKinit(NULL, 0, true, NULL);
if (gdk_res != GDK_SUCCEED) {
createException(MAL, "embedded.monetdb_startup", "GDKinit()
failed");
return 1;
@@ -26,6 +26,6 @@ main(void)
char *modules[2];
modules[0] = "sql";
modules[1] = 0;
- mal_init(modules, true, NULL);
+ mal_init(modules, true, NULL, NULL);
return 0;
}
diff --git a/gdk/ChangeLog.Sep2022 b/gdk/ChangeLog.Sep2022
--- a/gdk/ChangeLog.Sep2022
+++ b/gdk/ChangeLog.Sep2022
@@ -1,6 +1,10 @@
# ChangeLog file for GDK
# This file is updated with Maddlog
+* Tue Apr 25 2023 Sjoerd Mullender <[email protected]>
+- Fixed parsing of the BBP.dir file when BAT ids grow larger than 2**24
+ (i.e. 100000000 in octal).
+
* Thu Apr 20 2023 Sjoerd Mullender <[email protected]>
- Fixed yet another occurrence of a missing .tailN file. This one could
happen if a string bat was appended to in stages so that between appends
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -611,6 +611,7 @@ BATclear(BAT *b, bool force)
.farmid = b->tvheap->farmid,
.parentid = b->tvheap->parentid,
.dirty = true,
+ .hasfile = b->tvheap->hasfile,
};
strcpy_len(th->filename, b->tvheap->filename,
sizeof(th->filename));
if (ATOMheap(b->ttype, th, 0) != GDK_SUCCEED) {
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -647,14 +647,14 @@ BBPreadBBPline(FILE *fp, unsigned bbpver
if (bbpversion <= GDKLIBRARY_HSIZE ?
sscanf(buf,
- "%" SCNu64 " %u %128s %19s %u %" SCNu64
+ "%" SCNu64 " %u %128s %23s %u %" SCNu64
" %" SCNu64 " %" SCNu64
"%n",
&batid, &status, batname, filename,
&properties, &count, &capacity, &base,
&nread) < 8 :
sscanf(buf,
- "%" SCNu64 " %u %128s %19s %u %" SCNu64
+ "%" SCNu64 " %u %128s %23s %u %" SCNu64
" %" SCNu64
"%n",
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]