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