Changeset: bb2ec9ffb117 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bb2ec9ffb117
Modified Files:
gdk/gdk_select.c
Branch: default
Log Message:
Postpone nil-test
Don't start testing for nil values, but wait until you found a
possible qualifying element.
diffs (57 lines):
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -211,10 +211,9 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn,
} else \
for ((i) = (p); (i) < (q); (i)++) {\
r = (BUN) (*candlist++ - off) ;\
- if ( ((src)[i] != TYPE##_nil) &&\
- ((lval && ( *(TYPE*) tl OP1 (src)[r]) ) ||\
- (hval && ( *(TYPE*) th OP2 (src)[r]) )))\
- addresult;\
+ if ( ((lval && ( *(TYPE*) tl OP1 (src)[r]) ) ||\
+ (hval && ( *(TYPE*) th OP2 (src)[r]) )))\
+ if ( (src)[r] != TYPE##_nil) addresult;
\
}\
} else {\
if ( nil == NULL) \
@@ -226,10 +225,9 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn,
} else \
for ((i) = (p); (i) < (q); (i)++) {\
r = (BUN) (*candlist++ - off) ;\
- if ( ((src)[i] != TYPE##_nil) && \
- (!lval || ( *(TYPE*) tl OP3 (src)[r] )) &&
\
+ if ( (!lval || ( *(TYPE*) tl OP3 (src)[r] )) &&
\
(!hval || ( *(TYPE*) th OP4 (src)[r] )) ) \
- addresult;\
+ if ( (src)[r] != TYPE##_nil) addresult;
\
}\
}\
BATsetcount(bn,cnt);\
@@ -260,10 +258,9 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn,
addresult; \
} else \
for ((i) = (p); (i) < (q); (i)++) {\
- if ( ((src)[i] != TYPE##_nil) &&\
- ((lval && ( *(TYPE*) tl OP1 (src)[i]) ) ||\
- (hval && ( *(TYPE*) th OP2 (src)[i]) )))\
- addresult; \
+ if ( ((lval && ( *(TYPE*) tl OP1 (src)[i]) ) ||\
+ (hval && ( *(TYPE*) th OP2 (src)[i]) )))\
+ if ( (src)[i] != TYPE##_nil) addresult;
\
}\
} else {\
if ( nil == NULL) \
@@ -273,10 +270,9 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn,
addresult; \
} else \
for ((i) = (p); (i) < (q); (i)++) {\
- if ( ((src)[i] != TYPE##_nil) && \
- (!lval || ( *(TYPE*) tl OP3 (src)[i] )) &&
\
+ if ( (!lval || ( *(TYPE*) tl OP3 (src)[i] )) &&
\
(!hval || ( *(TYPE*) th OP4 (src)[i] )) ) \
- addresult; \
+ if ( (src)[i] != TYPE##_nil) addresult;
\
}\
}\
BATsetcount(bn,cnt);\
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list