Changeset: 8c6c980f22b3 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8c6c980f22b3
Added Files:
gdk/gdk_join.c
sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.sql
sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.err
sql/test/BugTracker-2013/Tests/subtract-one-year.Bug-3215.stable.out
Modified Files:
NT/rules.msc
clients/Tests/exports.stable.out
clients/mapiclient/mclient.c
clients/mapiclient/tomograph.c
gdk/Makefile.ag
gdk/gdk.h
gdk/gdk_aggr.c
gdk/gdk_atomic.h
gdk/gdk_calc.c
gdk/gdk_calc_compare.h
gdk/gdk_calc_private.h
gdk/gdk_group.c
gdk/gdk_imprints.c
gdk/gdk_private.h
gdk/gdk_select.c
gdk/gdk_system.h
gdk/gdk_utils.c
monetdb5/extras/jaql/json.c
monetdb5/mal/mal_box.c
monetdb5/mal/mal_dataflow.c
monetdb5/mal/mal_namespace.c
monetdb5/mal/mal_profiler.c
monetdb5/mal/mal_resource.c
monetdb5/modules/atoms/mtime.c
monetdb5/modules/kernel/aggr.mal
monetdb5/modules/kernel/aggr.mal.sh
monetdb5/modules/kernel/algebra.mx
monetdb5/modules/kernel/batmmath.c
monetdb5/optimizer/opt_centipede.c
monetdb5/optimizer/opt_mergetable.c
monetdb5/optimizer/opt_mitosis.c
sql/backends/monet5/sql.mx
sql/common/sql_hash.c
sql/test/BugTracker-2013/Tests/All
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out
testing/Mtest.py.in
tools/mserver/mserver5.c
Branch: rdf
Log Message:
Merge with default branch
diffs (truncated from 2885 to 300 lines):
diff --git a/NT/rules.msc b/NT/rules.msc
--- a/NT/rules.msc
+++ b/NT/rules.msc
@@ -183,11 +183,11 @@ PYTHON = python
YACC = bison
LEX = flex
-ARCHIVER = lib
+ARCHIVER = lib /nologo
GENDLL =
RC = rc
-MT = mt -nologo
+MT = mt /nologo
JAVAC = javac
JAR = jar
ANT = ant.bat
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
@@ -194,6 +194,7 @@ BAT *BATsort(BAT *b);
BAT *BATsort_rev(BAT *b);
BAT *BATssort(BAT *b);
BAT *BATssort_rev(BAT *b);
+gdk_return BATsubmergejoin(BAT **r1, BAT **r2, BAT *l, BAT *r, BAT *sl, BAT
*sr);
BAT *BATsubselect(BAT *b, BAT *s, const void *tl, const void *th, int li, int
hi, int anti);
gdk_return BATsubsort(BAT **sorted, BAT **order, BAT **groups, BAT *b, BAT *o,
BAT *g, int reverse, int stable);
gdk_return BATsum(void *res, int tp, BAT *b, BAT *s, int skip_nils, int
abort_on_error, int nil_if_empty);
@@ -825,6 +826,8 @@ str ALGssort(int *result, int *bid);
str ALGssort_rev(int *result, int *bid);
str ALGstdev(dbl *res, int *bid);
str ALGstdevp(dbl *res, int *bid);
+str ALGsubmergejoin(bat *r1, bat *r2, bat *l, bat *r);
+str ALGsubmergejoin4(bat *r1, bat *r2, bat *l, bat *r, bat *sl, bat *sr);
str ALGsubsample(int *result, int *bid, int *param);
str ALGsubselect1(bat *result, bat *bid, const void *low, const void *high,
const bit *li, const bit *hi, const bit *anti);
str ALGsubselect2(bat *result, bat *bid, bat *sid, const void *low, const void
*high, const bit *li, const bit *hi, const bit *anti);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2560,7 +2560,7 @@ set_timezone(Mapi mid)
gt = mktime(tmp);
tmp = localtime(&t);
lt = mktime(tmp);
- assert((lng) (gt - lt) >= (lng) INT_MIN && (lng) (gt - lt) <= (lng)
INT_MAX);
+ assert((lng) gt - (lng) lt >= (lng) INT_MIN && (lng) gt - (lng) lt <=
(lng) INT_MAX);
tzone = (int) (gt - lt);
if (tzone < 0)
snprintf(buf, sizeof(buf),
diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c
--- a/clients/mapiclient/tomograph.c
+++ b/clients/mapiclient/tomograph.c
@@ -1883,7 +1883,8 @@ static void *
doProfile(void *d)
{
wthread *wthr = (wthread *) d;
- int i, len;
+ int i;
+ size_t len;
size_t a;
ssize_t n;
char *response, *x;
diff --git a/gdk/Makefile.ag b/gdk/Makefile.ag
--- a/gdk/Makefile.ag
+++ b/gdk/Makefile.ag
@@ -38,6 +38,7 @@ lib_gdk = {
gdk_calc.c gdk_calc.h gdk_calc_compare.h gdk_calc_private.h \
gdk_aggr.c gdk_group.c gdk_mapreduce.c gdk_mapreduce.h \
gdk_imprints.c gdk_imprints.h \
+ gdk_join.c \
bat.feps bat1.feps bat2.feps \
libbat.rc
LIBS = ../common/options/libmoptions \
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -642,12 +642,12 @@ typedef struct {
} Hash;
typedef struct {
- bte bits; /* how many bits in imprints */
- bat histogram; /* id for histogram bat */
- Heap *imps; /* heap of imprints */
- BUN impcnt; /* counter for imprints*/
- Heap *dict; /* cache dictionary for compressing imprints */
- BUN dictcnt; /* counter for cache dictionary */
+ bte bits; /* how many bits in imprints */
+ Heap *bins; /* ranges of bins */
+ Heap *imps; /* heap of imprints */
+ BUN impcnt; /* counter for imprints*/
+ Heap *dict; /* cache dictionary for compressing imprints */
+ BUN dictcnt; /* counter for cache dictionary */
} Imprints;
@@ -3165,6 +3165,8 @@ gdk_export BAT *BATleftjoin(BAT *l, BAT
gdk_export BAT *BATouterjoin(BAT *l, BAT *r, BUN estimate);
gdk_export BAT *BATcross(BAT *l, BAT *r);
+gdk_export gdk_return BATsubmergejoin(BAT **r1, BAT **r2, BAT *l, BAT *r, BAT
*sl, BAT *sr);
+
gdk_export BAT *BATslice(BAT *b, BUN low, BUN high);
gdk_export BAT *BATfetch(BAT *b, BAT *s);
gdk_export BAT *BATfetchjoin(BAT *b, BAT *s, BUN estimate);
diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -140,7 +140,7 @@ BATgroupaggrinit(const BAT *b, const BAT
*maxp = max;
*ngrpp = ngrp;
- CANDINIT(b, s);
+ CANDINIT(b, s, start, end, cnt, cand, candend);
*startp = start;
*endp = end;
*cntp = cnt;
@@ -1410,7 +1410,7 @@ BATcalcavg(BAT *b, BAT *s, dbl *avg, BUN
int abort_on_error = 1;
BUN nils = 0;
- CANDINIT(b, s);
+ CANDINIT(b, s, start, end, cnt, cand, candend);
src = Tloc(b, b->U->first);
@@ -2145,7 +2145,7 @@ BATgroupmedian(BAT *b, BAT *g, BAT *e, B
}
/* ---------------------------------------------------------------------- */
-/* standard deviation (both biases and non-biased) */
+/* standard deviation (both biased and non-biased) */
#define AGGR_STDEV_SINGLE(TYPE)
\
do { \
diff --git a/gdk/gdk_atomic.h b/gdk/gdk_atomic.h
--- a/gdk/gdk_atomic.h
+++ b/gdk/gdk_atomic.h
@@ -54,9 +54,9 @@
#define ATOMIC_GET_sht(var, lck, fcn) var
#define ATOMIC_SET_sht(var, val, lck, fcn) (var = (val))
-#define ATOMIC_INC_sht(var, lck, fcn) _InterlockedIncrement16(&var)
-#define ATOMIC_DEC_sht(var, lck, fcn) _InterlockedDecrement16(&var)
-#define ATOMIC_CAS_sht(var, old, new, lck, fcn)
_InterlockedCompareExchange16(&var, new, old)
+#define ATOMIC_INC_sht(var, lck, fcn) _InterlockedIncrement16(&(var))
+#define ATOMIC_DEC_sht(var, lck, fcn) _InterlockedDecrement16(&(var))
+#define ATOMIC_CAS_sht(var, old, new, lck, fcn)
_InterlockedCompareExchange16(&(var), new, old)
#pragma intrinsic(_InterlockedIncrement16)
#pragma intrinsic(_InterlockedDecrement16)
@@ -64,11 +64,11 @@
#define ATOMIC_GET_int(var, lck, fcn) var
#define ATOMIC_SET_int(var, val, lck, fcn) (var = (val))
-#define ATOMIC_ADD_int(var, val, lck, fcn) _InterlockedExchangeAdd(&var,
(val))
-#define ATOMIC_SUB_int(var, val, lck, fcn) _InterlockedExchangeAdd(&var,
-(val))
-#define ATOMIC_INC_int(var, lck, fcn) _InterlockedIncrement(&var)
-#define ATOMIC_DEC_int(var, lck, fcn) _InterlockedDecrement(&var)
-#define ATOMIC_CAS_int(var, old, new, lck, fcn)
_InterlockedCompareExchange(&var, new, old)
+#define ATOMIC_ADD_int(var, val, lck, fcn) _InterlockedExchangeAdd(&(var),
(val))
+#define ATOMIC_SUB_int(var, val, lck, fcn) _InterlockedExchangeAdd(&(var),
-(val))
+#define ATOMIC_INC_int(var, lck, fcn) _InterlockedIncrement(&(var))
+#define ATOMIC_DEC_int(var, lck, fcn) _InterlockedDecrement(&(var))
+#define ATOMIC_CAS_int(var, old, new, lck, fcn)
_InterlockedCompareExchange(&(var), new, old)
#pragma intrinsic(_InterlockedExchangeAdd)
#pragma intrinsic(_InterlockedIncrement)
@@ -78,11 +78,11 @@
#if SIZEOF_SSIZE_T == SIZEOF_LNG
#define ATOMIC_GET_lng(var, lck, fcn) var
#define ATOMIC_SET_lng(var, val, lck, fcn) (var = (val))
-#define ATOMIC_ADD_lng(var, val, lck, fcn) _InterlockedExchangeAdd64(&var,
val)
-#define ATOMIC_SUB_lng(var, val, lck, fcn) _InterlockedExchangeAdd64(&var,
-(val))
-#define ATOMIC_INC_lng(var, lck, fcn) _InterlockedIncrement64(&var)
-#define ATOMIC_DEC_lng(var, lck, fcn) _InterlockedDecrement64(&var)
-#define ATOMIC_CAS_lng(var, old, new, lck, fcn)
_InterlockedCompareExchange64(&var, new, old)
+#define ATOMIC_ADD_lng(var, val, lck, fcn)
_InterlockedExchangeAdd64(&(var), val)
+#define ATOMIC_SUB_lng(var, val, lck, fcn)
_InterlockedExchangeAdd64(&(var), -(val))
+#define ATOMIC_INC_lng(var, lck, fcn) _InterlockedIncrement64(&(var))
+#define ATOMIC_DEC_lng(var, lck, fcn) _InterlockedDecrement64(&(var))
+#define ATOMIC_CAS_lng(var, old, new, lck, fcn)
_InterlockedCompareExchange64(&(var), new, old)
#pragma intrinsic(_InterlockedExchangeAdd64)
#pragma intrinsic(_InterlockedIncrement64)
@@ -96,26 +96,26 @@
#define ATOMIC_GET_sht(var, lck, fcn) var
#define ATOMIC_SET_sht(var, val, lck, fcn) (var = (val))
-#define ATOMIC_INC_sht(var, lck, fcn) __sync_add_and_fetch(&var, 1)
-#define ATOMIC_DEC_sht(var, lck, fcn) __sync_sub_and_fetch(&var, 1)
-#define ATOMIC_CAS_sht(var, old, new, lck, fcn)
__sync_val_compare_and_swap(&var, old, new)
+#define ATOMIC_INC_sht(var, lck, fcn) __sync_add_and_fetch(&(var), 1)
+#define ATOMIC_DEC_sht(var, lck, fcn) __sync_sub_and_fetch(&(var), 1)
+#define ATOMIC_CAS_sht(var, old, new, lck, fcn)
__sync_val_compare_and_swap(&(var), old, new)
#define ATOMIC_GET_int(var, lck, fcn) var
#define ATOMIC_SET_int(var, val, lck, fcn) (var = (val))
-#define ATOMIC_ADD_int(var, val, lck, fcn) __sync_fetch_and_add(&var,
(val))
-#define ATOMIC_SUB_int(var, val, lck, fcn) __sync_fetch_and_sub(&var,
(val))
-#define ATOMIC_INC_int(var, lck, fcn) __sync_add_and_fetch(&var, 1)
-#define ATOMIC_DEC_int(var, lck, fcn) __sync_sub_and_fetch(&var, 1)
-#define ATOMIC_CAS_int(var, old, new, lck, fcn)
__sync_val_compare_and_swap(&var, old, new)
+#define ATOMIC_ADD_int(var, val, lck, fcn) __sync_fetch_and_add(&(var),
(val))
+#define ATOMIC_SUB_int(var, val, lck, fcn) __sync_fetch_and_sub(&(var),
(val))
+#define ATOMIC_INC_int(var, lck, fcn) __sync_add_and_fetch(&(var), 1)
+#define ATOMIC_DEC_int(var, lck, fcn) __sync_sub_and_fetch(&(var), 1)
+#define ATOMIC_CAS_int(var, old, new, lck, fcn)
__sync_val_compare_and_swap(&(var), old, new)
#if SIZEOF_SSIZE_T == SIZEOF_LNG
#define ATOMIC_GET_lng(var, lck, fcn) var
#define ATOMIC_SET_lng(var, val, lck, fcn) (var = (val))
-#define ATOMIC_ADD_lng(var, val, lck, fcn) __sync_fetch_and_add(&var,
(val))
-#define ATOMIC_SUB_lng(var, val, lck, fcn) __sync_fetch_and_sub(&var,
(val))
-#define ATOMIC_INC_lng(var, lck, fcn) __sync_add_and_fetch(&var, 1)
-#define ATOMIC_DEC_lng(var, lck, fcn) __sync_sub_and_fetch(&var, 1)
-#define ATOMIC_CAS_lng(var, old, new, lck, fcn)
__sync_val_compare_and_swap(&var, old, new)
+#define ATOMIC_ADD_lng(var, val, lck, fcn) __sync_fetch_and_add(&(var),
(val))
+#define ATOMIC_SUB_lng(var, val, lck, fcn) __sync_fetch_and_sub(&(var),
(val))
+#define ATOMIC_INC_lng(var, lck, fcn) __sync_add_and_fetch(&(var), 1)
+#define ATOMIC_DEC_lng(var, lck, fcn) __sync_sub_and_fetch(&(var), 1)
+#define ATOMIC_CAS_lng(var, old, new, lck, fcn)
__sync_val_compare_and_swap(&(var), old, new)
#endif
#define ATOMIC_INIT(lck, fcn) ((void) 0)
@@ -131,7 +131,7 @@ __ATOMIC_GET_sht(volatile short *var, pt
pthread_mutex_unlock(lck);
return old;
}
-#define ATOMIC_GET_sht(var, lck, fcn) __ATOMIC_GET_sht(&var, &lck)
+#define ATOMIC_GET_sht(var, lck, fcn) __ATOMIC_GET_sht(&(var), &(lck))
static inline short
__ATOMIC_SET_sht(volatile short *var, short val, pthread_mutex_t *lck)
@@ -143,7 +143,7 @@ __ATOMIC_SET_sht(volatile short *var, sh
pthread_mutex_unlock(lck);
return new;
}
-#define ATOMIC_SET_sht(var, val, lck, fcn) __ATOMIC_SET_sht(&var, (val),
&lck)
+#define ATOMIC_SET_sht(var, val, lck, fcn) __ATOMIC_SET_sht(&(var), (val),
&(lck))
static inline short
__ATOMIC_INC_sht(volatile short *var, pthread_mutex_t *lck)
@@ -154,7 +154,7 @@ __ATOMIC_INC_sht(volatile short *var, pt
pthread_mutex_unlock(lck);
return new;
}
-#define ATOMIC_INC_sht(var, lck, fcn) __ATOMIC_INC_sht(&var, &lck)
+#define ATOMIC_INC_sht(var, lck, fcn) __ATOMIC_INC_sht(&(var), &(lck))
static inline short
__ATOMIC_DEC_sht(volatile short *var, pthread_mutex_t *lck)
@@ -165,7 +165,7 @@ __ATOMIC_DEC_sht(volatile short *var, pt
pthread_mutex_unlock(lck);
return new;
}
-#define ATOMIC_DEC_sht(var, lck, fcn) __ATOMIC_DEC_sht(&var, &lck)
+#define ATOMIC_DEC_sht(var, lck, fcn) __ATOMIC_DEC_sht(&(var), &(lck))
static inline short
__ATOMIC_CAS_sht(volatile short *var, short old, short new, pthread_mutex_t
*lck)
@@ -178,7 +178,7 @@ __ATOMIC_CAS_sht(volatile short *var, sh
pthread_mutex_unlock(lck);
return orig;
}
-#define ATOMIC_CAS_sht(var, old, new, lck, fcn) __ATOMIC_CAS_sht(&var,
(old), (new), &lck)
+#define ATOMIC_CAS_sht(var, old, new, lck, fcn)
__ATOMIC_CAS_sht(&(var), (old), (new), &(lck))
static inline int
@@ -190,7 +190,7 @@ __ATOMIC_GET_int(volatile int *var, pthr
pthread_mutex_unlock(lck);
return old;
}
-#define ATOMIC_GET_int(var, lck, fcn) __ATOMIC_GET_int(&var, &lck)
+#define ATOMIC_GET_int(var, lck, fcn) __ATOMIC_GET_int(&(var), &(lck))
static inline int
__ATOMIC_SET_int(volatile int *var, int val, pthread_mutex_t *lck)
@@ -202,7 +202,7 @@ __ATOMIC_SET_int(volatile int *var, int
pthread_mutex_unlock(lck);
return new;
}
-#define ATOMIC_SET_int(var, val, lck, fcn) __ATOMIC_SET_int(&var, (val),
&lck)
+#define ATOMIC_SET_int(var, val, lck, fcn) __ATOMIC_SET_int(&(var), (val),
&(lck))
static inline int
__ATOMIC_ADD_int(volatile int *var, int val, pthread_mutex_t *lck)
@@ -214,7 +214,7 @@ __ATOMIC_ADD_int(volatile int *var, int
pthread_mutex_unlock(lck);
return old;
}
-#define ATOMIC_ADD_int(var, val, lck, fcn) __ATOMIC_ADD_int(&var, (val),
&lck)
+#define ATOMIC_ADD_int(var, val, lck, fcn) __ATOMIC_ADD_int(&(var), (val),
&(lck))
static inline int
__ATOMIC_SUB_int(volatile int *var, int val, pthread_mutex_t *lck)
@@ -226,7 +226,7 @@ __ATOMIC_SUB_int(volatile int *var, int
pthread_mutex_unlock(lck);
return old;
}
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list