Changeset: 2020c3890711 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2020c3890711
Modified Files:
gdk/gdk.h
gdk/gdk_join.c
Branch: qcancel
Log Message:
mergejoin_void
diffs (43 lines):
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2123,6 +2123,7 @@ gdk_export BAT *BATsample_with_seed(BAT
#define GOTO_LABEL_TIMEOUT_HANDLER(label) \
do { \
+ GDKerror("Timeout was reached!"); \
goto label; \
} while(0)
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -462,6 +462,10 @@ mergejoin_void(BAT **r1p, BAT **r2p, BAT
assert(rci->tpe == cand_dense);
assert(BATcount(r) > 0);
+ size_t counter = 0;
+ QryCtx *qry_ctx = MT_thread_get_qry_ctx();
+ lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ?
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+
MT_thread_setalgorithm(__func__);
/* figure out range [lo..hi) of values in r that we need to match */
lo = r->tseqbase;
@@ -711,6 +715,8 @@ mergejoin_void(BAT **r1p, BAT **r2p, BAT
r2->tnonil = true;
if (l->ttype == TYPE_void && l->tvheap != NULL) {
for (i = 0; i < lci->ncand; i++) {
+ GDK_CHECK_TIMEOUT(timeoffset, counter,
+ DEFAULT_TIMEOUT_HANDLER());
oid c = canditer_next(lci);
o = BUNtoid(l, c - l->hseqbase);
@@ -725,6 +731,8 @@ mergejoin_void(BAT **r1p, BAT **r2p, BAT
}
} else {
for (i = 0; i < lci->ncand; i++) {
+ GDK_CHECK_TIMEOUT(timeoffset, counter,
+ DEFAULT_TIMEOUT_HANDLER());
oid c = canditer_next(lci);
o = lvals[c - l->hseqbase];
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list