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