Changeset: 27a2665fc5d3 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/27a2665fc5d3 Modified Files: gdk/gdk_aggr.c Branch: pushcands Log Message:
Merged with default
diffs (110 lines):
diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -3297,14 +3297,13 @@ BATgroupsize(BAT *b, BAT *g, BAT *e, BAT
i = canditer_next(ci) - hseq; \
if (!skip_nils || \
!is_##TYPE##_nil(vals[i])) { \
- oids[i] = i + hseq; \
+ oids[gid++] = i + hseq; \
nils--; \
} \
} \
TIMEOUT_CHECK(timeoffset, \
TIMEOUT_HANDLER(BUN_NONE)); \
} else { \
- gid = 0; /* in case gids == NULL */ \
TIMEOUT_LOOP(ncand, timeoffset) { \
if (gids) \
gid = gids[ci->next]; \
@@ -3337,7 +3336,7 @@ do_groupmin(oid *restrict oids, BATiter
oid min, oid max, struct canditer *restrict ci, BUN ncand,
bool skip_nils, bool gdense)
{
- oid gid;
+ oid gid = 0;
BUN i, nils;
int t;
const void *nil;
@@ -3395,15 +3394,16 @@ do_groupmin(oid *restrict oids, BATiter
while (ncand > 0) {
ncand--;
i = canditer_next(ci);
- oids[i - hseq] = i;
+ oids[gid++] = i;
nils--;
}
} else {
while (ncand > 0) {
ncand--;
i = canditer_next(ci);
- if (is_oid_nil(oids[i - hseq])) {
- oids[i - hseq] = i;
+ gid = gids[i - hseq] - min;
+ if (is_oid_nil(oids[gid])) {
+ oids[gid] = i;
nils--;
}
}
@@ -3419,14 +3419,13 @@ do_groupmin(oid *restrict oids, BATiter
i = canditer_next(ci) - hseq;
if (!skip_nils ||
(*atomcmp)(BUNtail(*bi, i), nil) != 0) {
- oids[i] = i + hseq;
+ oids[gid++] = i + hseq;
nils--;
}
}
TIMEOUT_CHECK(timeoffset,
TIMEOUT_HANDLER(BUN_NONE));
} else {
- gid = 0; /* in case gids == NULL */
TIMEOUT_LOOP(ncand, timeoffset) {
if (gids)
gid = gids[ci->next];
@@ -3468,7 +3467,7 @@ do_groupmax(oid *restrict oids, BATiter
oid min, oid max, struct canditer *restrict ci, BUN ncand,
bool skip_nils, bool gdense)
{
- oid gid;
+ oid gid = 0;
BUN i, nils;
int t;
const void *nil;
@@ -3526,16 +3525,17 @@ do_groupmax(oid *restrict oids, BATiter
while (ncand > 0) {
ncand--;
i = canditer_next(ci);
- oids[i - hseq] = i;
+ oids[gid++] = i;
nils--;
}
} else {
while (ncand > 0) {
ncand--;
i = canditer_next(ci);
- if (is_oid_nil(oids[i - hseq]))
+ gid = gids[i - hseq] - min;
+ if (is_oid_nil(oids[gid]))
nils--;
- oids[i - hseq] = i;
+ oids[gid] = i;
}
}
}
@@ -3549,14 +3549,13 @@ do_groupmax(oid *restrict oids, BATiter
i = canditer_next(ci) - hseq;
if (!skip_nils ||
(*atomcmp)(BUNtail(*bi, i), nil) != 0) {
- oids[i] = i + hseq;
+ oids[gid++] = i + hseq;
nils--;
}
}
TIMEOUT_CHECK(timeoffset,
TIMEOUT_HANDLER(BUN_NONE));
} else {
- gid = 0; /* in case gids == NULL */
TIMEOUT_LOOP(ncand, timeoffset) {
if (gids)
gid = gids[ci->next];
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list
