Changeset: d64001b5d7de for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d64001b5d7de
Added Files:
        sql/test/BugTracker-2015/Tests/concurrent-queries.Bug-3848.SQL.py
        sql/test/BugTracker-2015/Tests/concurrent-queries.Bug-3848.stable.err
        sql/test/BugTracker-2015/Tests/concurrent-queries.Bug-3848.stable.out
        sql/test/BugTracker-2015/Tests/concurrent-queries.Bug-3848.timeout
        sql/test/BugTracker-2015/Tests/concurrent-schema.Bug-3826.SQL.py
        sql/test/BugTracker-2015/Tests/concurrent-schema.Bug-3826.stable.err
        sql/test/BugTracker-2015/Tests/concurrent-schema.Bug-3826.stable.out
        sql/test/BugTracker-2015/Tests/schema-trigger.Bug-3710.sql
Removed Files:
        sql/storage/restrict/Makefile.ag
Modified Files:
        NT/monetdb_config.h.in
        clients/mapilib/mapi.c
        clients/python2/monetdb/control.py
        clients/python3/monetdb/control.py
        gdk/gdk_align.c
        gdk/gdk_atomic.h
        gdk/gdk_atoms.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_imprints.c
        gdk/gdk_search.c
        gdk/gdk_system.c
        gdk/gdk_system.h
        gdk/gdk_tm.c
        gdk/gdk_utils.c
        monetdb5/extras/rapi/rapi.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_debugger.c
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_linker.c
        monetdb5/mal/mal_namespace.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_recycle.c
        monetdb5/mal/mal_resource.c
        monetdb5/mal/mal_runtime.c
        monetdb5/mal/mal_scenario.c
        monetdb5/mal/mal_session.c
        monetdb5/modules/kernel/alarm.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/querylog.c
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/sysmon.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/tokenizer.c
        monetdb5/optimizer/opt_mergetable.c
        monetdb5/optimizer/opt_pipes.c
        monetdb5/optimizer/opt_statistics.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/vaults/bam/bam_loader.c
        sql/backends/monet5/vaults/lidar/lidar.c
        sql/benchmarks/ssbm/Tests/04-explain.stable.out
        sql/benchmarks/ssbm/Tests/05-explain.stable.out
        sql/benchmarks/ssbm/Tests/06-explain.stable.out
        sql/benchmarks/ssbm/Tests/07-explain.stable.out
        sql/benchmarks/ssbm/Tests/08-explain.stable.out
        sql/benchmarks/ssbm/Tests/09-explain.stable.out
        sql/benchmarks/ssbm/Tests/10-explain.stable.out
        sql/benchmarks/ssbm/Tests/11-explain.stable.out
        sql/benchmarks/ssbm/Tests/12-explain.stable.out
        sql/benchmarks/ssbm/Tests/13-explain.stable.out
        sql/benchmarks/tpch/Tests/01-explain.stable.out
        sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/03-explain.stable.out
        sql/benchmarks/tpch/Tests/04-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/05-explain.stable.out
        sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/07-explain.stable.out
        sql/benchmarks/tpch/Tests/08-explain.stable.out
        sql/benchmarks/tpch/Tests/09-explain.stable.out
        sql/benchmarks/tpch/Tests/10-explain.stable.out
        sql/benchmarks/tpch/Tests/11-explain.stable.out
        sql/benchmarks/tpch/Tests/12-explain.stable.out
        sql/benchmarks/tpch/Tests/14-explain.stable.out
        sql/benchmarks/tpch/Tests/15-explain.stable.out
        sql/benchmarks/tpch/Tests/16-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/17-explain.stable.out
        sql/benchmarks/tpch/Tests/18-explain.stable.out
        sql/benchmarks/tpch/Tests/19-explain.stable.out
        sql/benchmarks/tpch/Tests/20-explain.stable.out
        sql/benchmarks/tpch/Tests/20-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/22-explain.stable.out
        sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit
        sql/common/sql_list.c
        sql/common/sql_types.c
        sql/server/rel_exp.c
        sql/server/rel_optimizer.c
        sql/server/rel_planner.c
        sql/server/rel_select.c
        sql/server/rel_updates.c
        sql/storage/sql_catalog.c
        sql/storage/store.c
        sql/test/BugTracker-2015/Tests/All
        sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.err
        sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out
        
sql/test/BugTracker-2015/Tests/date_comparison_incorrect_results.Bug-3834.stable.out
        
sql/test/BugTracker-2015/Tests/update_with_without_parenthesis.Bug-3838.stable.out
        sql/test/SQLite_regress/sqllogictest/Tests/select2.test.sql
        sql/test/SQLite_regress/sqllogictest/Tests/select2.test.stable.out
        
sql/test/SQLite_regress/sqllogictest/Tests/select2.test.stable.out.int128
        sql/test/SQLite_regress/sqllogictest/Tests/select5.test.timeout
        sql/test/mergetables/Tests/singlekeyconstraint.sql
        sql/test/mergetables/Tests/singlekeyconstraint.stable.err
        sql/test/mergetables/Tests/singlekeyconstraint.stable.out
Branch: profiler
Log Message:

Merge with default


diffs (truncated from 85075 to 300 lines):

diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -57,6 +57,8 @@
 
 #include <assert.h>
 
+#define __func__ __FUNCTION__
+
 /* indicate to sqltypes.h that windows.h has already been included and
    that it doesn't have to define Windows constants */
 #define ALREADY_HAVE_WINDOWS_TYPE 1
diff --git a/clients/python2/monetdb/control.py 
b/clients/python2/monetdb/control.py
--- a/clients/python2/monetdb/control.py
+++ b/clients/python2/monetdb/control.py
@@ -17,7 +17,7 @@ def parse_statusline(line):
     if line.startswith("="):
         line = line[1:]
     if not line.startswith('sabdb:'):
-        raise OperationalError('wrong result recieved')
+        raise OperationalError('wrong result received')
 
     code, prot_version, rest = line.split(":", 2)
 
diff --git a/clients/python3/monetdb/control.py 
b/clients/python3/monetdb/control.py
--- a/clients/python3/monetdb/control.py
+++ b/clients/python3/monetdb/control.py
@@ -17,7 +17,7 @@ def parse_statusline(line):
     if line.startswith("="):
         line = line[1:]
     if not line.startswith('sabdb:'):
-        raise OperationalError('wrong result recieved')
+        raise OperationalError('wrong result received')
 
     code, prot_version, rest = line.split(":", 2)
 
diff --git a/gdk/gdk_align.c b/gdk/gdk_align.c
--- a/gdk/gdk_align.c
+++ b/gdk/gdk_align.c
@@ -555,7 +555,7 @@ gdk_return
 VIEWreset(BAT *b)
 {
        bat hp, tp, hvp, tvp;
-       Heap head, tail, hh, th;
+       Heap head, tail, *hh = NULL, *th = NULL;
        BAT *n = NULL, *v = NULL;
 
        if (b == NULL)
@@ -574,13 +574,14 @@ VIEWreset(BAT *b)
                /* alloc heaps */
                memset(&head, 0, sizeof(Heap));
                memset(&tail, 0, sizeof(Heap));
-               memset(&hh, 0, sizeof(Heap));
-               memset(&th, 0, sizeof(Heap));
 
-               n = BATdescriptor(abs(b->batCacheid)); /* normalized */
-               if (n == NULL)
-                       goto bailout;
-               m = BATmirror(n); /* mirror of normalized */
+               if (b->batCacheid > 0) {
+                       n = b;
+                       m = BATmirror(b);
+               } else {
+                       n = BATmirror(b);
+                       m = b;
+               }
                bs = BBP_desc(n->batCacheid);
                cnt = BATcount(n) + 1;
                nme = BBP_physical(n->batCacheid);
@@ -609,21 +610,27 @@ VIEWreset(BAT *b)
                                goto bailout;
                }
                if (n->H->vheap) {
-                       hh.farmid = BBPselectfarm(n->batRole, n->htype, 
varheap);
-                       hh.filename = (str) GDKmalloc(nmelen + 12);
-                       if (hh.filename == NULL)
+                       hh = GDKzalloc(sizeof(Heap));
+                       if (hh == NULL)
                                goto bailout;
-                       snprintf(hh.filename, nmelen + 12, "%s.hheap", nme);
-                       if (ATOMheap(n->htype, &hh, cnt) != GDK_SUCCEED)
+                       hh->farmid = BBPselectfarm(n->batRole, n->htype, 
varheap);
+                       hh->filename = (str) GDKmalloc(nmelen + 12);
+                       if (hh->filename == NULL)
+                               goto bailout;
+                       snprintf(hh->filename, nmelen + 12, "%s.hheap", nme);
+                       if (ATOMheap(n->htype, hh, cnt) != GDK_SUCCEED)
                                goto bailout;
                }
                if (n->T->vheap) {
-                       th.farmid = BBPselectfarm(n->batRole, n->ttype, 
varheap);
-                       th.filename = (str) GDKmalloc(nmelen + 12);
-                       if (th.filename == NULL)
+                       th = GDKzalloc(sizeof(Heap));
+                       if (th == NULL)
                                goto bailout;
-                       snprintf(th.filename, nmelen + 12, "%s.theap", nme);
-                       if (ATOMheap(n->ttype, &th, cnt) != GDK_SUCCEED)
+                       th->farmid = BBPselectfarm(n->batRole, n->ttype, 
varheap);
+                       th->filename = (str) GDKmalloc(nmelen + 12);
+                       if (th->filename == NULL)
+                               goto bailout;
+                       snprintf(th->filename, nmelen + 12, "%s.theap", nme);
+                       if (ATOMheap(n->ttype, th, cnt) != GDK_SUCCEED)
                                goto bailout;
                }
 
@@ -679,34 +686,36 @@ VIEWreset(BAT *b)
                n->T->heap = tail;
 
                /* unshare from parents heap */
-               if (hh.base) {
+               if (hh) {
                        assert(n->H->vheap == NULL);
-                       n->H->vheap = (Heap *) GDKzalloc(sizeof(Heap));
-                       if (n->H->vheap == NULL)
-                               goto bailout;
-                       *n->H->vheap = hh;
+                       n->H->vheap = hh;
+                       hh = NULL;
                        n->H->vheap->parentid = n->batCacheid;
                }
-               if (th.base) {
+               if (th) {
                        assert(n->T->vheap == NULL);
-                       n->T->vheap = (Heap *) GDKzalloc(sizeof(Heap));
-                       if (n->T->vheap == NULL)
-                               goto bailout;
-                       *n->T->vheap = th;
+                       n->T->vheap = th;
+                       th = NULL;
                        n->T->vheap->parentid = n->batCacheid;
                }
 
-               n->batSharecnt = 0;
-               n->batCopiedtodisk = 0;
-               n->batDirty = 1;
                if (v->H->heap.parentid == n->batCacheid) {
                        assert(hp == 0);
+                       assert(n->batSharecnt > 0);
+                       BBPunshare(n->batCacheid);
+                       BBPunfix(n->batCacheid);
                        v->H->heap.parentid = 0;
                }
                if (v->T->heap.parentid == -n->batCacheid) {
                        assert(tp == 0);
+                       assert(n->batSharecnt > 0);
+                       BBPunshare(n->batCacheid);
+                       BBPunfix(n->batCacheid);
                        v->T->heap.parentid = 0;
                }
+               n->batSharecnt = 0;
+               n->batCopiedtodisk = 0;
+               n->batDirty = 1;
 
                /* reset BOUND2KEY */
                n->hkey = BAThkey(v);
@@ -728,17 +737,14 @@ VIEWreset(BAT *b)
                /* insert all of v in n, and quit */
                BATins(n, m, FALSE);
                BBPreclaim(v);
-               BBPunfix(n->batCacheid);
        }
        return GDK_SUCCEED;
       bailout:
        BBPreclaim(v);
-       if (n != NULL)
-               BBPunfix(n->batCacheid);
        HEAPfree(&head, 0);
        HEAPfree(&tail, 0);
-       HEAPfree(&hh, 0);
-       HEAPfree(&th, 0);
+       GDKfree(hh);
+       GDKfree(th);
        return GDK_FAIL;
 }
 
diff --git a/gdk/gdk_atomic.h b/gdk/gdk_atomic.h
--- a/gdk/gdk_atomic.h
+++ b/gdk/gdk_atomic.h
@@ -47,19 +47,19 @@
 
 #define ATOMIC_TYPE                    AO_t
 
-#define ATOMIC_GET(var, lck, fcn)      AO_load_full(&var)
-#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) + 1)
-#define ATOMIC_DEC(var, lck, fcn)      (AO_fetch_and_sub1(&var) - 1)
+#define ATOMIC_GET(var, lck)           AO_load_full(&var)
+#define ATOMIC_SET(var, val, lck)      AO_store_full(&var, (val))
+#define ATOMIC_ADD(var, val, lck)      AO_fetch_and_add(&var, (val))
+#define ATOMIC_SUB(var, val, lck)      AO_fetch_and_add(&var, -(val))
+#define ATOMIC_INC(var, lck)           (AO_fetch_and_add1(&var) + 1)
+#define ATOMIC_DEC(var, lck)           (AO_fetch_and_sub1(&var) - 1)
 
-#define ATOMIC_INIT(lck, fcn)          ((void) 0)
+#define ATOMIC_INIT(lck)               ((void) 0)
 
 #define ATOMIC_FLAG                    AO_TS_t
 #define ATOMIC_FLAG_INIT               { AO_TS_INITIALIZER }
-#define ATOMIC_CLEAR(var, lck, fcn)    AO_CLEAR(&var)
-#define ATOMIC_TAS(var, lck, fcn)      (AO_test_and_set_full(&var) != 
AO_TS_CLEAR)
+#define ATOMIC_CLEAR(var, lck)         AO_CLEAR(&var)
+#define ATOMIC_TAS(var, lck)   (AO_test_and_set_full(&var) != AO_TS_CLEAR)
 
 #else
 
@@ -71,12 +71,12 @@
 
 #define ATOMIC_TYPE                    lng
 
-#define ATOMIC_GET(var, lck, fcn)      var
-#define ATOMIC_SET(var, val, lck, fcn) _InterlockedExchange64(&var, (val))
-#define ATOMIC_ADD(var, val, lck, fcn) _InterlockedExchangeAdd64(&var, val)
-#define ATOMIC_SUB(var, val, lck, fcn) _InterlockedExchangeAdd64(&var, -(val))
-#define ATOMIC_INC(var, lck, fcn)      _InterlockedIncrement64(&var)
-#define ATOMIC_DEC(var, lck, fcn)      _InterlockedDecrement64(&var)
+#define ATOMIC_GET(var, lck)           var
+#define ATOMIC_SET(var, val, lck)      _InterlockedExchange64(&var, (val))
+#define ATOMIC_ADD(var, val, lck)      _InterlockedExchangeAdd64(&var, val)
+#define ATOMIC_SUB(var, val, lck)      _InterlockedExchangeAdd64(&var, -(val))
+#define ATOMIC_INC(var, lck)           _InterlockedIncrement64(&var)
+#define ATOMIC_DEC(var, lck)           _InterlockedDecrement64(&var)
 
 #pragma intrinsic(_InterlockedExchange64)
 #pragma intrinsic(_InterlockedExchangeAdd64)
@@ -88,12 +88,12 @@
 
 #define ATOMIC_TYPE                    int
 
-#define ATOMIC_GET(var, lck, fcn)      var
-#define ATOMIC_SET(var, val, lck, fcn) _InterlockedExchange(&var, (val))
-#define ATOMIC_ADD(var, val, lck, fcn) _InterlockedExchangeAdd(&var, (val))
-#define ATOMIC_SUB(var, val, lck, fcn) _InterlockedExchangeAdd(&var, -(val))
-#define ATOMIC_INC(var, lck, fcn)      _InterlockedIncrement(&var)
-#define ATOMIC_DEC(var, lck, fcn)      _InterlockedDecrement(&var)
+#define ATOMIC_GET(var, lck)           var
+#define ATOMIC_SET(var, val, lck)      _InterlockedExchange(&var, (val))
+#define ATOMIC_ADD(var, val, lck)      _InterlockedExchangeAdd(&var, (val))
+#define ATOMIC_SUB(var, val, lck)      _InterlockedExchangeAdd(&var, -(val))
+#define ATOMIC_INC(var, lck)           _InterlockedIncrement(&var)
+#define ATOMIC_DEC(var, lck)           _InterlockedDecrement(&var)
 
 #pragma intrinsic(_InterlockedExchange)
 #pragma intrinsic(_InterlockedExchangeAdd)
@@ -102,12 +102,12 @@
 
 #endif
 
-#define ATOMIC_INIT(lck, fcn)          ((void) 0)
+#define ATOMIC_INIT(lck)               ((void) 0)
 
 #define ATOMIC_FLAG                    int
 #define ATOMIC_FLAG_INIT               { 0 }
-#define ATOMIC_CLEAR(var, lck, fcn)    _InterlockedExchange(&var, 0)
-#define ATOMIC_TAS(var, lck, fcn)      _InterlockedCompareExchange(&var, 1, 0)
+#define ATOMIC_CLEAR(var, lck)         _InterlockedExchange(&var, 0)
+#define ATOMIC_TAS(var, lck)           _InterlockedCompareExchange(&var, 1, 0)
 #pragma intrinsic(_InterlockedCompareExchange)
 
 #elif (defined(__GNUC__) || defined(__INTEL_COMPILER)) && !(defined(__sun__) 
&& SIZEOF_SIZE_T == SIZEOF_LNG) && !defined(_MSC_VER) && 
!defined(NO_ATOMIC_INSTRUCTIONS)
@@ -121,36 +121,36 @@
 #ifdef __ATOMIC_SEQ_CST
 
 /* the new way of doing this according to GCC */
-#define ATOMIC_GET(var, lck, fcn)      __atomic_load_n(&var, __ATOMIC_SEQ_CST)
-#define ATOMIC_SET(var, val, lck, fcn) __atomic_store_n(&var, (val), 
__ATOMIC_SEQ_CST)
-#define ATOMIC_ADD(var, val, lck, fcn) __atomic_fetch_add(&var, (val), 
__ATOMIC_SEQ_CST)
-#define ATOMIC_SUB(var, val, lck, fcn) __atomic_fetch_sub(&var, (val), 
__ATOMIC_SEQ_CST)
-#define ATOMIC_INC(var, lck, fcn)      __atomic_add_fetch(&var, 1, 
__ATOMIC_SEQ_CST)
-#define ATOMIC_DEC(var, lck, fcn)      __atomic_sub_fetch(&var, 1, 
__ATOMIC_SEQ_CST)
+#define ATOMIC_GET(var, lck)           __atomic_load_n(&var, __ATOMIC_SEQ_CST)
+#define ATOMIC_SET(var, val, lck)      __atomic_store_n(&var, (val), 
__ATOMIC_SEQ_CST)
+#define ATOMIC_ADD(var, val, lck)      __atomic_fetch_add(&var, (val), 
__ATOMIC_SEQ_CST)
+#define ATOMIC_SUB(var, val, lck)      __atomic_fetch_sub(&var, (val), 
__ATOMIC_SEQ_CST)
+#define ATOMIC_INC(var, lck)           __atomic_add_fetch(&var, 1, 
__ATOMIC_SEQ_CST)
+#define ATOMIC_DEC(var, lck)           __atomic_sub_fetch(&var, 1, 
__ATOMIC_SEQ_CST)
 
 #define ATOMIC_FLAG                    char
 #define ATOMIC_FLAG_INIT               { 0 }
-#define ATOMIC_CLEAR(var, lck, fcn)    __atomic_clear(&var, __ATOMIC_SEQ_CST)
-#define ATOMIC_TAS(var, lck, fcn)      __atomic_test_and_set(&var, 
__ATOMIC_SEQ_CST)
+#define ATOMIC_CLEAR(var, lck)         __atomic_clear(&var, __ATOMIC_SEQ_CST)
+#define ATOMIC_TAS(var, lck)           __atomic_test_and_set(&var, 
__ATOMIC_SEQ_CST)
 
 #else
 
 /* the old way of doing this, (still?) needed for Intel compiler on Linux */
-#define ATOMIC_GET(var, lck, fcn)      var
-#define ATOMIC_SET(var, val, lck, fcn) (var = (val))
-#define ATOMIC_ADD(var, val, lck, fcn) __sync_fetch_and_add(&var, (val))
-#define ATOMIC_SUB(var, val, lck, fcn) __sync_fetch_and_sub(&var, (val))
-#define ATOMIC_INC(var, lck, fcn)      __sync_add_and_fetch(&var, 1)
-#define ATOMIC_DEC(var, lck, fcn)      __sync_sub_and_fetch(&var, 1)
+#define ATOMIC_GET(var, lck)           var
+#define ATOMIC_SET(var, val, lck)      (var = (val))
+#define ATOMIC_ADD(var, val, lck)      __sync_fetch_and_add(&var, (val))
+#define ATOMIC_SUB(var, val, lck)      __sync_fetch_and_sub(&var, (val))
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to