Changeset: cec6a2206427 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cec6a2206427
Modified Files:
gdk/gdk_calc.c
Branch: Jan2014
Log Message:
Consistency in (bat)calc.between: nil boundary means nil result.
diffs (36 lines):
diff --git a/gdk/gdk_calc.c b/gdk/gdk_calc.c
--- a/gdk/gdk_calc.c
+++ b/gdk/gdk_calc.c
@@ -8346,10 +8346,9 @@ VARcalcrsh(ValPtr ret, const ValRecord *
/* between (any "linear" type) */
#define BETWEEN(v, lo, hi, TYPE) \
- ((v) == TYPE##_nil || ((lo) == TYPE##_nil && (hi) == TYPE##_nil) ? \
+ ((v) == TYPE##_nil || (lo) == TYPE##_nil || (hi) == TYPE##_nil ? \
(nils++, bit_nil) : \
- (bit) (((lo) == TYPE##_nil || (v) >= (lo)) && \
- ((hi) == TYPE##_nil || (v) <= (hi))))
+ (bit) ((v) >= (lo) && (v) <= (hi)))
#define BETWEEN_LOOP_TYPE(TYPE)
\
do { \
@@ -8666,15 +8665,13 @@ VARcalcbetween(ValPtr ret, const ValReco
break;
default:
if (atomcmp(VALptr(v), nil) == 0 ||
- (atomcmp(VALptr(lo), nil) == 0 &&
- atomcmp(VALptr(hi), nil) == 0))
+ atomcmp(VALptr(lo), nil) == 0 ||
+ atomcmp(VALptr(hi), nil) == 0)
ret->val.btval = bit_nil;
else
ret->val.btval =
- (bit) ((atomcmp(VALptr(lo), nil) == 0 ||
- atomcmp(VALptr(v), VALptr(lo)) >= 0) &&
- (atomcmp(VALptr(hi), nil) == 0 ||
- atomcmp(VALptr(v), VALptr(hi)) <= 0));
+ (bit) (atomcmp(VALptr(v), VALptr(lo)) >= 0 &&
+ atomcmp(VALptr(v), VALptr(hi)) <= 0);
break;
}
(void) nils;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list