Changeset: 8b822d5f1dfc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8b822d5f1dfc
Modified Files:
        gdk/gdk.h
        gdk/gdk_cross.c
        sql/test/sysmon/Tests/query_timeout.test
Branch: qcancel
Log Message:

dont check timeout on every step


diffs (57 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2113,6 +2113,7 @@ gdk_export BAT *BATsample_with_seed(BAT 
  */
 #define MAXPARAMS      32
 
+#define CHECK_QRY_TIMEOUT_STEP 10000
 #define _CHECK_TIMEOUT(starttime, querytimeout) \
        if (querytimeout && starttime && (GDKusec() - starttime) > 
querytimeout) { \
                GDKerror("Timeout was reached!"); \
diff --git a/gdk/gdk_cross.c b/gdk/gdk_cross.c
--- a/gdk/gdk_cross.c
+++ b/gdk/gdk_cross.c
@@ -52,9 +52,10 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
                bn1->tnonil = true;
                p = (oid *) Tloc(bn1, 0);
                for (i = 0; i < cnt1; i++) {
-                       _CHECK_TIMEOUT(qry_ctx->starttime, 
qry_ctx->querytimeout);
                        oid x = canditer_next(&ci1);
                        for (j = 0; j < cnt2; j++) {
+                               if ((((i+1)*(j+1)) % CHECK_QRY_TIMEOUT_STEP) == 
0)
+                                       _CHECK_TIMEOUT(qry_ctx->starttime, 
qry_ctx->querytimeout);
                                *p++ = x;
                        }
                }
@@ -69,8 +70,9 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
                        bn2->tnonil = true;
                        p = (oid *) Tloc(bn2, 0);
                        for (i = 0; i < cnt1; i++) {
-                               _CHECK_TIMEOUT(qry_ctx->starttime, 
qry_ctx->querytimeout);
                                for (j = 0; j < cnt2; j++) {
+                                       if ((((i+1)*(j+1)) % 
CHECK_QRY_TIMEOUT_STEP) == 0)
+                                               
_CHECK_TIMEOUT(qry_ctx->starttime, qry_ctx->querytimeout);
                                        *p++ = canditer_next(&ci2);
                                }
                                canditer_reset(&ci2);
diff --git a/sql/test/sysmon/Tests/query_timeout.test 
b/sql/test/sysmon/Tests/query_timeout.test
--- a/sql/test/sysmon/Tests/query_timeout.test
+++ b/sql/test/sysmon/Tests/query_timeout.test
@@ -5,13 +5,13 @@ statement ok
 create table bar(id bigserial, value int);
 
 statement ok
-insert into foo(value) (select * from generate_series(0,10000));
+insert into foo(value) (select * from generate_series(0,100000));
 
 statement ok
-insert into bar(value) (select * from generate_series(0,10000));
+insert into bar(value) (select * from generate_series(0,100000));
 
 statement ok
-call setquerytimeout(0, 1);
+call setquerytimeout(0, 10);
 
 # test crossproduct
 statement error HYT00!Query aborted due to timeout
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to