Changeset: e1b0193840bb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e1b0193840bb
Added Files:
cmake/FindRevision.cmake
Removed Files:
common/utils/FindRevision.cmake
Modified Files:
CMakeLists.txt
cmake/BuildMacros.cmake
common/utils/CMakeLists.txt
embedded/CMakeLists.txt
embedded/monetdb_embedded.c
embedded/monetdb_embedded.h
monetdb5/mal/mal_import.c
monetdb5/optimizer/opt_pipes.c
monetdb5/optimizer/opt_wrapper.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_cat.c
sql/server/CMakeLists.txt
sql/server/rel_optimizer.c
sql/server/rel_schema.c
sql/server/sql_mvc.c
sql/server/sql_scan.c
Branch: cmake-monetdblite
Log Message:
Cleaned unresolved linker references for MonetDBLite.
diffs (truncated from 825 to 300 lines):
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -755,6 +755,12 @@ if(${ENABLE_STRICT} STREQUAL "YES")
MT_addCompilerFlag("/WX" "/WX" "${CMAKE_C_FLAGS}" "all"
CMAKE_C_FLAGS)
endif()
endif()
+if(NOT MSVC)
+ cmake_push_check_state()
+ set(CMAKE_REQUIRED_FLAGS
"${CMAKE_REQUIRED_FLAGS};-Wno-unreachable-code")
+ check_c_source_compiles("int main(int argc,char**
argv){(void)argc;(void)argv;return 0;}" COMPILER_Wnounreachablecode) # Warning
don't add '-' or '/' to the output variable!
+ cmake_pop_check_state()
+endif()
if(${ENABLE_SANITIZER} STREQUAL "YES")
if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
@@ -785,6 +791,11 @@ find_program(DIFF NAMES gdiff diff DOC "
find_program(BASH NAMES bash DOC "bash interpreter fullpath")
include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+# FindRevision script must run every time to detect the current revision
+add_custom_target(mrevision COMMAND ${CMAKE_COMMAND} ARGS -P
${CMAKE_SOURCE_DIR}/cmake/FindRevision.cmake
+ ${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}/monetdb_hgversion.h)
+
add_subdirectory(buildtools)
add_subdirectory(common)
add_subdirectory(clients) # Must come before monetdb5!
@@ -796,9 +807,6 @@ if(HAVE_MONETDB5)
add_subdirectory(geom) # The SHP vault requires the geom module, so the
geom module should compile before SQL
add_subdirectory(tools)
endif()
-if(HAVE_SQL OR HAVE_EMBEDDED)
- compile_sqlparser()
-endif()
if(HAVE_SQL)
add_subdirectory(sql)
endif()
diff --git a/cmake/BuildMacros.cmake b/cmake/BuildMacros.cmake
--- a/cmake/BuildMacros.cmake
+++ b/cmake/BuildMacros.cmake
@@ -8,26 +8,6 @@
# This file holds macros for compilation objects common to MonetDB and
MonetDBLite
-# Compile sqlparser with Bison only once for both MonetDB and MonetDBLite
-# Warning! So far the HAVE_EMBEDDED macro is not used in sql_parser.y
-macro(COMPILE_SQLPARSER)
- bison_target(sqlparser sql/server/sql_parser.y
${CMAKE_BINARY_DIR}/sql_parser.tab.c
- COMPILE_FLAGS "-d -p sql -r all" DEFINES_FILE
${CMAKE_BINARY_DIR}/sql_parser.tab.h)
- add_library(bison_obj OBJECT ${BISON_sqlparser_OUTPUTS})
- set_target_properties(bison_obj PROPERTIES POSITION_INDEPENDENT_CODE ON)
- target_include_directories(bison_obj PRIVATE common/utils common/stream
gdk monetdb5/mal sql/common sql/include
- sql/server
sql/storage sql/storage/bat)
- if(NOT MSVC)
- cmake_push_check_state()
- set(CMAKE_REQUIRED_FLAGS
"${CMAKE_REQUIRED_FLAGS};-Wno-unreachable-code")
- check_c_source_compiles("int main(int argc,char**
argv){(void)argc;(void)argv;return 0;}" COMPILER_Wnounreachablecode) # Warning
don't add '-' or '/' to the output variable!
- cmake_pop_check_state()
- if(COMPILER_Wnounreachablecode)
- target_compile_options(bison_obj PRIVATE
-Wno-unreachable-code) # use this flag only to compile the bison output
- endif()
- endif()
-endmacro()
-
# Create C array with MAL scripts content as well the module names bundled
macro(BUILD_EMBEDDED_MAL_SCRIPTS BUNDLE_NAME VARIABLE_NAME SCRIPTS_LIST)
execute_process(COMMAND "${Python3_EXECUTABLE}"
"${CMAKE_SOURCE_DIR}/buildtools/scripts/mal2h.py"
diff --git a/common/utils/FindRevision.cmake b/cmake/FindRevision.cmake
rename from common/utils/FindRevision.cmake
rename to cmake/FindRevision.cmake
diff --git a/common/utils/CMakeLists.txt b/common/utils/CMakeLists.txt
--- a/common/utils/CMakeLists.txt
+++ b/common/utils/CMakeLists.txt
@@ -6,11 +6,7 @@
# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
#]]
-include_directories(${CMAKE_CURRENT_BINARY_DIR} ${UUID_INCLUDE_DIR}
${CRYPTO_INCLUDE_DIR})
-
-# FindRevision script must run every time to detect the current revision
-add_custom_target(mrevision COMMAND ${CMAKE_COMMAND} ARGS -P
${CMAKE_CURRENT_SOURCE_DIR}/FindRevision.cmake
- ${CMAKE_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}/monetdb_hgversion.h)
+include_directories(${UUID_INCLUDE_DIR} ${CRYPTO_INCLUDE_DIR})
set(MUTILS_OBJECTS mutils.h mutils.c revision.c)
set(MCRYPT_OBJECTS mcrypt.h mcrypt.c)
diff --git a/embedded/CMakeLists.txt b/embedded/CMakeLists.txt
--- a/embedded/CMakeLists.txt
+++ b/embedded/CMakeLists.txt
@@ -11,6 +11,15 @@ include_directories(${CMAKE_CURRENT_BINA
../monetdb5/optimizer
../sql/backends/monet5 ../sql/include ../sql/common ../sql/scripts
../sql/server ../sql/storage
../sql/storage/bat)
+bison_target(sqlparserlite ../sql/server/sql_parser.y
${CMAKE_CURRENT_BINARY_DIR}/sql_sqlparserlite.tab.c
+ COMPILE_FLAGS "-d -p sql -r all" DEFINES_FILE
${CMAKE_CURRENT_BINARY_DIR}/sql_sqlparserlite.tab.h)
+add_library(bisonlite_obj OBJECT ${BISON_sqlparserlite_OUTPUTS})
+set_target_properties(bisonlite_obj PROPERTIES POSITION_INDEPENDENT_CODE ON)
+target_compile_definitions(bisonlite_obj PRIVATE HAVE_EMBEDDED)
+if(COMPILER_Wnounreachablecode)
+ target_compile_options(bisonlite_obj PRIVATE -Wno-unreachable-code)
+endif()
+
set(MAL_SCRIPTS_LIST
"${CMAKE_SOURCE_DIR}/monetdb5/modules/kernel/mmath.mal"
"${CMAKE_SOURCE_DIR}/monetdb5/modules/kernel/bat5.mal"
@@ -85,8 +94,11 @@ add_library(monetdblite SHARED
../common/options/monet_options.c
../common/stream/stream.c
../common/utils/mutils.c
+ ../common/utils/revision.c
../gdk/gdk_aggr.c
../gdk/gdk_align.c
+ ../gdk/gdk_analytic_bounds.c
+ ../gdk/gdk_analytic_func.c
../gdk/gdk_atoms.c
../gdk/gdk_bat.c
../gdk/gdk_batop.c
@@ -260,7 +272,8 @@ add_library(monetdblite SHARED
../sql/storage/sql_catalog.c
../sql/storage/store.c
../sql/storage/store_dependency.c
- $<TARGET_OBJECTS:bison_obj>)
+ ../sql/storage/store_sequence.c
+ $<TARGET_OBJECTS:bisonlite_obj>)
target_link_libraries(monetdblite PRIVATE ${MATH_LIBRARIES}
${THREAD_LIBRARIES} ${DL_LIBRARIES} ${KVM_LIBRARIES}
${PSAPI_LIBRARIES})
set_target_properties(monetdblite PROPERTIES VERSION ${MONETDB_VERSION}
SOVERSION ${MONETDB_VERSION_MAJOR}
diff --git a/embedded/monetdb_embedded.c b/embedded/monetdb_embedded.c
--- a/embedded/monetdb_embedded.c
+++ b/embedded/monetdb_embedded.c
@@ -38,7 +38,7 @@ monetdb_is_initialized(void)
return monetdb_embedded_initialized > 0;
}
-static str
+static char*
validate_connection(monetdb_connection conn, const char* call)
{
if (!monetdb_is_initialized())
@@ -58,11 +58,11 @@ typedef struct {
monetdb_column **converted_columns;
} monetdb_result_internal;
-str
+char*
monetdb_connect(monetdb_connection *conn)
{
mvc *m;
- str msg = MAL_SUCCEED;
+ char* msg = MAL_SUCCEED;
Client mc = NULL;
if (!monetdb_is_initialized()) {
@@ -91,7 +91,7 @@ monetdb_connect(monetdb_connection *conn
cleanup:
if (msg && mc) {
- str other = monetdb_disconnect(mc);
+ char* other = monetdb_disconnect(mc);
if (other)
GDKfree(other);
*conn = NULL;
@@ -100,10 +100,10 @@ cleanup:
return msg;
}
-str
+char*
monetdb_disconnect(monetdb_connection conn)
{
- str msg = MAL_SUCCEED;
+ char* msg = MAL_SUCCEED;
if ((msg = validate_connection(conn, "embedded.monetdb_disconnect")) !=
MAL_SUCCEED)
return msg;
@@ -112,7 +112,7 @@ monetdb_disconnect(monetdb_connection co
return MAL_SUCCEED;
}
-static str
+static char*
monetdb_shutdown_internal(void)
{
if (monetdb_embedded_initialized) {
@@ -122,10 +122,10 @@ monetdb_shutdown_internal(void)
return MAL_SUCCEED;
}
-str
+char*
monetdb_startup(char* dbdir, char silent, char sequential)
{
- str msg = MAL_SUCCEED;
+ char* msg = MAL_SUCCEED;
monetdb_result* res = NULL;
void* c;
opt *set = NULL;
@@ -208,11 +208,11 @@ cleanup:
return msg;
}
-static str
-monetdb_query_internal(monetdb_connection conn, char* query, monetdb_result**
result, lng* affected_rows,
- lng* prepare_id, char language)
+static char*
+monetdb_query_internal(monetdb_connection conn, char* query, monetdb_result**
result, int64_t* affected_rows,
+ int64_t* prepare_id, char language)
{
- str msg = MAL_SUCCEED, commit_msg;
+ char* msg = MAL_SUCCEED, *commit_msg;
Client c = (Client) conn;
mvc* m;
backend *b;
@@ -320,7 +320,7 @@ cleanup:
commit_msg = SQLautocommit(m); //need always to commit even if msg is
set
if ((msg != MAL_SUCCEED || commit_msg != MAL_SUCCEED)) {
if (res_internal) {
- str other = monetdb_cleanup_result(conn,
(monetdb_result*) res_internal);
+ char* other = monetdb_cleanup_result(conn,
(monetdb_result*) res_internal);
if (other)
GDKfree(other);
}
@@ -334,8 +334,8 @@ cleanup:
return msg;
}
-str
-monetdb_clear_prepare(monetdb_connection conn, lng id)
+char*
+monetdb_clear_prepare(monetdb_connection conn, int64_t id)
{
char query[100];
@@ -343,8 +343,8 @@ monetdb_clear_prepare(monetdb_connection
return(monetdb_query_internal(conn, query, NULL, NULL, NULL, 'X'));
}
-str
-monetdb_send_close(monetdb_connection conn, lng id)
+char*
+monetdb_send_close(monetdb_connection conn, int64_t id)
{
char query[100];
@@ -354,7 +354,7 @@ monetdb_send_close(monetdb_connection co
return(monetdb_query_internal(conn, query, NULL, NULL, NULL, 'X'));
}
-str
+char*
monetdb_set_autocommit(monetdb_connection conn, char value)
{
char query[100];
@@ -365,18 +365,18 @@ monetdb_set_autocommit(monetdb_connectio
return(monetdb_query_internal(conn, query, NULL, NULL, NULL, 'X'));
}
-str
-monetdb_query(monetdb_connection conn, char* query, monetdb_result** result,
lng* affected_rows, lng* prepare_id)
+char*
+monetdb_query(monetdb_connection conn, char* query, monetdb_result** result,
int64_t* affected_rows, int64_t* prepare_id)
{
return(monetdb_query_internal(conn, query, result, affected_rows,
prepare_id, 'S'));
}
-str
+char*
monetdb_append(monetdb_connection conn, const char* schema, const char* table,
append_data *data, size_t column_count)
{
Client c = (Client) conn;
mvc *m;
- str msg = MAL_SUCCEED;
+ char* msg = MAL_SUCCEED;
if ((msg = validate_connection(conn, "embedded.monetdb_append")) !=
MAL_SUCCEED)
return msg;
@@ -437,10 +437,10 @@ monetdb_append(monetdb_connection conn,
return SQLautocommit(m);
}
-str
+char*
monetdb_cleanup_result(monetdb_connection conn, monetdb_result* result)
{
- str msg = MAL_SUCCEED;
+ char* msg = MAL_SUCCEED;
monetdb_result_internal* res = (monetdb_result_internal *) result;
if ((msg = validate_connection(conn,
"embedded.monetdb_cleanup_result")) != MAL_SUCCEED)
@@ -462,14 +462,14 @@ monetdb_cleanup_result(monetdb_connectio
return msg;
}
-str
+char*
monetdb_get_columns(monetdb_connection conn, const char* schema_name, const
char *table_name, size_t *column_count,
char ***column_names, int
**column_types)
{
mvc *m;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list