Changeset: 4da41f8f45eb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4da41f8f45eb
Added Files:
        monetdb5/mal/mal_embedded.c
        monetdb5/mal/mal_embedded.h
        monetdb5/mal/mal_signatures
        monetdb5/modules/atoms/00_json_hge.include
        monetdb5/modules/atoms/batxml.include
        monetdb5/modules/atoms/blob.include
        monetdb5/modules/atoms/color.include
        monetdb5/modules/atoms/identifier.include
        monetdb5/modules/atoms/inet.include
        monetdb5/modules/atoms/json.include
        monetdb5/modules/atoms/mtime.include
        monetdb5/modules/atoms/str.include
        monetdb5/modules/atoms/streams.include
        monetdb5/modules/atoms/url.include
        monetdb5/modules/atoms/uuid.include
        monetdb5/modules/atoms/xml.include
        monetdb5/modules/kernel/00_aggr_hge.include
        monetdb5/modules/kernel/aggr.include
        monetdb5/modules/kernel/alarm.include
        monetdb5/modules/kernel/algebra.include
        monetdb5/modules/kernel/bat5.include
        monetdb5/modules/kernel/batcolor.include
        monetdb5/modules/kernel/batmmath.include
        monetdb5/modules/kernel/batstr.include
        monetdb5/modules/kernel/group.include
        monetdb5/modules/kernel/logger.include
        monetdb5/modules/kernel/microbenchmark.include
        monetdb5/modules/kernel/mmath.include
        monetdb5/modules/kernel/status.include
        monetdb5/modules/mal/00_batExtensions_hge.include
        monetdb5/modules/mal/00_batcalc_hge.include
        monetdb5/modules/mal/00_calc_hge.include
        monetdb5/modules/mal/00_iterator_hge.include
        monetdb5/modules/mal/00_language_hge.include
        monetdb5/modules/mal/00_mal_mapi_hge.include
        monetdb5/modules/mal/00_mkey_hge.include
        monetdb5/modules/mal/01_batcalc.include
        monetdb5/modules/mal/01_calc.include
        monetdb5/modules/mal/batExtensions.include
        monetdb5/modules/mal/batmtime.include
        monetdb5/modules/mal/bbp.include
        monetdb5/modules/mal/clients.include
        monetdb5/modules/mal/factories.include
        monetdb5/modules/mal/groupby.include
        monetdb5/modules/mal/inspect.include
        monetdb5/modules/mal/iterator.include
        monetdb5/modules/mal/json_util.include
        monetdb5/modules/mal/language.include
        monetdb5/modules/mal/mal_io.include
        monetdb5/modules/mal/mal_mapi.include
        monetdb5/modules/mal/manifold.include
        monetdb5/modules/mal/manual.include
        monetdb5/modules/mal/mat.include
        monetdb5/modules/mal/mdb.include
        monetdb5/modules/mal/mkey.include
        monetdb5/modules/mal/oltp.include
        monetdb5/modules/mal/orderidx.include
        monetdb5/modules/mal/pcre.include
        monetdb5/modules/mal/profiler.include
        monetdb5/modules/mal/querylog.include
        monetdb5/modules/mal/remote.include
        monetdb5/modules/mal/sabaoth.include
        monetdb5/modules/mal/sample.include
        monetdb5/modules/mal/sysmon.include
        monetdb5/modules/mal/tablet.include
        monetdb5/modules/mal/tokenizer.include
        monetdb5/modules/mal/transaction.include
        monetdb5/modules/mal/txtsim.include
        monetdb5/modules/mal/wlc.include
        monetdb5/modules/prepare.sh
        monetdb5/optimizer/optimizer.include
        monetdb5/scheduler/run_adder.include
        monetdb5/scheduler/run_isolate.include
        monetdb5/scheduler/run_memo.include
        sql/backends/monet5/40_sql.include
        sql/backends/monet5/41_sql_hge.include
        sql/backends/monet5/generator/90_generator.include
        sql/backends/monet5/generator/90_generator_hge.include
        sql/backends/monet5/generator/generator.include
        sql/backends/monet5/generator/generator_hge.include
        sql/backends/monet5/sql.include
        sql/backends/monet5/sql_aggr_bte.include
        sql/backends/monet5/sql_aggr_dbl.include
        sql/backends/monet5/sql_aggr_flt.include
        sql/backends/monet5/sql_aggr_hge.include
        sql/backends/monet5/sql_aggr_int.include
        sql/backends/monet5/sql_aggr_lng.include
        sql/backends/monet5/sql_aggr_sht.include
        sql/backends/monet5/sql_decimal.include
        sql/backends/monet5/sql_decimal_hge.include
        sql/backends/monet5/sql_hge.include
        sql/backends/monet5/sql_inspect.include
        sql/backends/monet5/sql_rank.include
        sql/backends/monet5/sql_rank_hge.include
        sql/backends/monet5/sql_transaction.include
        sql/backends/monet5/sqlcatalog.include
        sql/backends/monet5/wlr.include
Modified Files:
        monetdb5/mal/Makefile.ag
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_module.c
        monetdb5/mal/mal_session.c
        monetdb5/modules/atoms/Makefile.ag
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/kernel/Makefile.ag
        monetdb5/modules/kernel/alarm.mal
        monetdb5/modules/mal/Makefile.ag
        monetdb5/modules/mal/mal_init.mal
        monetdb5/optimizer/Makefile.ag
        monetdb5/scheduler/Makefile.ag
        sql/backends/monet5/Makefile.ag
        sql/backends/monet5/generator/Makefile.ag
        sql/backends/monet5/sql_scenario.c
        tools/mserver/mserver5.c
Branch: translate-scripts
Log Message:

Merge with mdbl-mal branch.


diffs (truncated from 51105 to 300 lines):

diff --git a/monetdb5/mal/Makefile.ag b/monetdb5/mal/Makefile.ag
--- a/monetdb5/mal/Makefile.ag
+++ b/monetdb5/mal/Makefile.ag
@@ -47,7 +47,8 @@ lib_mal = {
                mal_stack.c mal_stack.h \
                mal_type.c mal_type.h \
                mal_utils.c mal_utils.h \
-               mal_private.h
+               mal_private.h \
+               mal_embedded.c mal_embedded.h mal_signatures
 }
 
 headers_h = {
@@ -68,7 +69,9 @@ headers_h = {
                mal_profiler.h \
                mal_resolve.h \
                mal_stack.h \
-               mal_type.h
+               mal_type.h \
+               mal_embedded.h \
+               mal_signatures
 }
 
 EXTRA_DIST_DIR = Tests
diff --git a/monetdb5/mal/mal_dataflow.c b/monetdb5/mal/mal_dataflow.c
--- a/monetdb5/mal/mal_dataflow.c
+++ b/monetdb5/mal/mal_dataflow.c
@@ -814,7 +814,7 @@ runMALdataflow(Client cntxt, MalBlkPtr m
 
 #ifdef DEBUG_FLOW
        fprintf(stderr, "#runMALdataflow for block %d - %d\n", startpc, stoppc);
-       fprintFunction(stderr, mb, 0, LIST_ALL);
+       fprintFunction(stderr, mb, 0, LIST_MAL_ALL);
 #endif
 
        /* in debugging mode we should not start multiple threads */
diff --git a/monetdb5/mal/mal_embedded.c b/monetdb5/mal/mal_embedded.c
new file mode 100644
--- /dev/null
+++ b/monetdb5/mal/mal_embedded.c
@@ -0,0 +1,161 @@
+/*
+ * 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.
+ */
+
+/*
+ * (author) M.L. Kersten
+ * These routines assume that the signatures for all MAL files are defined as 
text in mal_embdded.h
+ * They are parsed upon system restart without access to their source files.
+ * This way the definitions are part of the library upon compilation.
+ * It assumes that all necessary libraries are already loaded.
+ * A failure to bind the address in the context of an embedded version is not 
considered an error.
+ */
+#include "mal_embedded.h"
+
+static int embeddedinitialized = 0;
+
+/* The source for the MAL signatures*/
+static struct{
+       str modnme, source;
+} malSignatures[] = 
+{
+// Include the MAL definitions files in the proper order.
+
+#include "../modules/mal/mdb.include"
+#include "../modules/kernel/alarm.include"
+#include "../modules/kernel/mmath.include"
+#include "../modules/atoms/streams.include"
+
+#include "../modules/kernel/bat5.include"
+#include "../modules/mal/batExtensions.include"
+#include "../modules/kernel/algebra.include"
+#include "../modules/mal/orderidx.include"
+#include "../modules/kernel/status.include"
+#include "../modules/mal/groupby.include"
+#include "../modules/kernel/group.include"
+#include "../modules/kernel/aggr.include"
+#include "../modules/mal/mkey.include"
+
+#include "../modules/atoms/blob.include"
+#include "../modules/atoms/color.include"
+#include "../modules/atoms/str.include"
+#include "../modules/atoms/url.include"
+#include "../modules/atoms/uuid.include"
+#include "../modules/atoms/json.include"
+#include "../modules/mal/json_util.include"
+#include "../modules/atoms/mtime.include"
+#include "../modules/atoms/inet.include"
+#include "../modules/atoms/identifier.include"
+#include "../modules/atoms/xml.include"
+#include "../modules/atoms/batxml.include"
+
+#include "../modules/kernel/batmmath.include"
+#include "../modules/mal/batmtime.include"
+#include "../modules/kernel/batstr.include"
+#include "../modules/kernel/batcolor.include"
+
+#include "../modules/mal/sabaoth.include"
+#include "../modules/mal/pcre.include"
+#include "../modules/mal/clients.include"
+#include "../modules/mal/bbp.include"
+#include "../modules/mal/mal_io.include"
+#include "../modules/mal/manifold.include"
+#include "../modules/mal/factories.include"
+#include "../modules/mal/remote.include"
+
+#include "../modules/mal/mat.include"
+#include "../modules/mal/inspect.include"
+#include "../modules/mal/manual.include"
+#include "../modules/mal/language.include"
+
+#include "../modules/mal/profiler.include"
+#include "../modules/mal/querylog.include"
+#include "../modules/mal/sysmon.include"
+#include "../modules/mal/sample.include"
+
+#include "../optimizer/optimizer.include"
+
+#include "../modules/mal/iterator.include"
+#include "../modules/mal/txtsim.include"
+#include "../modules/mal/tokenizer.include"
+
+#include "../modules/mal/mal_mapi.include"
+#include "../modules/mal/oltp.include"
+#include "../modules/mal/wlc.include"
+
+#ifdef HAVE_HGE
+#include "../modules/mal/00_batcalc_hge.include"
+#include "../modules/mal/00_calc_hge.include"
+#include "../modules/mal/00_batExtensions_hge.include"
+#include "../modules/mal/00_iterator_hge.include"
+#include "../modules/mal/00_language_hge.include"
+#include "../modules/mal/00_mkey_hge.include"
+#include "../modules/mal/00_mal_mapi_hge.include"
+#endif
+
+// Any extensions (MAL scripts) that should be automatically loaded upon
+// startup can be placed in the autoload directory.  One typically finds
+// the SQL module in here, but it can also be used to load custom scripts.
+
+//include calc; --- moved to autoload/01_calc
+//include batcalc; -- moved to autoload/01_batcalc
+// include autoload;
+#ifdef HAVE_HGE
+#include "../modules/kernel/00_aggr_hge.include"
+#include "../modules/mal/00_batcalc_hge.include"
+#include "../modules/mal/00_batExtensions_hge.include"
+#include "../modules/mal/00_calc_hge.include"
+#include "../modules/mal/00_iterator_hge.include"
+#include "../modules/atoms/00_json_hge.include"
+#include "../modules/mal/00_mkey_hge.include"
+#endif
+
+#include "../modules/mal/language.include"
+#include "../modules/mal/01_batcalc.include"
+#include "../modules/mal/01_calc.include"
+
+#include "../scheduler/run_adder.include"
+#include "../scheduler/run_isolate.include"
+#include "../scheduler/run_memo.include"
+{ 0, 0}
+}
+;
+
+
+str
+malEmbeddedBoot(Client c)
+{
+       int i;
+       str msg = MAL_SUCCEED;
+
+       
+       if( embeddedinitialized )
+               return MAL_SUCCEED;
+       for(i = 0; malSignatures[i].modnme; i++){
+               msg = callString(c, malSignatures[i].source, FALSE);
+               if (msg) {
+                       fprintf(stderr,"!ERROR: malEmbeddedBoot: %s\n", msg);
+                       GDKfree(msg);
+               }
+       }
+       embeddedinitialized = 1;
+       return msg;
+}
+
+str
+malEmbeddedStop(Client c)
+{
+       (void) c;
+       return MAL_SUCCEED;
+}
+
+str
+malEmbeddedRestart(Client c)
+{
+       (void) c;
+       return MAL_SUCCEED;
+}
diff --git a/monetdb5/mal/mal_embedded.h b/monetdb5/mal/mal_embedded.h
new file mode 100644
--- /dev/null
+++ b/monetdb5/mal/mal_embedded.h
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+
+#ifndef _MAL_EMBEDDED_H
+#define _MAL_EMBEDDED_H
+
+#include "monetdb_config.h"
+#include "mal_type.h"
+#include "mal_client.h"
+#include "mal_namespace.h"
+#include "mal_exception.h"
+#include "mal_linker.h"
+#include "mal_import.h"
+#include "mal_builder.h"
+#include "mal_private.h"
+
+/* #define MAL_EMBEDDED_DEBUG  */
+
+mal_export str malEmbeddedBoot(Client c);
+mal_export str malEmbeddedStop(Client c);
+mal_export str malEmbeddedRestart(Client c);
+
+#endif /*  _MAL_EMBEDDED_H*/
diff --git a/monetdb5/mal/mal_module.c b/monetdb5/mal/mal_module.c
--- a/monetdb5/mal/mal_module.c
+++ b/monetdb5/mal/mal_module.c
@@ -251,8 +251,10 @@ void freeModule(Module m)
                if (pci && pci->token == COMMANDsymbol && pci->argc == 1) {
                        int ret = 0;
 
-                       assert(pci->fcn != NULL);
-                       (*pci->fcn)(&ret);
+                       if ( pci->fcn)
+                               (*pci->fcn)(&ret);
+                       else
+                               GDKerror("Missing address for epilogue '%s' ", 
m->name); 
                        (void)ret;
                }
        }
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -19,6 +19,7 @@
 #include "mal_builder.h"
 #include "mal_sabaoth.h"
 #include "mal_private.h"
+#include "mal_embedded.h"
 #include "gdk.h"       /* for opendir and friends */
 
 #ifdef HAVE_EMBEDDED
@@ -64,6 +65,7 @@ malBootstrap(void)
                fprintf(stderr,"#malBootstrap:Failed to create client thread");
                mal_exit(1);
        }
+       malEmbeddedBoot(c);
        s = malInclude(c, bootfile, 0);
        if (s != NULL) {
                fprintf(stderr, "!%s\n", s);
diff --git a/monetdb5/mal/mal_signatures b/monetdb5/mal/mal_signatures
new file mode 100644
--- /dev/null
+++ b/monetdb5/mal/mal_signatures
@@ -0,0 +1,9 @@
+/*
+ * 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.
+ */
+
+{ "welcome", "io.print('Hello')"}
diff --git a/monetdb5/modules/atoms/00_json_hge.include 
b/monetdb5/modules/atoms/00_json_hge.include
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/atoms/00_json_hge.include
@@ -0,0 +1,11 @@
+{ "00_json_hge",
+"# This Source Code Form is subject to the terms of the Mozilla Public \n"
+"# License, v. 2.0.  If a copy of the MPL was not distributed with this \n"
+"# file, You can obtain one at http://mozilla.org/MPL/2.0/. \n"
+"# \n"
+"# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V. \n"
+"command filter(name:json, idx:hge) :json \n"
+"address JSONfilterArray_hge; \n"
+"command filter(name:json, idx:hge, other:str) :json \n"
+"address JSONfilterArrayDefault_hge; \n"
+},
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to