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
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to