Changeset: 8be7dc635ffb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8be7dc635ffb
Modified Files:
        gdk/gdk.h
        gdk/gdk_cross.c
        gdk/gdk_join.c
Branch: qcancel
Log Message:

qry ctx maybe NULL


diffs (224 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2115,21 +2115,17 @@ gdk_export BAT *BATsample_with_seed(BAT 
 
 #define CHECK_QRY_TIMEOUT_STEP 10000
 
-#define NULL_TIMEOUT_HANDLER()                                 \
+#define TIMEOUT_MSG "Timeout was reached!"
+
+#define TIMEOUT_HANDLER(rtpe)                                          \
        do {                                                            \
-               GDKerror("Timeout was reached!");                       \
-               return NULL;                                    \
-       } while(0)
-
-#define GDK_FAIL_TIMEOUT_HANDLER()                                     \
-       do {                                                            \
-               GDKerror("Timeout was reached!");                       \
-               return GDK_FAIL;                                        \
+               GDKerror(TIMEOUT_MSG);                                  \
+               return rtpe;                                            \
        } while(0)
 
 #define GOTO_LABEL_TIMEOUT_HANDLER(label)                              \
        do {                                                            \
-               GDKerror("Timeout was reached!");                       \
+               GDKerror(TIMEOUT_MSG);                                  \
                goto label;                                             \
        } while(0)
 
diff --git a/gdk/gdk_cross.c b/gdk/gdk_cross.c
--- a/gdk/gdk_cross.c
+++ b/gdk/gdk_cross.c
@@ -27,9 +27,12 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
 
        cnt1 = canditer_init(&ci1, l, sl);
        cnt2 = canditer_init(&ci2, r, sr);
+       size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
-       size_t counter = 0;
+       if (qry_ctx != NULL) {
+               timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       }
 
        if (max_one && cnt1 > 0 && cnt2 > 1) {
                GDKerror("more than one match");
@@ -56,7 +59,7 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
                for (i = 0; i < cnt1; i++) {
                        oid x = canditer_next(&ci1);
                        for (j = 0; j < cnt2; j++) {
-                               GDK_CHECK_TIMEOUT(timeoffset, counter, 
GDK_FAIL_TIMEOUT_HANDLER());
+                               GDK_CHECK_TIMEOUT(timeoffset, counter, 
TIMEOUT_HANDLER(GDK_FAIL));
                                *p++ = x;
                        }
                }
@@ -73,7 +76,7 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
                        counter = 0;
                        for (i = 0; i < cnt1; i++) {
                                for (j = 0; j < cnt2; j++) {
-                                       GDK_CHECK_TIMEOUT(timeoffset, counter, 
GDK_FAIL_TIMEOUT_HANDLER());
+                                       GDK_CHECK_TIMEOUT(timeoffset, counter, 
TIMEOUT_HANDLER(GDK_FAIL));
                                        *p++ = canditer_next(&ci2);
                                }
                                canditer_reset(&ci2);
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -315,8 +315,11 @@ selectjoin(BAT **r1p, BAT **r2p, BAT *l,
        assert(lci->ncand == 1 || (l->tsorted && l->trevsorted));
 
        size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       if (qry_ctx != NULL) {
+               timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       }
 
        MT_thread_setalgorithm(__func__);
        oid o = canditer_next(lci);
@@ -375,7 +378,7 @@ selectjoin(BAT **r1p, BAT **r2p, BAT *l,
 
                do {
                        GDK_CHECK_TIMEOUT(timeoffset, counter,
-                                       GDK_FAIL_TIMEOUT_HANDLER());
+                                       TIMEOUT_HANDLER(GDK_FAIL));
                        for (p = 0; p < q; p++) {
                                *o1p++ = o;
                        }
@@ -394,7 +397,7 @@ selectjoin(BAT **r1p, BAT **r2p, BAT *l,
 
                do {
                        GDK_CHECK_TIMEOUT(timeoffset, counter,
-                                       GDK_FAIL_TIMEOUT_HANDLER());
+                                       TIMEOUT_HANDLER(GDK_FAIL));
                        for (p = 0; p < q; p++) {
                                *o1p++ = o;
                        }
@@ -463,8 +466,11 @@ mergejoin_void(BAT **r1p, BAT **r2p, BAT
        assert(BATcount(r) > 0);
 
        size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       if (qry_ctx != NULL) {
+               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 */
@@ -716,7 +722,7 @@ mergejoin_void(BAT **r1p, BAT **r2p, BAT
        if (l->ttype == TYPE_void && l->tvheap != NULL) {
                for (i = 0; i < lci->ncand; i++) {
                        GDK_CHECK_TIMEOUT(timeoffset, counter,
-                                       GDK_FAIL_TIMEOUT_HANDLER());
+                                       TIMEOUT_HANDLER(GDK_FAIL));
                        oid c = canditer_next(lci);
 
                        o = BUNtoid(l, c - l->hseqbase);
@@ -732,7 +738,7 @@ mergejoin_void(BAT **r1p, BAT **r2p, BAT
        } else {
                for (i = 0; i < lci->ncand; i++) {
                        GDK_CHECK_TIMEOUT(timeoffset, counter,
-                                       GDK_FAIL_TIMEOUT_HANDLER());
+                                       TIMEOUT_HANDLER(GDK_FAIL));
                        oid c = canditer_next(lci);
 
                        o = lvals[c - l->hseqbase];
@@ -811,8 +817,11 @@ mergejoin_int(BAT **r1p, BAT **r2p, BAT 
        rvals = (const int *) Tloc(r, 0);
        assert(!r->tvarsized || !r->ttype);
        size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       if (qry_ctx != NULL) {
+               timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       }
 
        /* basic properties will be adjusted if necessary later on,
         * they were initially set by joininitresults() */
@@ -1116,8 +1125,11 @@ mergejoin_lng(BAT **r1p, BAT **r2p, BAT 
        rvals = (const lng *) Tloc(r, 0);
        assert(!r->tvarsized || !r->ttype);
        size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       if (qry_ctx != NULL) {
+               timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       }
 
        /* basic properties will be adjusted if necessary later on,
         * they were initially set by joininitresults() */
@@ -1428,8 +1440,11 @@ mergejoin_cand(BAT **r1p, BAT **r2p, BAT
        assert(r->ttype == TYPE_void && r->tvheap != NULL);
        canditer_init(&rci, NULL, r);
        size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       if (qry_ctx != NULL) {
+               timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       }
 
        /* basic properties will be adjusted if necessary later on,
         * they were initially set by joininitresults() */
@@ -1749,8 +1764,11 @@ mergejoin(BAT **r1p, BAT **r2p, BAT *l, 
        assert(r->tsorted || r->trevsorted);
 
        size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       if (qry_ctx != NULL) {
+               timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       }
 
        MT_thread_setalgorithm(__func__);
        if (BATtvoid(l)) {
@@ -2567,8 +2585,11 @@ hashjoin(BAT **r1p, BAT **r2p, BAT *l, B
        assert(ATOMtype(l->ttype) == ATOMtype(r->ttype));
 
        size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       if (qry_ctx != NULL) {
+               timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       }
 
        int t = ATOMbasetype(r->ttype);
        if (r->ttype == TYPE_void || l->ttype == TYPE_void)
@@ -3221,8 +3242,11 @@ thetajoin(BAT **r1p, BAT **r2p, BAT *l, 
        oid lval = oid_nil, rval = oid_nil;
 
        size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       if (qry_ctx != NULL) {
+               timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       }
 
        assert(ATOMtype(l->ttype) == ATOMtype(r->ttype));
        assert(sl == NULL || sl->tsorted);
@@ -3992,8 +4016,12 @@ BATbandjoin(BAT **r1p, BAT **r2p, BAT *l
        TRC_DEBUG_IF(ALGO) t0 = GDKusec();
 
        size_t counter = 0;
+       lng timeoffset = 0;
        QryCtx *qry_ctx = MT_thread_get_qry_ctx();
-       lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       if (qry_ctx != NULL) {
+               timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ? 
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
+       }
+
 
        MT_thread_setalgorithm(__func__);
        *r1p = NULL;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to