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