Changeset: e3f80b513581 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e3f80b513581
Modified Files:
        monetdb5/mal/mal_resource.c
        monetdb5/mal/mal_resource.h
        sql/backends/monet5/sql_upgrades.c
        sql/scripts/99_system.sql
Branch: leftmart
Log Message:

merge with the default


diffs (70 lines):

diff --git a/monetdb5/mal/mal_resource.c b/monetdb5/mal/mal_resource.c
--- a/monetdb5/mal/mal_resource.c
+++ b/monetdb5/mal/mal_resource.c
@@ -164,7 +164,7 @@ MALadmission(lng argclaim, lng hotclaim)
  * By keeping the query start time in the client record we can delay
  * them when resource stress occurs.
  */
-ATOMIC_TYPE mal_running;
+volatile ATOMIC_TYPE mal_running;
 #ifdef ATOMIC_LOCK
 MT_Lock mal_runningLock MT_LOCK_INITIALIZER("mal_runningLock");
 #endif
@@ -194,7 +194,7 @@ MALresourceFairness(lng usec)
        clk = clk > FAIRNESS_THRESHOLD? FAIRNESS_THRESHOLD:clk;
 
        /* always keep one running to avoid all waiting  */
-       while (clk > DELAYUNIT && users > 1 && mal_running > GDKnr_threads && 
rss > MEMORY_THRESHOLD) {
+       while (clk > DELAYUNIT && users > 1 && ATOMIC_GET(mal_running, 
mal_runningLock) > (ATOMIC_TYPE) GDKnr_threads && rss > MEMORY_THRESHOLD) {
                if ( delayed++ == 0){
                                PARDEBUG mnstr_printf(GDKstdout, "#delay 
initial ["LLFMT"] memory  "SZFMT"[%f]\n", clk, rss, MEMORY_THRESHOLD );
                                PARDEBUG mnstr_flush(GDKstdout);
@@ -218,7 +218,7 @@ MALresourceFairness(lng usec)
 size_t
 MALrunningThreads(void)
 {
-       return mal_running;
+       return ATOMIC_GET(mal_running, mal_runningLock);
 }
 
 void
diff --git a/monetdb5/mal/mal_resource.h b/monetdb5/mal/mal_resource.h
--- a/monetdb5/mal/mal_resource.h
+++ b/monetdb5/mal/mal_resource.h
@@ -11,7 +11,7 @@
 
 #include "mal_interpreter.h"
 #include "gdk_atomic.h"
-mal_export ATOMIC_TYPE mal_running;
+mal_export volatile ATOMIC_TYPE mal_running;
 #ifdef ATOMIC_LOCK
 mal_export MT_Lock mal_runningLock;
 #endif
diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -1260,6 +1260,11 @@ sql_update_jun2016(Client c)
        pos += snprintf(buf + pos, bufsize - pos,
                        "insert into sys.systemfunctions (select id from 
sys.functions where name = 'storage' and schema_id = (select id from 
sys.schemas where name = 'sys') and id not in (select function_id from 
sys.systemfunctions));\n");
 
+       /* change to 99_system.sql: correct invalid FK schema ids, set them to 
schema id 2000 (the "sys" schema) */
+       pos += snprintf(buf + pos, bufsize - pos,
+                       "UPDATE sys.types     SET schema_id = 2000 WHERE 
schema_id = 0 AND schema_id NOT IN (SELECT id from sys.schemas);\n"
+                       "UPDATE sys.functions SET schema_id = 2000 WHERE 
schema_id = 0 AND schema_id NOT IN (SELECT id from sys.schemas);\n");
+
        if (schema) {
                pos += snprintf(buf + pos, bufsize - pos, "set schema 
\"%s\";\n", schema);
                free(schema);
diff --git a/sql/scripts/99_system.sql b/sql/scripts/99_system.sql
--- a/sql/scripts/99_system.sql
+++ b/sql/scripts/99_system.sql
@@ -15,5 +15,9 @@ update _tables set system = true;
 -- only system schemas until now
 update schemas set system = true;
 
+-- correct invalid FK schema ids, set them to schema id 2000 (the "sys" schema)
+UPDATE sys.types     SET schema_id = 2000 WHERE schema_id = 0 AND schema_id 
NOT IN (SELECT id from sys.schemas);
+UPDATE sys.functions SET schema_id = 2000 WHERE schema_id = 0 AND schema_id 
NOT IN (SELECT id from sys.schemas);
+
 -- make sure all gets commited
 COMMIT;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to