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