Changeset: 08dc3638dd39 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=08dc3638dd39
Added Files:
        sql/backends/monet5/UDF/udf/89_udf.mal
        sql/backends/monet5/UDF/udf/89_udf_hge.mal
Removed Files:
        sql/backends/monet5/UDF/udf/80_udf.mal
        sql/backends/monet5/UDF/udf/80_udf.mal.h
        sql/backends/monet5/UDF/udf/80_udf_hge.mal
        sql/backends/monet5/UDF/udf/80_udf_hge.mal.h
Modified Files:
        gdk/gdk_utils.c
        monetdb5/mal/mal.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_embedded.c
        monetdb5/mal/mal_embedded.h
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/optimizer_private.h
        sql/backends/monet5/UDF/udf/Makefile.ag
        sql/backends/monet5/generator/Makefile.ag
        sql/backends/monet5/sql_embedded.c
        sql/backends/monet5/sql_embedded.h
        sql/backends/monet5/sql_inspect.mal
        sql/backends/monet5/sql_inspect.mal.h
        sql/scripts/sql_scripts.c
        sql/test/Tests/keys.stable.out
        tools/mserver/mserver5.c
        tools/mserver/shutdowntest.c
Branch: translate-scripts
Log Message:

The server now restarts, and loads SQL scenario again (required by shutdown 
test).


diffs (truncated from 748 to 300 lines):

diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -697,6 +697,7 @@ GDKinit(opt *set, int setlen)
                return GDK_FAIL;
        }
 
+       GDKstopped = 0;
        return GDK_SUCCEED;
 }
 
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -81,6 +81,7 @@ int mal_init(void){
        return 0;
 }
 
+extern void optimizerReset(void);
 /*
  * Upon exit we should attempt to remove all allocated memory explicitly.
  * This seemingly superflous action is necessary to simplify analyis of
@@ -148,6 +149,7 @@ void mserver_reset(void)
        memset((char*)monet_characteristics,0, sizeof(monet_characteristics));
        mal_trace = 0;
        mal_namespace_reset();
+       optimizerReset();
        /* No need to clean up the namespace, it will simply be extended
         * upon restart mal_namespace_reset(); */
        GDKreset(0);    // terminate all other threads
diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c
--- a/monetdb5/mal/mal_client.c
+++ b/monetdb5/mal/mal_client.c
@@ -50,15 +50,18 @@
 #include "mal_runtime.h"
 #include "mal_authorize.h"
 
+static int shutdowninprogress = 0;
 int MAL_MAXCLIENTS = 0;
-ClientRec *mal_clients;
+ClientRec *mal_clients = 0;
 
 void 
 mal_client_reset(void)
 {
        MAL_MAXCLIENTS = 0;
-       if (mal_clients)
+       if (mal_clients) {
                GDKfree(mal_clients);
+               mal_clients = 0;
+       }
 }
 
 void
@@ -85,6 +88,7 @@ MCinit(void)
                fprintf(stderr,"#MCinit:" MAL_MALLOC_FAIL);
                mal_exit(1);
        }
+       shutdowninprogress = 0;
 }
 
 /* stack the files from which you read */
@@ -450,7 +454,6 @@ freeClient(Client c)
  * When the server is about to shutdown, we should softly terminate
  * all outstanding session.
  */
-static int shutdowninprogress = 0;
 
 int
 MCshutdowninprogress(void){
diff --git a/monetdb5/mal/mal_embedded.c b/monetdb5/mal/mal_embedded.c
--- a/monetdb5/mal/mal_embedded.c
+++ b/monetdb5/mal/mal_embedded.c
@@ -17,6 +17,7 @@
 #include "mal_embedded.h"
 
 static bool embeddedinitialized = false;
+static int nDefaultModules = 0;
 
 /* The source for the MAL signatures*/
 malSignatures malModules[MAXMODULES] =
@@ -112,15 +113,16 @@ malSignatures malModules[MAXMODULES] =
 str
 malEmbeddedBoot(Client c)
 {
-       int i;
+       int i = 0;
        str msg = MAL_SUCCEED;
 
        if( embeddedinitialized )
                return MAL_SUCCEED;
-       for(i = 0; malModules[i].modnme; i++) {
+       for(; malModules[i].modnme; i++) {
                if ((msg = callString(c, malModules[i].source, FALSE)) != 
MAL_SUCCEED)
                        return msg;
        }
+       nDefaultModules = i;
        embeddedinitialized = true;
        return msg;
 }
@@ -150,9 +152,10 @@ malExtraModulesBoot(Client c, malSignatu
 }
 
 str
-malEmbeddedStop(Client c)
+malEmbeddedStop(void) //remove extra modules and set to non-initialized again
 {
-       (void) c;
+       memset(&malModules[nDefaultModules], 0, (MAXMODULES-1 - 
nDefaultModules) * sizeof(malSignatures));
+       embeddedinitialized = false;
        return MAL_SUCCEED;
 }
 
diff --git a/monetdb5/mal/mal_embedded.h b/monetdb5/mal/mal_embedded.h
--- a/monetdb5/mal/mal_embedded.h
+++ b/monetdb5/mal/mal_embedded.h
@@ -26,7 +26,7 @@ mal_export malSignatures malModules[];
 
 mal_export str malEmbeddedBoot(Client c);
 mal_export str malExtraModulesBoot(Client c, malSignatures extraMalModules[]);
-mal_export str malEmbeddedStop(Client c);
+mal_export str malEmbeddedStop(void);
 mal_export str malEmbeddedRestart(Client c);
 
 #endif /*  _MAL_EMBEDDED_H*/
diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -619,3 +619,307 @@ void optimizerInit(void)
        zero_or_oneRef = putName("zero_or_one");
 /* ! please keep this list sorted for easier maintenance ! */
 }
+
+void optimizerReset(void)
+{
+/* ! please keep this list sorted for easier maintenance ! */
+       abortRef = NULL;
+       actionRef = NULL;
+       affectedRowsRef = NULL;
+       aggrRef = NULL;
+       alarmRef = NULL;
+       algebraRef = NULL;
+       alter_add_range_partitionRef = NULL;
+       alter_add_tableRef = NULL;
+       alter_add_value_partitionRef = NULL;
+       alter_constraintRef = NULL;
+       alter_del_tableRef = NULL;
+       alter_functionRef = NULL;
+       alter_indexRef = NULL;
+       alter_roleRef = NULL;
+       alter_schemaRef = NULL;
+       alter_seqRef = NULL;
+       alter_set_tableRef = NULL;
+       alter_tableRef = NULL;
+       alter_triggerRef = NULL;
+       alter_typeRef = NULL;
+       alter_userRef = NULL;
+       alter_viewRef = NULL;
+       andRef = NULL;
+       antijoinRef = NULL;
+       appendidxRef = NULL;
+       appendRef = NULL;
+       arrayRef = NULL;
+       assertRef = NULL;
+       attachRef = NULL;
+       avgRef = NULL;
+       bandjoinRef = NULL;
+       basketRef = NULL;
+       batalgebraRef = NULL;
+       batcalcRef = NULL;
+       batcapiRef = NULL;
+       batmalRef = NULL;
+       batmmathRef = NULL;
+       batmtimeRef = NULL;
+       batpyapi3Ref = NULL;
+       batpyapiRef = NULL;
+       batrapiRef = NULL;
+       batRef = NULL;
+       batsqlRef = NULL;
+       batstrRef = NULL;
+       batxmlRef = NULL;
+       bbpRef = NULL;
+       betweenRef = NULL;
+       betweensymmetricRef = NULL;
+       binddbatRef = NULL;
+       bindidxRef = NULL;
+       bindRef = NULL;
+       blockRef = NULL;
+       bpmRef = NULL;
+       bstreamRef = NULL;
+       calcRef = NULL;
+       capiRef = NULL;
+       catalogRef = NULL;
+       clear_tableRef = NULL;
+       closeRef = NULL;
+       columnBindRef = NULL;
+       columnRef = NULL;
+       comment_onRef = NULL;
+       commitRef = NULL;
+       connectRef = NULL;
+       copy_fromRef = NULL;
+       copyRef = NULL;
+       count_no_nilRef = NULL;
+       countRef = NULL;
+       create_constraintRef = NULL;
+       create_functionRef = NULL;
+       create_indexRef = NULL;
+       createRef = NULL;
+       create_roleRef = NULL;
+       create_schemaRef = NULL;
+       create_seqRef = NULL;
+       create_tableRef = NULL;
+       create_triggerRef = NULL;
+       create_typeRef = NULL;
+       create_userRef = NULL;
+       create_viewRef = NULL;
+       crossRef = NULL;
+       cume_distRef = NULL;
+       dataflowRef = NULL;
+       dateRef = NULL;
+       dblRef = NULL;
+       defineRef = NULL;
+       deleteRef = NULL;
+       deltaRef = NULL;
+       dense_rankRef = NULL;
+       differenceRef = NULL;
+       disconnectRef= NULL;
+       divRef = NULL;
+       drop_constraintRef = NULL;
+       drop_functionRef = NULL;
+       drop_indexRef = NULL;
+       drop_roleRef = NULL;
+       drop_schemaRef = NULL;
+       drop_seqRef = NULL;
+       drop_tableRef = NULL;
+       drop_triggerRef = NULL;
+       drop_typeRef = NULL;
+       drop_userRef = NULL;
+       drop_viewRef = NULL;
+       emptybindidxRef = NULL;
+       emptybindRef = NULL;
+       eqRef = NULL;
+       evalRef = NULL;
+       execRef = NULL;
+       expandRef = NULL;
+       exportOperationRef = NULL;
+       export_tableRef = NULL;
+       fetchRef = NULL;
+       findRef = NULL;
+       finishRef = NULL;
+       firstnRef = NULL;
+       first_valueRef = NULL;
+       generatorRef = NULL;
+       getRef = NULL;
+       getTraceRef = NULL;
+       grant_functionRef = NULL;
+       grantRef = NULL;
+       grant_rolesRef = NULL;
+       groupbyRef = NULL;
+       group_concatRef = NULL;
+       groupdoneRef = NULL;
+       groupRef = NULL;
+       hashRef = NULL;
+       hgeRef = NULL;
+       identityRef = NULL;
+       ifthenelseRef = NULL;
+       ilikeRef = NULL;
+       ilikeselectRef = NULL;
+       ilikethetaselectRef = NULL;
+       inplaceRef = NULL;
+       intersectcandRef= NULL;
+       intersectRef = NULL;
+       intRef = NULL;
+       ioRef = NULL;
+       iteratorRef = NULL;
+       jitRef = NULL;
+       joinRef = NULL;
+       jsonRef = NULL;
+       lagRef = NULL;
+       languageRef= NULL;
+       last_valueRef = NULL;
+       leadRef = NULL;
+       leftjoinRef = NULL;
+       likeRef = NULL;
+       likeselectRef = NULL;
+       likethetaselectRef = NULL;
+       listRef = NULL;
+       lockRef = NULL;
+       lookupRef = NULL;
+       malRef = NULL;
+       manifoldRef = NULL;
+       mapiRef = NULL;
+       markRef = NULL;
+       matRef = NULL;
+       max_no_nilRef = NULL;
+       maxRef = NULL;
+       mdbRef = NULL;
+       mergecandRef= NULL;
+       mergepackRef= NULL;
+       min_no_nilRef = NULL;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to