Changeset: 1e72be5ac502 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1e72be5ac502
Modified Files:
        clients/Tests/exports.stable.out
        gdk/gdk.h
        gdk/gdk_atomic.h
        gdk/gdk_bbp.c
        gdk/gdk_system.h
        gdk/gdk_utils.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_recycle.c
        monetdb5/mal/mal_resource.c
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
Branch: default
Log Message:

Merger


diffs (truncated from 757 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -212,9 +212,9 @@ BAT *BATundo(BAT *b);
 BAT *BATuselect(BAT *b, const void *tl, const void *th);
 BAT *BATuselect_(BAT *b, const void *tl, const void *th, bit li, bit hi);
 BBPrec *BBP[N_BBPINIT];
-int BBP_curstamp;
 void BBPclear(bat bid);
 void BBPcold(bat b);
+int BBPcurstamp(void);
 int BBPdecref(bat b, int logical);
 BAT *BBPdescriptor(bat b);
 int BBPdir(int cnt, bat *subcommit);
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1892,7 +1892,7 @@ gdk_export BBPrec *BBP[N_BBPINIT];
 /* macros that nicely check parameters */
 #define BBPcacheid(b)  ((b)->batCacheid)
 #define BBPstatus(i)   (BBPcheck((i),"BBPstatus")?BBP_status(i):-1)
-#define BBPcurstamp()  BBP_curstamp
+gdk_export int BBPcurstamp(void);
 #define BBPrefs(i)     (BBPcheck((i),"BBPrefs")?BBP_refs(i):-1)
 #define BBPcache(i)    (BBPcheck((i),"BBPcache")?BBP_cache(i):(BAT*) NULL)
 /* we use ABS(i) instead of -(i) here because of a bug in gcc 4.8.2
@@ -1923,7 +1923,6 @@ gdk_export void BBPunlock(const char *s)
 
 gdk_export str BBPlogical(bat b, str buf);
 gdk_export str BBPphysical(bat b, str buf);
-gdk_export int BBP_curstamp;
 gdk_export BAT *BBPquickdesc(bat b, int delaccess);
 
 /*
diff --git a/gdk/gdk_atomic.h b/gdk/gdk_atomic.h
--- a/gdk/gdk_atomic.h
+++ b/gdk/gdk_atomic.h
@@ -59,8 +59,8 @@
 #define ATOMIC_SET(var, val, lck, fcn) AO_store_full(&var, (val))
 #define ATOMIC_ADD(var, val, lck, fcn) AO_fetch_and_add(&var, (val))
 #define ATOMIC_SUB(var, val, lck, fcn) AO_fetch_and_add(&var, -(val))
-#define ATOMIC_INC(var, lck, fcn)      AO_fetch_and_add1(&var)
-#define ATOMIC_DEC(var, lck, fcn)      AO_fetch_and_sub1(&var)
+#define ATOMIC_INC(var, lck, fcn)      (AO_fetch_and_add1(&var) + 1)
+#define ATOMIC_DEC(var, lck, fcn)      (AO_fetch_and_sub1(&var) - 1)
 
 #define ATOMIC_INIT(lck, fcn)          ((void) 0)
 
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -161,7 +161,10 @@ BBP_delete(bat i)
 /*
  * other globals
  */
-int BBP_curstamp = 0;          /* unique stamp for creation of a bat */
+#ifdef ATOMIC_LOCK
+static MT_Lock BBP_curstampLock MT_LOCK_INITIALIZER("BBP_curstampLock");
+#endif
+static volatile ATOMIC_TYPE BBP_curstamp = 0; /* unique stamp for creation of 
a bat */
 MT_Id BBP_notrim = ~((MT_Id) 0);       /* avoids BBPtrim when we really do not 
want it */
 int BBP_dirty = 0;             /* BBP structures modified? */
 int BBPin = 0;                 /* bats loaded statistic */
@@ -1612,6 +1615,12 @@ BBPgetsubdir(str s, bat i)
        *s = 0;
 }
 
+int
+BBPcurstamp(void)
+{
+       return ATOMIC_GET(BBP_curstamp, BBP_curstampLock, "BBPcurstamp") & 
0x7fffffff;
+}
+
 bat
 BBPinsert(BATstore *bs)
 {
@@ -1673,11 +1682,9 @@ BBPinsert(BATstore *bs)
 
        /* fill in basic BBP fields for the new bat */
 
-       if (++BBP_curstamp < 0)
-               BBP_curstamp = 0;
+       bs->S.stamp = ATOMIC_INC(BBP_curstamp, BBP_curstampLock, "BBPinsert") & 
0x7fffffff;
        bs->B.batCacheid = i;
        bs->BM.batCacheid = -i;
-       bs->S.stamp = BBP_curstamp;
        bs->S.tid = MT_getpid();
 
        BBP_status_set(i, BBPDELETING, "BBPentry");
diff --git a/gdk/gdk_system.h b/gdk/gdk_system.h
--- a/gdk/gdk_system.h
+++ b/gdk/gdk_system.h
@@ -219,17 +219,17 @@ gdk_export ATOMIC_FLAG volatile GDKlockl
 gdk_export ATOMIC_TYPE volatile GDKlockcnt;
 gdk_export ATOMIC_TYPE volatile GDKlockcontentioncnt;
 gdk_export ATOMIC_TYPE volatile GDKlocksleepcnt;
-#define _DBG_LOCK_COUNT_0(l, n)                ATOMIC_INC(GDKlockcnt, dummy, n)
+#define _DBG_LOCK_COUNT_0(l, n)                (void) ATOMIC_INC(GDKlockcnt, 
dummy, n)
 #define _DBG_LOCK_LOCKER(l, n)         ((l)->locker = (n))
 #define _DBG_LOCK_CONTENTION(l, n)                                     \
        do {                                                            \
                TEMDEBUG fprintf(stderr, "#lock %s contention in %s\n", 
(l)->name, n); \
-               ATOMIC_INC(GDKlockcontentioncnt, dummy, n);             \
+               (void) ATOMIC_INC(GDKlockcontentioncnt, dummy, n);      \
        } while (0)
-#define _DBG_LOCK_SLEEP(l, n)                                  \
-       do {                                                    \
-               if (_spincnt == 1024)                           \
-                       ATOMIC_INC(GDKlocksleepcnt, dummy, n);  \
+#define _DBG_LOCK_SLEEP(l, n)                                          \
+       do {                                                            \
+               if (_spincnt == 1024)                                   \
+                       (void) ATOMIC_INC(GDKlocksleepcnt, dummy, n);   \
        } while (0)
 #define _DBG_LOCK_COUNT_1(l)                   \
        do {                                    \
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -468,7 +468,7 @@ GDKvm_cursize(void)
                                                                        \
                ATOMIC_ADD(GDK_mallocedbytes_estimate, _memdelta, mbyteslock, 
"heapinc"); \
                GDKmallidx(_idx, _memdelta);                            \
-               ATOMIC_INC(GDK_nmallocs[_idx], mbyteslock, "heapinc");  \
+               (void) ATOMIC_INC(GDK_nmallocs[_idx], mbyteslock, "heapinc"); \
        } while (0)
 #define heapdec(memdelta)                                              \
        do {                                                            \
@@ -477,7 +477,7 @@ GDKvm_cursize(void)
                                                                        \
                ATOMIC_SUB(GDK_mallocedbytes_estimate, _memdelta, mbyteslock, 
"heapdec"); \
                GDKmallidx(_idx, _memdelta);                            \
-               ATOMIC_DEC(GDK_nmallocs[_idx], mbyteslock, "heapdec");  \
+               (void) ATOMIC_DEC(GDK_nmallocs[_idx], mbyteslock, "heapdec"); \
        } while (0)
 #else
 #define heapinc(_memdelta)                                             \
@@ -493,7 +493,7 @@ GDKvm_cursize(void)
                int _idx;                                               \
                                                                        \
                GDKmallidx(_idx, _vmdelta);                             \
-               ATOMIC_INC(GDK_vm_nallocs[_idx], mbyteslock, fcn);      \
+               (void) ATOMIC_INC(GDK_vm_nallocs[_idx], mbyteslock, fcn); \
                ATOMIC_ADD(GDK_vm_cursize, _vmdelta, mbyteslock, fcn);  \
        } while (0)
 #define memdec(vmdelta, fcn)                                           \
@@ -502,7 +502,7 @@ GDKvm_cursize(void)
                int _idx;                                               \
                                                                        \
                GDKmallidx(_idx, _vmdelta);                             \
-               ATOMIC_DEC(GDK_vm_nallocs[_idx], mbyteslock, fcn);      \
+               (void) ATOMIC_DEC(GDK_vm_nallocs[_idx], mbyteslock, fcn); \
                ATOMIC_SUB(GDK_vm_cursize, _vmdelta, mbyteslock, fcn);  \
        } while (0)
 #else
diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -1520,7 +1520,7 @@ static void profilerHeartbeat(void *dumm
                                        return;
                        }
                }
-               for (t = ATOMIC_GET(hbdelay, hbLock, "profilerHeatbeatEvent"); 
t > 0; t -= 50) {
+               for (t = (int) ATOMIC_GET(hbdelay, hbLock, 
"profilerHeatbeatEvent"); t > 0; t -= 50) {
                        MT_sleep_ms(t > 50 ? 50 : t);
                        if (!ATOMIC_GET(hbrunning, hbLock, "profilerHeartbeat"))
                                return;
diff --git a/monetdb5/mal/mal_recycle.c b/monetdb5/mal/mal_recycle.c
--- a/monetdb5/mal/mal_recycle.c
+++ b/monetdb5/mal/mal_recycle.c
@@ -834,7 +834,7 @@ RECYCLEentry(Client cntxt, MalBlkPtr mb,
 {
        int i=0;
 
-       ATOMIC_INC(statements, statementsLock, "RECYCLEentry");
+       (void) ATOMIC_INC(statements, statementsLock, "RECYCLEentry");
        if ( !RECYCLEinterest(p) )  /* don't scan RecyclerPool for 
non-monitored instructions */
                return 0;
        if ( recycleBlk == NULL ){
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
@@ -204,7 +204,7 @@ MALresourceFairness(lng usec)
 
        if ( clk > DELAYUNIT ) {
                PARDEBUG mnstr_printf(GDKstdout, "#delay initial "LLFMT"n", 
clk);
-               ATOMIC_DEC(running, runningLock, "MALresourceFairness");
+               (void) ATOMIC_DEC(running, runningLock, "MALresourceFairness");
                /* always keep one running to avoid all waiting  */
                while (clk > 0 && running >= 2 && delayed < MAX_DELAYS) {
                        /* speed up wake up when we have memory */
@@ -222,7 +222,7 @@ MALresourceFairness(lng usec)
                        } else break;
                        clk -= DELAYUNIT;
                }
-               ATOMIC_INC(running, runningLock, "MALresourceFairness");
+               (void) ATOMIC_INC(running, runningLock, "MALresourceFairness");
        }
 }
 
diff --git a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out 
b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
@@ -20,275 +20,9 @@ stdout of test 'upgrade` in directory 's
 
 Ready.
 
-Running database upgrade commands:
-set schema "sys";
-drop procedure sys.resetHistory;
-drop procedure sys.keepCall;
-drop procedure sys.keepQuery;
-update sys._tables set system = false where name in 
('callhistory','queryhistory','querylog') and schema_id = (select id from 
sys.schemas where name = 'sys');
-drop view sys.queryLog;
-drop table sys.callHistory;
-drop table sys.queryHistory;
-create function sys.querylog_catalog()
-returns table(
-       id oid,
-       owner string,
-       defined timestamp,
-       query string,
-       pipe string,
-       mal int,                        -- size of MAL plan
-       optimize bigint         -- time in usec
-)
-external name sql.querylog_catalog;
-
-create function sys.querylog_calls()
-returns table(
-       id oid,                          -- references query plan
-       "start" timestamp,      -- time the statement was started
-       "stop" timestamp,       -- time the statement was completely finished
-       arguments string,       -- actual call structure
-       tuples wrd,                     -- number of tuples in the result set
-       run bigint,             -- time spent (in usec)  until the result export
-       ship bigint,            -- time spent (in usec)  to ship the result set
-       cpu int,                -- average cpu load percentage during execution
-       io int,                 -- percentage time waiting for IO to finish 
-       space bigint            -- total storage size of intermediates created 
(in MB)
-)
-external name sql.querylog_calls;
-
-create view sys.querylog_catalog as select * from sys.querylog_catalog();
-create view sys.querylog_calls as select * from sys.querylog_calls();
-create view sys.querylog_history as
-select qd.*, ql."start",ql."stop", ql.arguments, ql.tuples, ql.run, ql.ship, 
ql.cpu, ql.space, ql.io 
-from sys.querylog_catalog() qd, sys.querylog_calls() ql
-where qd.id = ql.id and qd.owner = user;
-
-update sys._tables
-    set system = true
-    where name in ('querylog_history', 'querylog_calls', 'querylog_catalog')
-        and schema_id = (select id from sys.schemas where name = 'sys');
-
-create procedure sys.querylog_empty()
-external name sql.querylog_empty;
-
-create procedure sys.querylog_enable()
-external name sql.querylog_enable;
-create procedure sys.querylog_enable(threshold smallint)
-external name sql.querylog_enable_threshold;
-create procedure sys.querylog_disable()
-external name sql.querylog_disable;
-create view sys.tracelog as select * from sys.tracelog();
-drop function sys.clients;
-create function sys.sessions() returns table("user" string, "login" timestamp, 
"sessiontimeout" bigint, "lastcommand" timestamp, "querytimeout" bigint, 
"active" bool) external name sql.sessions;
-create view sys.sessions as select * from sys.sessions();
-create procedure sys.shutdown(delay tinyint) external name sql.shutdown;
-create procedure sys.shutdown(delay tinyint, force bool) external name 
sql.shutdown;
-create procedure sys.settimeout("query" bigint) external name sql.settimeout;
-create procedure sys.settimeout("query" bigint, "session" bigint) external 
name sql.settimeout;
-create procedure sys.setsession("timeout" bigint) external name sql.setsession;
-create view sys.optimizers as select * from sys.optimizers();
-create view sys.environment as select * from sys.environment();
-create function sys.queue()
-returns table(
-       qtag bigint,
-       "user" string,
-       started timestamp,
-       estimate timestamp,
-       progress int,
-       status string,
-       tag oid,
-       query string
-)
-external name sql.sysmon_queue;
-
-create view sys.queue as select * from sys.queue();
-update sys._tables
-    set system = true
-    where name = 'queue'
-        and schema_id = (select id from sys.schemas where name = 'sys');
-
-create procedure sys.pause(tag int)
-external name sql.sysmon_pause;
-create procedure sys.resume(tag int)
-external name sql.sysmon_resume;
-create procedure sys.stop(tag int)
-external name sql.sysmon_stop;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to