Changeset: bc10ce1e5c1c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bc10ce1e5c1c
Modified Files:
gdk/gdk_aggr.c
gdk/gdk_analytic_func.c
gdk/gdk_calc_private.h
gdk/gdk_join.c
gdk/gdk_select.c
Branch: candidate-exceptions
Log Message:
Update ALGODEBUG messages.
diffs (truncated from 1304 to 300 lines):
diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -179,7 +179,7 @@ dofsum(const void *restrict values, oid
void *restrict results, BUN ngrp, int tp1, int tp2,
const oid *restrict gids,
oid min, oid max, bool skip_nils, bool abort_on_error,
- bool nil_if_empty, const char *func)
+ bool nil_if_empty)
{
struct pergroup {
int npartials;
@@ -202,7 +202,6 @@ dofsum(const void *restrict values, oid
BUN nils = 0;
volatile flt f;
- ALGODEBUG fprintf(stderr, "#%s: floating point summation\n", func);
/* we only deal with the two floating point types */
assert(tp1 == TYPE_flt || tp1 == TYPE_dbl);
assert(tp2 == TYPE_flt || tp2 == TYPE_dbl);
@@ -448,11 +447,7 @@ dofsum(const void *restrict values, oid
if (ngrp == 1 && ci->tpe == cand_dense) { \
/* single group, no candidate list */ \
TYPE2 sum; \
- ALGODEBUG fprintf(stderr, \
- "#%s: no candidates, no groups; " \
- "start " OIDFMT ", count " BUNFMT \
- ", nonil = %d\n", \
- func, ci->seq, ncand, nonil); \
+ *algo = "no candidates, no groups"; \
sum = 0; \
if (nonil) { \
*seen = ncand > 0; \
@@ -488,11 +483,7 @@ dofsum(const void *restrict values, oid
/* single group, with candidate list */ \
TYPE2 sum; \
bool seenval = false; \
- ALGODEBUG fprintf(stderr, \
- "#%s: with candidates, no groups; " \
- "start " OIDFMT ", count " BUNFMT \
- "\n", \
- func, ci->seq, ncand); \
+ *algo = "with candidates, no groups"; \
sum = 0; \
for (i = 0; i < ncand && nils == 0; i++) { \
x = vals[canditer_next(ci) - seqb]; \
@@ -513,11 +504,7 @@ dofsum(const void *restrict values, oid
*sums = sum; \
} else if (ci->tpe == cand_dense) { \
/* multiple groups, no candidate list */ \
- ALGODEBUG fprintf(stderr, \
- "#%s: no candidates, with groups; " \
- "start " OIDFMT ", count " BUNFMT \
- "\n", \
- func, ci->seq, ncand); \
+ *algo = "no candidates, with groups"; \
for (i = 0; i < ncand; i++) { \
if (gids == NULL || \
(gids[i] >= min && gids[i] <= max)) { \
@@ -548,11 +535,7 @@ dofsum(const void *restrict values, oid
} \
} else { \
/* multiple groups, with candidate list */ \
- ALGODEBUG fprintf(stderr, \
- "#%s: with candidates, with " \
- "groups; start " OIDFMT ", " \
- "count " BUNFMT "\n", \
- func, ci->seq, ncand); \
+ *algo = "with candidates, with groups"; \
while (ncand > 0) { \
ncand--; \
i = canditer_next(ci) - seqb; \
@@ -593,19 +576,16 @@ dofsum(const void *restrict values, oid
if (ngrp == 1 && ci->tpe == cand_dense) { \
/* single group, no candidate list */ \
TYPE2 sum; \
- ALGODEBUG fprintf(stderr, \
- "#%s: no candidates, no groups, no
overflow; " \
- "start " OIDFMT ", count " BUNFMT \
- ", nonil = %d\n", \
- func, ci->seq, ncand, nonil); \
sum = 0; \
if (nonil) { \
+ *algo = "no candidates, no groups, no nils, no
overflow"; \
*seen = ncand > 0; \
for (i = 0; i < ncand && nils == 0; i++) { \
sum += vals[ci->seq + i - seqb]; \
} \
} else { \
bool seenval = false; \
+ *algo = "no candidates, no groups, no
overflow"; \
for (i = 0; i < ncand && nils == 0; i++) { \
x = vals[ci->seq + i - seqb]; \
if (is_##TYPE1##_nil(x)) { \
@@ -626,11 +606,7 @@ dofsum(const void *restrict values, oid
/* single group, with candidate list */ \
TYPE2 sum; \
bool seenval = false; \
- ALGODEBUG fprintf(stderr, \
- "#%s: with candidates, no groups, no
overflow; " \
- "start " OIDFMT ", count " BUNFMT \
- "\n", \
- func, ci->seq, ncand); \
+ *algo = "with candidates, no groups, no overflow"; \
sum = 0; \
for (i = 0; i < ncand && nils == 0; i++) { \
x = vals[canditer_next(ci) - seqb]; \
@@ -649,11 +625,7 @@ dofsum(const void *restrict values, oid
} else if (ci->tpe == cand_dense) { \
/* multiple groups, no candidate list */ \
if (nonil) { \
- ALGODEBUG fprintf(stderr,
\
- "#%s: no candidates, with
groups, no nils, no overflow; " \
- "start " OIDFMT ", count "
BUNFMT \
- "\n",
\
- func, ci->seq, ncand);
\
+ *algo = "no candidates, with groups, no nils,
no overflow"; \
for (i = 0; i < ncand; i++) { \
if (gids == NULL || \
(gids[i] >= min && gids[i] <= max))
{ \
@@ -668,11 +640,7 @@ dofsum(const void *restrict values, oid
} \
} \
} else { \
- ALGODEBUG fprintf(stderr,
\
- "#%s: no candidates, with
groups, no overflow; " \
- "start " OIDFMT ", count "
BUNFMT \
- "\n",
\
- func, ci->seq, ncand);
\
+ *algo = "no candidates, with groups, no
overflow"; \
for (i = 0; i < ncand; i++) { \
if (gids == NULL || \
(gids[i] >= min && gids[i] <= max))
{ \
@@ -698,11 +666,7 @@ dofsum(const void *restrict values, oid
} \
} else { \
/* multiple groups, with candidate list */ \
- ALGODEBUG fprintf(stderr, \
- "#%s: with candidates, with " \
- "groups, no overflow; start " OIDFMT
", " \
- "count " BUNFMT "\n", \
- func, ci->seq, ncand); \
+ *algo = "with candidates, with groups, no overflow"; \
while (ncand > 0) { \
ncand--; \
i = canditer_next(ci) - seqb; \
@@ -736,7 +700,7 @@ dosum(const void *restrict values, bool
void *restrict results, BUN ngrp, int tp1, int tp2,
const oid *restrict gids,
oid min, oid max, bool skip_nils, bool abort_on_error,
- bool nil_if_empty, const char *func)
+ bool nil_if_empty, const char *func, const char **algo)
{
BUN nils = 0;
BUN i;
@@ -751,9 +715,10 @@ dosum(const void *restrict values, bool
case TYPE_dbl:
if (tp1 != TYPE_flt && tp1 != TYPE_dbl)
goto unsupported;
+ *algo = "floating sum";
return dofsum(values, seqb, ci, ncand, results, ngrp, tp1, tp2,
gids, min, max, skip_nils, abort_on_error,
- nil_if_empty, func);
+ nil_if_empty);
}
/* allocate bitmap for seen group ids */
@@ -927,6 +892,10 @@ BATgroupsum(BAT *b, BAT *g, BAT *e, BAT
struct canditer ci;
BUN ncand;
const char *err;
+ const char *algo = NULL;
+ lng t0 = 0;
+
+ ALGODEBUG t0 = GDKusec();
if ((err = BATgroupaggrinit(b, g, e, s, &min, &max, &ngrp, &ci,
&ncand)) != NULL) {
GDKerror("BATgroupsum: %s\n", err);
@@ -963,7 +932,7 @@ BATgroupsum(BAT *b, BAT *g, BAT *e, BAT
nils = dosum(Tloc(b, 0), b->tnonil, b->hseqbase, &ci, ncand,
Tloc(bn, 0), ngrp, b->ttype, tp, gids, min, max,
- skip_nils, abort_on_error, true, "BATgroupsum");
+ skip_nils, abort_on_error, true, "BATgroupsum", &algo);
if (nils < BUN_NONE) {
BATsetcount(bn, ngrp);
@@ -977,6 +946,15 @@ BATgroupsum(BAT *b, BAT *g, BAT *e, BAT
bn = NULL;
}
+ ALGODEBUG fprintf(stderr,
+ "#%s:
%s(b="ALGOBATFMT",g="ALGOOPTBATFMT",e="ALGOOPTBATFMT",s="ALGOOPTBATFMT")="ALGOOPTBATFMT":
%s; "
+ "start " OIDFMT ", count " BUNFMT " (" LLFMT " usec)"
+ "\n",
+ MT_thread_getname(), __func__,
+ ALGOBATPAR(b), ALGOOPTBATPAR(g), ALGOOPTBATPAR(e),
+ ALGOOPTBATPAR(s), ALGOOPTBATPAR(bn),
+ algo ? algo : "",
+ ci.seq, ncand, GDKusec() - t0);
return bn;
}
@@ -989,6 +967,10 @@ BATsum(void *res, int tp, BAT *b, BAT *s
struct canditer ci;
BUN ncand;
const char *err;
+ const char *algo = NULL;
+ lng t0 = 0;
+
+ ALGODEBUG t0 = GDKusec();
if ((err = BATgroupaggrinit(b, NULL, NULL, s, &min, &max, &ngrp, &ci,
&ncand)) != NULL) {
GDKerror("BATsum: %s\n", err);
@@ -1089,7 +1071,15 @@ BATsum(void *res, int tp, BAT *b, BAT *s
return GDK_SUCCEED;
nils = dosum(Tloc(b, 0), b->tnonil, b->hseqbase, &ci, ncand,
res, true, b->ttype, tp, &min, min, max,
- skip_nils, abort_on_error, nil_if_empty, "BATsum");
+ skip_nils, abort_on_error, nil_if_empty, "BATsum", &algo);
+ ALGODEBUG fprintf(stderr,
+ "#%s: %s(b="ALGOBATFMT",s="ALGOOPTBATFMT"): %s; "
+ "start " OIDFMT ", count " BUNFMT " (" LLFMT " usec)"
+ "\n",
+ MT_thread_getname(), __func__,
+ ALGOBATPAR(b), ALGOOPTBATPAR(s),
+ algo ? algo : "",
+ ci.seq, ncand, GDKusec() - t0);
return nils < BUN_NONE ? GDK_SUCCEED : GDK_FAIL;
}
diff --git a/gdk/gdk_analytic_func.c b/gdk/gdk_analytic_func.c
--- a/gdk/gdk_analytic_func.c
+++ b/gdk/gdk_analytic_func.c
@@ -1119,8 +1119,7 @@ GDKanalyticalcount(BAT *r, BAT *b, BAT *
&(struct canditer){.tpe =
cand_dense, .ncand = parcel,}, \
parcel, &curval, 1, TYPE_##TPE1, \
TYPE_##TPE2, NULL, 0, 0, true, \
- false, true, \
- "GDKanalyticalsum") == BUN_NONE) { \
+ false, true) == BUN_NONE) { \
goto bailout; \
} \
} \
diff --git a/gdk/gdk_calc_private.h b/gdk/gdk_calc_private.h
--- a/gdk/gdk_calc_private.h
+++ b/gdk/gdk_calc_private.h
@@ -316,5 +316,5 @@
void *restrict results, BUN ngrp, int tp1, int tp2,
const oid *restrict gids,
oid min, oid max, bool skip_nils, bool abort_on_error,
- bool nil_if_empty, const char *func)
+ bool nil_if_empty)
__attribute__((__visibility__("hidden")));
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -299,19 +299,13 @@ nomatch(BAT **r1p, BAT **r2p, BAT *l, BA
* point select to find matches in the right column. */
static gdk_return
selectjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr,
- struct canditer *restrict lci, bool nil_matches, lng t0, bool
swapped)
+ struct canditer *restrict lci, bool nil_matches, lng t0,
+ bool swapped, const char *reason)
{
BATiter li = bat_iterator(l);
const void *v;
BAT *bn = NULL;
- ALGODEBUG fprintf(stderr, "#selectjoin(l=" ALGOBATFMT ","
- "r=" ALGOBATFMT ",sl=" ALGOOPTBATFMT ","
- "sr=" ALGOOPTBATFMT ",nil_matches=%d)%s\n",
- ALGOBATPAR(l), ALGOBATPAR(r), ALGOOPTBATPAR(sl),
ALGOOPTBATPAR(sr),
- nil_matches,
- swapped ? " swapped" : "");
-
assert(lci->ncand > 0);
assert(lci->ncand == 1 || (l->tsorted && l->trevsorted));
@@ -387,10 +381,18 @@ selectjoin(BAT **r1p, BAT **r2p, BAT *l,
BBPunfix(bn->batCacheid);
*r1p = r1;
*r2p = r2;
- ALGODEBUG fprintf(stderr, "#selectjoin(l=%s,r=%s)=(" ALGOBATFMT ","
ALGOOPTBATFMT ") " LLFMT "us\n",
- BATgetId(l), BATgetId(r),
+ ALGODEBUG fprintf(stderr, "#%s: %s(l=" ALGOBATFMT ","
+ "r=" ALGOBATFMT ",sl=" ALGOOPTBATFMT ","
+ "sr=" ALGOOPTBATFMT ",nil_matches=%d)%s %s "
+ "-> (" ALGOBATFMT "," ALGOOPTBATFMT ") " LLFMT "us\n",
+ MT_thread_getname(), __func__,
+ ALGOBATPAR(l), ALGOBATPAR(r),
+ ALGOOPTBATPAR(sl), ALGOOPTBATPAR(sr),
+ nil_matches,
+ swapped ? " swapped" : "", reason,
ALGOBATPAR(r1), ALGOOPTBATPAR(r2),
GDKusec() - t0);
+
return GDK_SUCCEED;
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list