Changeset: 784c4386e044 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=784c4386e044
Modified Files:
        sql/backends/monet5/Tests/cqstream02.sql
        sql/backends/monet5/Tests/cqstream02.stable.err
        sql/backends/monet5/Tests/cquery03.stable.err
        sql/backends/monet5/Tests/cquery10.stable.err
        sql/backends/monet5/Tests/cquery12.sql
        sql/backends/monet5/Tests/cquery13.sql
        sql/backends/monet5/sql_cquery.c
Branch: trails
Log Message:

Deregister automatically a continuous query when the total number of cycles is 
reached.


diffs (truncated from 378 to 300 lines):

diff --git a/sql/backends/monet5/Tests/cqstream02.sql 
b/sql/backends/monet5/Tests/cqstream02.sql
--- a/sql/backends/monet5/Tests/cqstream02.sql
+++ b/sql/backends/monet5/Tests/cqstream02.sql
@@ -22,7 +22,6 @@ start continuous sys.cq_collector() with
 call cquery.wait(4000);
 
 pause continuous sys.cq_collector();
-stop continuous sys.cq_collector();
 
 select * from tmp_aggregate;
 
diff --git a/sql/backends/monet5/Tests/cqstream02.stable.err 
b/sql/backends/monet5/Tests/cqstream02.stable.err
--- a/sql/backends/monet5/Tests/cqstream02.stable.err
+++ b/sql/backends/monet5/Tests/cqstream02.stable.err
@@ -27,6 +27,10 @@ stderr of test 'cqstream02` in directory
 # 13:01:24 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-20007" "--port=32966"
 # 13:01:24 >  
 
+MAPI  = (monetdb) /var/tmp/mtest-18505/.s.monetdb.34326
+QUERY = pause continuous sys.cq_collector();
+ERROR = !The continuous procedure user.cq_collector(); has not yet started
+CODE  = 42000
 
 # 13:01:25 >  
 # 13:01:25 >  "Done."
diff --git a/sql/backends/monet5/Tests/cquery03.stable.err 
b/sql/backends/monet5/Tests/cquery03.stable.err
--- a/sql/backends/monet5/Tests/cquery03.stable.err
+++ b/sql/backends/monet5/Tests/cquery03.stable.err
@@ -27,6 +27,10 @@ stderr of test 'cquery03` in directory '
 # 14:15:08 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-10355" "--port=32676"
 # 14:15:08 >  
 
+MAPI  = (monetdb) /var/tmp/mtest-16604/.s.monetdb.32786
+QUERY = stop continuous cqfoo(321);
+ERROR = !The continuous procedure user.cqfoo(X_4); has not yet started
+CODE  = 42000
 
 # 14:15:08 >  
 # 14:15:08 >  "Done."
diff --git a/sql/backends/monet5/Tests/cquery10.stable.err 
b/sql/backends/monet5/Tests/cquery10.stable.err
--- a/sql/backends/monet5/Tests/cquery10.stable.err
+++ b/sql/backends/monet5/Tests/cquery10.stable.err
@@ -24,118 +24,20 @@ stderr of test 'cquery10` in directory '
 # cmdline opt  gdk_debug = 536870922
 #cquery register user.cq_cycles
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#set the heartbeat of sys.cq_cycles to 1000
-#Start CQscheduler
-#cquery.scheduler started
-#cquery.scheduler paused
-#set cycles 
-#resume scheduler
-#scheduler wait 4000 ms
-#cquery: sys.cq_cycles enabled 
-#Transitions 1 enabled:
-#Run transition sys.cq_cycles cycle=3 
-#cquery.execute sys.cq_cycles locked
-
-
-
-
+# 11:34:59 >  
+# 11:34:59 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-16604" "--port=32786"
+# 11:34:59 >  
 
-#cquery.execute sys.cq_cycles finised 
-#create query.log table
-#beat sys.cq_cycles  2273106(1275366) disabled
-#cquery.scheduler paused
-#beat sys.cq_cycles  2273106(1475599) disabled
-#cquery.scheduler paused
-#beat sys.cq_cycles  2273106(1715873) disabled
-#cquery.scheduler paused
-#beat sys.cq_cycles  2273106(2004196) disabled
-#cquery.scheduler paused
-#beat sys.cq_cycles  2273106(2349596) enabled
-#cquery: sys.cq_cycles enabled 
-#Transitions 1 enabled:
-#Run transition sys.cq_cycles cycle=2 
-#cquery.execute sys.cq_cycles locked
-
-
-
-
+MAPI  = (monetdb) /var/tmp/mtest-16604/.s.monetdb.32786
+QUERY = pause continuous sys.cq_cycles();
+ERROR = !The continuous procedure user.cq_cycles(); has not yet started
+CODE  = 42000
+MAPI  = (monetdb) /var/tmp/mtest-16604/.s.monetdb.32786
+QUERY = stop continuous sys.cq_cycles();
+ERROR = !The continuous procedure user.cq_cycles(); has not yet started
+CODE  = 42000
 
-#cquery.execute sys.cq_cycles finised 
-#beat sys.cq_cycles  3349596(2351847) disabled
-#cquery.scheduler paused
-#beat sys.cq_cycles  3349596(2552081) disabled
-#cquery.scheduler paused
-#beat sys.cq_cycles  3349596(2792391) disabled
-#cquery.scheduler paused
-#beat sys.cq_cycles  3349596(3080735) disabled
-#cquery.scheduler paused
-#beat sys.cq_cycles  3349596(3426141) enabled
-#cquery: sys.cq_cycles enabled 
-#Transitions 1 enabled:
-#Run transition sys.cq_cycles cycle=1 
-#cquery.execute sys.cq_cycles locked
-
-
-
-
+# 11:35:03 >  
+# 11:35:03 >  "Done."
+# 11:35:03 >  
 
-#cquery.execute sys.cq_cycles finised 
-#cquery.scheduler paused
-#cquery.scheduler paused
-#cquery.scheduler paused
-#cquery.scheduler paused
-#cquery.scheduler paused
-#cquery.scheduler paused
-#pause cqueries
-#deregister queries 0 - 1
-
-# 10:28:05 >  
-# 10:28:05 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-25654" "--port=33494"
-# 10:28:05 >  
-
-
-# 10:28:09 >  
-# 10:28:09 >  "Done."
-# 10:28:09 >  
-
diff --git a/sql/backends/monet5/Tests/cquery12.sql 
b/sql/backends/monet5/Tests/cquery12.sql
--- a/sql/backends/monet5/Tests/cquery12.sql
+++ b/sql/backends/monet5/Tests/cquery12.sql
@@ -32,9 +32,7 @@ insert into testing11c values (3);
 
 call cquery.wait(1000);
 
-stop continuous sys.cq_query11a();
 stop continuous sys.cq_query11b();
-stop continuous sys.cq_query11c();
 
 select count(*) from results11a; --should be 1
 select count(*) from results11b; --should be 2
diff --git a/sql/backends/monet5/Tests/cquery13.sql 
b/sql/backends/monet5/Tests/cquery13.sql
--- a/sql/backends/monet5/Tests/cquery13.sql
+++ b/sql/backends/monet5/Tests/cquery13.sql
@@ -14,9 +14,7 @@ end;
 start continuous sys.cq_query13a() with heartbeat 3000;
 start continuous sys.cq_query13b() with cycles 1;
 
-call cquery.wait(1000);
-
-stop continuous sys.cq_query13b();
+call cquery.wait(1500);
 
 drop procedure sys.cq_query13a;
 drop procedure sys.cq_query13b;
diff --git a/sql/backends/monet5/sql_cquery.c b/sql/backends/monet5/sql_cquery.c
--- a/sql/backends/monet5/sql_cquery.c
+++ b/sql/backends/monet5/sql_cquery.c
@@ -1189,55 +1189,52 @@ CQscheduler(void *dummy)
                }
 
                pntasks=0;
-               for (k = i = 0; i < pnettop; i++)
-               if ( pnet[i].status == CQWAIT ){
-                       pnet[i].enabled = pnet[i].error == 0 && (pnet[i].cycles 
> 0 || pnet[i].cycles == CYCLES_NIL);
-
-                       /* Queries are triggered by the heartbeat or  all 
window constraints */
-                       /* A heartbeat in combination with a window constraint 
is ambiguous */
-                       /* At least one constraint should be set */
-                       if( pnet[i].beats == HEARTBEAT_NIL && 
pnet[i].baskets[0] == 0)
-                               pnet[i].enabled = 0;
-
-                       if( pnet[i].enabled && ((pnet[i].beats != HEARTBEAT_NIL 
&& pnet[i].beats > 0) || pnet[i].run > 0)) {
-                               pnet[i].enabled = now >= pnet[i].run + 
(pnet[i].beats > 0 ? pnet[i].beats : 0);
+               for (k = i = 0; i < pnettop; i++) {
+                       if ( pnet[i].status == CQWAIT ){
+                               pnet[i].enabled = pnet[i].error == 0 && 
(pnet[i].cycles > 0 || pnet[i].cycles == CYCLES_NIL);
+                               /* Queries are triggered by the heartbeat or  
all window constraints */
+                               /* A heartbeat in combination with a window 
constraint is ambiguous */
+                               /* At least one constraint should be set */
+                               if( pnet[i].beats == HEARTBEAT_NIL && 
pnet[i].baskets[0] == 0)
+                                       pnet[i].enabled = 0;
+                               if( pnet[i].enabled && ((pnet[i].beats != 
HEARTBEAT_NIL && pnet[i].beats > 0) || pnet[i].run > 0)) {
+                                       pnet[i].enabled = now >= pnet[i].run + 
(pnet[i].beats > 0 ? pnet[i].beats : 0);
 #ifdef DEBUG_CQUERY_SCHEDULER
-                               fprintf(stderr,"#beat %s.%s  "LLFMT"("LLFMT") 
%s\n", pnet[i].mod, pnet[i].fcn,
+                                       fprintf(stderr,"#beat %s.%s  
"LLFMT"("LLFMT") %s\n", pnet[i].mod, pnet[i].fcn,
                                        pnet[i].run + (pnet[i].beats > 0 ? 
pnet[i].beats : 0), now, (pnet[i].enabled? "enabled":"disabled"));
 #endif
-                       }
-
-                       /* check if all input baskets are available */
-                       for (j = 0; pnet[i].enabled && pnet[i].baskets[j] && (b 
= baskets[pnet[i].baskets[j]].bats[0]); j++)
-                               /* consider execution only if baskets are 
properly filled */
-                               if ( pnet[i].inout[j] == STREAM_IN && (BUN) 
baskets[pnet[i].baskets[j]].window > BATcount(b)){
-                                       pnet[i].enabled = 0;
-                                       break;
                                }
-
-                       /* check availability of all stream baskets */
-                       for (j = 0; pnet[i].enabled && pnet[i].baskets[j]; j++){
-                               for(k=0; claimed[k]; k++)
-                                       if(claimed[k]  ==  pnet[i].baskets[j]){
+                               /* check if all input baskets are available */
+                               for (j = 0; pnet[i].enabled && 
pnet[i].baskets[j] && (b = baskets[pnet[i].baskets[j]].bats[0]); j++)
+                                       /* consider execution only if baskets 
are properly filled */
+                                       if ( pnet[i].inout[j] == STREAM_IN && 
(BUN) baskets[pnet[i].baskets[j]].window > BATcount(b)){
                                                pnet[i].enabled = 0;
+                                               break;
+                                       }
+                               /* check availability of all stream baskets */
+                               for (j = 0; pnet[i].enabled && 
pnet[i].baskets[j]; j++){
+                                       for(k=0; claimed[k]; k++)
+                                               if(claimed[k]  ==  
pnet[i].baskets[j]){
+                                                       pnet[i].enabled = 0;
 #ifdef DEBUG_CQUERY_SCHEDULER
                                                fprintf(stderr, "#cquery: 
%s.%s,disgarded \n", pnet[i].mod, pnet[i].fcn);
 #endif
-                                               break;
-                                       }
-                               if (pnet[i].enabled && claimed[k] == 0)
-                                       claimed[k] =  pnet[i].baskets[j];
-                       }
-
+                                                       break;
+                                               }
+                                       if (pnet[i].enabled && claimed[k] == 0)
+                                               claimed[k] =  
pnet[i].baskets[j];
+                               }
 #ifdef DEBUG_CQUERY_SCHEDULER
-                       if( pnet[i].enabled)
-                               fprintf(stderr, "#cquery: %s.%s enabled \n", 
pnet[i].mod, pnet[i].fcn);
+                               if( pnet[i].enabled)
+                                       fprintf(stderr, "#cquery: %s.%s enabled 
\n", pnet[i].mod, pnet[i].fcn);
 #endif
-                       pntasks += pnet[i].enabled;
-               } else
-               if( pnet[i].status == CQSTOP){
-                       pnet[i].status = CQDEREGISTER;
-                       pnet[i].enabled = 0;
+                               pntasks += pnet[i].enabled;
+                       } else if( pnet[i].status == CQSTOP) {
+                               pnet[i].status = CQDEREGISTER;
+                               pnet[i].enabled = 0;
+                       } else {
+                               pnet[i].enabled = 0;
+                       }
                }
 #ifdef DEBUG_CQUERY_SCHEDULER
                if( pntasks)
@@ -1252,14 +1249,11 @@ CQscheduler(void *dummy)
                /* Tricky part is here a single stream used by multiple 
transitions */
                for (i = 0; i < pnettop  ; i++)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to