Changeset: 6e72bc942b6d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6e72bc942b6d
Removed Files:
sql/scripts/CMakeLists.txt
sql/scripts/Makefile.ag
sql/scripts/sql_scripts.c
sql/scripts/sql_scripts.h
Modified Files:
embedded/CMakeLists.txt
sql/CMakeLists.txt
sql/backends/monet5/CMakeLists.txt
sql/backends/monet5/sql_scenario.c
Branch: cmake-monetdblite
Log Message:
Use a single mal and a single sql script bundle for MonetDBLite to save space.
diffs (truncated from 452 to 300 lines):
diff --git a/embedded/CMakeLists.txt b/embedded/CMakeLists.txt
--- a/embedded/CMakeLists.txt
+++ b/embedded/CMakeLists.txt
@@ -8,8 +8,8 @@
include_directories(${CMAKE_CURRENT_BINARY_DIR} ../common/options
../common/utils ../common/stream ../gdk
../monetdb5/mal
../monetdb5/modules/kernel ../monetdb5/modules/atoms ../monetdb5/modules/mal
- ../monetdb5/optimizer
../sql/backends/monet5 ../sql/include ../sql/common ../sql/scripts
- ../sql/server ../sql/storage
../sql/storage/bat)
+ ../monetdb5/optimizer
../sql/backends/monet5 ../sql/include ../sql/common ../sql/server
+ ../sql/storage ../sql/storage/bat)
add_definitions(${COMPILER_OPTION}DLIBMUTILS ${COMPILER_OPTION}DLIBMEROUTIL
${COMPILER_OPTION}DLIBSTREAM
${COMPILER_OPTION}DLIBGDK
${COMPILER_OPTION}DLIBMAL ${COMPILER_OPTION}DLIBATOMS
@@ -54,9 +54,7 @@ set(MAL_SCRIPTS_LIST
"${CMAKE_SOURCE_DIR}/monetdb5/modules/mal/language.mal"
"${CMAKE_SOURCE_DIR}/monetdb5/modules/mal/01_batcalc.mal"
"${CMAKE_SOURCE_DIR}/monetdb5/modules/mal/01_calc.mal"
- "${CMAKE_SOURCE_DIR}/sql/backends/monet5/sql.mal") # sql.mal MUST be
here
-
-set(SQL_MAL_SCRIPTS_LIST
+ "${CMAKE_SOURCE_DIR}/sql/backends/monet5/sql.mal" # sql.mal MUST be here
"${CMAKE_SOURCE_DIR}/sql/backends/monet5/sqlcatalog.mal"
"${CMAKE_SOURCE_DIR}/sql/backends/monet5/sql_transaction.mal"
"${CMAKE_SOURCE_DIR}/sql/backends/monet5/sql_decimal.mal"
@@ -70,7 +68,7 @@ set(SQL_MAL_SCRIPTS_LIST
"${CMAKE_SOURCE_DIR}/sql/backends/monet5/sql_inspect.mal"
"${CMAKE_SOURCE_DIR}/sql/backends/monet5/sql_generator.mal")
-set(SQL_SCRIPTS_LIST1
+set(SQL_SCRIPTS_LIST
"${CMAKE_SOURCE_DIR}/sql/scripts/09_like.sql"
"${CMAKE_SOURCE_DIR}/sql/scripts/10_math.sql"
"${CMAKE_SOURCE_DIR}/sql/scripts/11_times.sql"
@@ -85,15 +83,11 @@ set(SQL_SCRIPTS_LIST1
"${CMAKE_SOURCE_DIR}/sql/scripts/51_sys_schema_extension.sql"
"${CMAKE_SOURCE_DIR}/sql/scripts/70_storagemodel.sql"
"${CMAKE_SOURCE_DIR}/sql/scripts/71_statistics.sql"
- "${CMAKE_SOURCE_DIR}/sql/scripts/90_generator.sql")
-
-set(SQL_SCRIPTS_LIST2
+ "${CMAKE_SOURCE_DIR}/sql/scripts/90_generator.sql"
"${CMAKE_SOURCE_DIR}/sql/scripts/99_system.sql")
build_embedded_mal_scripts(mal_inline malModules "${MAL_SCRIPTS_LIST}")
-build_embedded_mal_scripts(sql_mal_inline sqlMalModules
"${SQL_MAL_SCRIPTS_LIST}")
-build_embedded_sql_scripts(createdb_inline1 "${SQL_SCRIPTS_LIST1}")
-build_embedded_sql_scripts(createdb_inline2 "${SQL_SCRIPTS_LIST2}")
+build_embedded_sql_scripts(createdb_inline1 "${SQL_SCRIPTS_LIST}")
add_library(monetdblite SHARED
monetdb_embedded.c
@@ -274,7 +268,6 @@ add_library(monetdblite SHARED
../sql/server/sql_scan.c
../sql/server/sql_semantic.c
../sql/server/sql_symbol.c
- ../sql/scripts/sql_scripts.c
../sql/storage/bat/bat_logger.c
../sql/storage/bat/bat_storage.c
../sql/storage/bat/bat_table.c
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -11,7 +11,6 @@ add_subdirectory(common)
add_subdirectory(storage)
add_subdirectory(server)
add_subdirectory(backends)
-add_subdirectory(scripts)
if(WIN32)
add_subdirectory(NT)
endif()
diff --git a/sql/backends/monet5/CMakeLists.txt
b/sql/backends/monet5/CMakeLists.txt
--- a/sql/backends/monet5/CMakeLists.txt
+++ b/sql/backends/monet5/CMakeLists.txt
@@ -14,7 +14,7 @@ add_subdirectory(UDF)
include_directories(${CMAKE_CURRENT_BINARY_DIR} ../../../gdk ../../include
../../common ../../storage ../../server
../../../monetdb5/modules/atoms
../../../monetdb5/modules/kernel ../../../monetdb5/mal
../../../monetdb5/modules/mal
../../../monetdb5/optimizer ../../../monetdb5/scheduler
- ../../../monetdb5/extras/rapi
../../../common/stream ../../../common/utils ../../scripts)
+ ../../../monetdb5/extras/rapi
../../../common/stream ../../../common/utils)
set(SQL_MAL_SCRIPTS_LIST
"${CMAKE_CURRENT_SOURCE_DIR}/sql_sysmon.mal"
@@ -40,9 +40,49 @@ if(HAVE_HGE)
"${CMAKE_CURRENT_SOURCE_DIR}/sql_generator_hge.mal")
endif()
-build_embedded_mal_scripts(sql_mal_inline sqlMalModules
"${SQL_MAL_SCRIPTS_LIST}")
+set(SQL_SCRIPTS_LIST1
+ "${CMAKE_SOURCE_DIR}/sql/scripts/09_like.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/10_math.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/11_times.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/12_url.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/13_date.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/14_inet.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/15_querylog.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/16_tracelog.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/17_temporal.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/18_index.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/20_vacuum.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/21_dependency_views.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/22_clients.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/23_skyserver.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/25_debug.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/26_sysmon.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/27_rejects.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/39_analytics.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/40_json.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/41_md5sum.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/45_uuid.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/46_profiler.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/51_sys_schema_extension.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/60_wlcr.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/70_storagemodel.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/71_statistics.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/90_generator.sql")
+if(HAVE_HGE)
+ list(APPEND SQL_SCRIPTS_LIST1
+ "${CMAKE_SOURCE_DIR}/sql/scripts/39_analytics_hge.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/40_json_hge.sql"
+ "${CMAKE_SOURCE_DIR}/sql/scripts/90_generator_hge.sql")
+endif()
-set(SQL_LINK_LIBRARIES sqlserver store batstore sqlcommon sqlscripts)
+# These scripts loads after all custom installed SQL scripts
+set(SQL_SCRIPTS_LIST2 "${CMAKE_SOURCE_DIR}/sql/scripts/99_system.sql")
+
+build_embedded_mal_scripts(sql_mal_inline sqlMalModules
"${SQL_MAL_SCRIPTS_LIST}")
+build_embedded_sql_scripts(createdb_inline1 "${SQL_SCRIPTS_LIST1}")
+build_embedded_sql_scripts(createdb_inline2 "${SQL_SCRIPTS_LIST2}")
+
+set(SQL_LINK_LIBRARIES sqlserver store batstore sqlcommon)
if(WIN32)
list(APPEND SQL_LINK_LIBRARIES mapi monetdb5 gdk stream
${CRYPTO_LIBRARIES})
endif()
diff --git a/sql/backends/monet5/sql_scenario.c
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -50,7 +50,6 @@
#include <unistd.h>
#endif
#include "sql_upgrades.h"
-#include "sql_scripts.h"
static int SQLinitialized = 0;
static int SQLnewcatalog = 0;
@@ -369,10 +368,47 @@ SQLresetClient(Client c)
return msg;
}
+static str
+install_sql_scripts(Client c, char* scripts_array, const char* array_name)
+{
+ str msg = MAL_SUCCEED;
+ size_t createdb_len;
+ buffer* createdb_buf;
+ stream* createdb_stream;
+ bstream* createdb_bstream;
+
+ assert(scripts_array && array_name);
+ createdb_len = strlen(scripts_array);
+ if ((createdb_buf = GDKmalloc(sizeof(buffer))) == NULL)
+ throw(MAL, "sql.install_sql_scripts_array", SQLSTATE(HY001)
MAL_MALLOC_FAIL);
+ buffer_init(createdb_buf, scripts_array, createdb_len);
+ if ((createdb_stream = buffer_rastream(createdb_buf,
"sql.install_sql_scripts_array")) == NULL) {
+ GDKfree(createdb_buf);
+ throw(MAL, "sql.install_sql_scripts_array", SQLSTATE(HY001)
MAL_MALLOC_FAIL);
+ }
+ if ((createdb_bstream = bstream_create(createdb_stream, createdb_len))
== NULL) {
+ mnstr_destroy(createdb_stream);
+ GDKfree(createdb_buf);
+ throw(MAL, "sql.install_sql_scripts_array", SQLSTATE(HY001)
MAL_MALLOC_FAIL);
+ }
+ if (bstream_next(createdb_bstream) >= 0)
+ msg = SQLstatementIntern(c, &createdb_bstream->buf,
"sql.install_sql_scripts_array", TRUE, FALSE, NULL);
+ else
+ msg = createException(MAL, "sql.install_sql_scripts_array",
SQLSTATE(HY0002) "Could not load %s script", array_name);
+
+ bstream_destroy(createdb_bstream);
+ GDKfree(createdb_buf);
+ return msg;
+}
+
MT_Id sqllogthread, idlethread;
+#include "createdb_inline1.h"
+#ifndef HAVE_EMBEDDED
#include "sql_mal_inline.h"
#include "sql_mal_inline_names.h"
+#include "createdb_inline2.h"
+#endif
static str
SQLinit(Client c)
@@ -408,10 +444,12 @@ SQLinit(Client c)
}
(void) tz;
+#ifndef HAVE_EMBEDDED
if ((msg = malExtraModulesBoot(c, sqlMalModules, sql_mal_inline)) !=
MAL_SUCCEED) {
MT_lock_unset(&sql_contextLock);
return msg;
}
+#endif
if (debug_str)
SQLdebug = strtol(debug_str, NULL, 10);
@@ -483,7 +521,7 @@ SQLinit(Client c)
MT_fprintf(stdout, "# Loading bundled SQL scripts\n");
- if ((msg = install_sql_scripts1(c)) != MAL_SUCCEED) {
+ if ((msg = install_sql_scripts(c, createdb_inline1,
"createdb_inline1")) != MAL_SUCCEED) {
MT_lock_unset(&sql_contextLock);
return msg;
}
@@ -547,12 +585,12 @@ SQLinit(Client c)
} else
MT_fprintf(stderr, "!could not read
createdb.sql\n");
}
-#endif
- if ((msg = install_sql_scripts2(c)) != MAL_SUCCEED) {
+ if ((msg = install_sql_scripts(c, createdb_inline2,
"createdb_inline2")) != MAL_SUCCEED) {
MT_lock_unset(&sql_contextLock);
return msg;
}
+#endif
if ((msg = SQLstatementIntern(c, &commit, "sql.init", 1, 0,
NULL)) != MAL_SUCCEED) {
MT_lock_unset(&sql_contextLock);
return msg;
diff --git a/sql/scripts/CMakeLists.txt b/sql/scripts/CMakeLists.txt
deleted file mode 100644
--- a/sql/scripts/CMakeLists.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-#[[
-# 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 - 2019 MonetDB B.V.
-#]]
-
-include_directories(${CMAKE_CURRENT_BINARY_DIR} ../include ../common
../storage ../../monetdb5/modules/atoms
- ../../monetdb5/modules/kernel
../../monetdb5/mal ../../monetdb5/modules/atoms
- ../../monetdb5/modules/mal
../../common/options ../../common/stream ../../common/utils
- ../backends/monet5 ../server ../../gdk)
-
-set(SQL_SCRIPTS_LIST1
- "${CMAKE_CURRENT_SOURCE_DIR}/09_like.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/10_math.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/11_times.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/12_url.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/13_date.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/14_inet.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/15_querylog.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/16_tracelog.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/17_temporal.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/18_index.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/20_vacuum.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/21_dependency_views.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/22_clients.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/23_skyserver.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/25_debug.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/26_sysmon.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/27_rejects.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/39_analytics.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/40_json.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/41_md5sum.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/45_uuid.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/46_profiler.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/51_sys_schema_extension.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/60_wlcr.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/70_storagemodel.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/71_statistics.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/90_generator.sql")
-if(HAVE_HGE)
- list(APPEND SQL_SCRIPTS_LIST1
- "${CMAKE_CURRENT_SOURCE_DIR}/39_analytics_hge.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/40_json_hge.sql"
- "${CMAKE_CURRENT_SOURCE_DIR}/90_generator_hge.sql")
-endif()
-
-# These scripts loads after all custom installed SQL scripts
-set(SQL_SCRIPTS_LIST2 "${CMAKE_CURRENT_SOURCE_DIR}/99_system.sql")
-
-build_embedded_sql_scripts(createdb_inline1 "${SQL_SCRIPTS_LIST1}")
-build_embedded_sql_scripts(createdb_inline2 "${SQL_SCRIPTS_LIST2}")
-
-# The sql script header files should be in CMAKE_CURRENT_BINARY_DIR
-add_library(sqlscripts STATIC sql_scripts.c sql_scripts.h)
-set_target_properties(sqlscripts PROPERTIES POSITION_INDEPENDENT_CODE ON)
-target_compile_definitions(sqlscripts PRIVATE LIBSQL LIBSQLSERVER LIBSQLCOMMON
LIBBATSTORE LIBSTORE)
diff --git a/sql/scripts/Makefile.ag b/sql/scripts/Makefile.ag
deleted file mode 100644
--- a/sql/scripts/Makefile.ag
+++ /dev/null
@@ -1,54 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list