Changeset: f29ceb21d584 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f29ceb21d584 Modified Files: gdk/gdk_imprints.c Branch: Oct2014 Log Message:
Deal with nil values
diffs (33 lines):
diff --git a/gdk/gdk_imprints.c b/gdk/gdk_imprints.c
--- a/gdk/gdk_imprints.c
+++ b/gdk/gdk_imprints.c
@@ -412,6 +412,7 @@ do {
\
uint##B##_t *im = (uint##B##_t *) imps; \
TYPE *col = (TYPE *) Tloc(b, b->batFirst); \
TYPE *bins = (TYPE *) inbins; \
+ TYPE nil = TYPE##_nil;
\
prvmask = mask = 0; \
new = (IMPS_PAGE/sizeof(TYPE))-1; \
for (i = 0; i < b->batCount; i++) { \
@@ -455,8 +456,19 @@ do {
\
if (!cnt_bins[bin]++) {
\
min_bins[bin] = max_bins[bin] = i; \
} else {
\
- if (col[i] < col[min_bins[bin]]) min_bins[bin] = i;
\
- if (col[i] > col[max_bins[bin]]) max_bins[bin] = i;
\
+ /* nil value can not be min */ \
+ if ((bin == 0) && (col[i] != nil)) {
\
+ /* in case the first value was nil and
min_bin[0] \
+ * has been initialized with it */
\
+ if (col[min_bins[0]] == nil) {
\
+ min_bins[0] = i;
\
+ } else if (col[i] < col[min_bins[0]]) {
\
+ min_bins[0] = i;
\
+ }
\
+ } else {
\
+ if (col[i] < col[min_bins[bin]]) min_bins[bin]
= i; \
+ }
\
+ if (col[i] > col[max_bins[bin]]) max_bins[bin] = i;
\
}
\
} \
/* one last left */ \
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list
