Changeset: fd7aeb428c35 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fd7aeb428c35
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
monetdb5/optimizer/opt_cquery.c
sql/backends/monet5/Tests/cqstream03.stable.out
sql/backends/monet5/Tests/cquery.malC
sql/backends/monet5/Tests/cquery.stable.err
sql/backends/monet5/Tests/cquery18.sql
sql/backends/monet5/Tests/cquery18.stable.out
sql/backends/monet5/basket.mal
sql/backends/monet5/cquery.mal
sql/backends/monet5/sql_basket.c
sql/backends/monet5/sql_basket.h
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_cquery.c
sql/backends/monet5/sql_cquery.h
sql/scripts/50_cquery.sql
Branch: trails
Log Message:
Some API cleaning. We are always using the alias to reference a CQ
diffs (truncated from 1029 to 300 lines):
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -546,6 +546,7 @@ Ready.
[ "basket", "delete", "pattern basket.delete(mvc:int, sch:str,
tbl:str, rid:bat[:oid]):int ", "BSKTdelete;", "Remove tuples from a basket" ]
[ "basket", "drop", "pattern basket.drop(mvc:int, sch:str, tbl:str):int ",
"BSKTdrop;", "Remove the basket" ]
[ "basket", "dump", "command basket.dump():void ", "BSKTdump;", "Show
the baskets table" ]
+[ "basket", "error", "pattern basket.error(sch:str, tbl:str,
msg:str):void ", "BSKTerror;", "Remember the error seen" ]
[ "basket", "lock", "pattern basket.lock(mvc:any, sch:str, tbl:str):int ",
"BSKTlock;", "Lock the basket for private use" ]
[ "basket", "prelude", "command basket.prelude():void ",
"BSKTprelude;", "" ]
[ "basket", "register", "pattern basket.register(mvc:int, sch:str,
tbl:str, role:int):int ", "BSKTregister;", "Initialize a new basket
based on a specific table definition. roles:input=0, output=1" ]
@@ -7449,18 +7450,17 @@ Ready.
[ "color", "value", "command color.value(c:color):flt ",
"CLRvalue;", "Extracts value component from a color atom" ]
[ "color", "value", "command color.value(c:color):int ",
"CLRvalueInt;", "Extracts value component from a color atom" ]
[ "color", "ycc", "command color.ycc(y:int, cr:int, cb:int):color ",
"CLRycc;", "Converts an YCC triplets to a color atom" ]
-[ "cquery", "beginat", "pattern cquery.beginat(mod:str, fcn:str,
unixtime:lng):void ", "CQbeginAt;", "Delay beginning of a continuous query,
where unixtime is an UNIX timestamp with microsecond precision" ]
+[ "cquery", "beginat", "pattern cquery.beginat(alias:str,
unixtime:lng):void ", "CQbeginAt;", "Delay beginning of a continuous
query, where unixtime is an UNIX timestamp with microsecond precision" ]
[ "cquery", "beginat", "pattern cquery.beginat(unixtime:lng):void ",
"CQbeginAt;", "Delay beginning of all continuous queries, where unixtime is
an UNIX timestamp with microsecond precision" ]
-[ "cquery", "cycles", "pattern cquery.cycles(cnt:int):void ",
"CQcycles;", "Limit number of petrinet steps" ]
-[ "cquery", "cycles", "pattern cquery.cycles(mod:str, fcn:str,
cnt:int):void ", "CQcycles;", "Limit number of petrinet steps" ]
+[ "cquery", "cycles", "pattern cquery.cycles(alias:str, cnt:int):void
", "CQcycles;", "Limit number of petrinet steps for a single continuous
query" ]
+[ "cquery", "cycles", "pattern cquery.cycles(cnt:int):void ",
"CQcycles;", "Limit number of petrinet steps for all continuous queries"
]
[ "cquery", "dump", "command cquery.dump():void ", "CQdump;", "Show
the status of the query scheduler" ]
-[ "cquery", "error", "pattern cquery.error(sch:str, tbl:str,
msg:str):void ", "CQerror;", "Remember the error seen" ]
+[ "cquery", "heartbeat", "pattern cquery.heartbeat(alias:str,
cnt:lng):void ", "CQheartbeat;", "Awake the query after cnt milliseconds"
]
[ "cquery", "heartbeat", "pattern cquery.heartbeat(cnt:lng):void ",
"CQheartbeat;", "Awake all queries after cnt milliseconds" ]
-[ "cquery", "heartbeat", "pattern cquery.heartbeat(mod:str, fcn:str,
cnt:lng):void ", "CQheartbeat;", "Awake the query after cnt milliseconds"
]
-[ "cquery", "log", "pattern cquery.log() (tick:bat[:timestamp],
mod:bat[:str], fcn:bat[:str], time:bat[:lng], error:bat[:str]) ", "CQlog;",
"The log of all CQ executions" ]
+[ "cquery", "log", "pattern cquery.log() (tick:bat[:timestamp],
alias:bat[:str], time:bat[:lng], error:bat[:str]) ", "CQlog;", "The
log of all CQ executions" ]
[ "cquery", "prelude", "command cquery.prelude():void ",
"CQprelude;", "" ]
-[ "cquery", "show", "pattern cquery.show(sch:str, fcn:str):void ",
"CQshow;", "Debug a single continuous query" ]
-[ "cquery", "status", "pattern cquery.status() (tick:bat[:timestamp],
mod:bat[:str], fcn:bat[:str], state:bat[:str], error:bat[:str], stmt:bat[:str])
", "CQstatus;", "Status of all registered continuous queries" ]
+[ "cquery", "show", "pattern cquery.show(alias:str):void ", "CQshow;",
"Debug a single continuous query" ]
+[ "cquery", "status", "pattern cquery.status() (tick:bat[:timestamp],
alias:bat[:str], state:bat[:str], error:bat[:str]) ", "CQstatus;", "Status
of all registered continuous queries" ]
[ "cquery", "wait", "pattern cquery.wait(cnt:int):void ", "CQwait;",
"Sleep for some time" ]
[ "date", "!=", "pattern date.!=(v:date, w:date):bit ", "CMDvarNE;",
"Equality of two dates" ]
[ "date", "#fromstr", "command date.#fromstr():void ",
"date_fromstr;", "" ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -650,6 +650,7 @@ Ready.
[ "basket", "delete", "pattern basket.delete(mvc:int, sch:str,
tbl:str, rid:bat[:oid]):int ", "BSKTdelete;", "Remove tuples from a basket" ]
[ "basket", "drop", "pattern basket.drop(mvc:int, sch:str, tbl:str):int ",
"BSKTdrop;", "Remove the basket" ]
[ "basket", "dump", "command basket.dump():void ", "BSKTdump;", "Show
the baskets table" ]
+[ "basket", "error", "pattern basket.error(sch:str, tbl:str,
msg:str):void ", "BSKTerror;", "Remember the error seen" ]
[ "basket", "lock", "pattern basket.lock(mvc:any, sch:str, tbl:str):int ",
"BSKTlock;", "Lock the basket for private use" ]
[ "basket", "prelude", "command basket.prelude():void ",
"BSKTprelude;", "" ]
[ "basket", "register", "pattern basket.register(mvc:int, sch:str,
tbl:str, role:int):int ", "BSKTregister;", "Initialize a new basket
based on a specific table definition. roles:input=0, output=1" ]
@@ -9795,18 +9796,17 @@ Ready.
[ "color", "value", "command color.value(c:color):flt ",
"CLRvalue;", "Extracts value component from a color atom" ]
[ "color", "value", "command color.value(c:color):int ",
"CLRvalueInt;", "Extracts value component from a color atom" ]
[ "color", "ycc", "command color.ycc(y:int, cr:int, cb:int):color ",
"CLRycc;", "Converts an YCC triplets to a color atom" ]
-[ "cquery", "beginat", "pattern cquery.beginat(mod:str, fcn:str,
unixtime:lng):void ", "CQbeginAt;", "Delay beginning of a continuous query,
where unixtime is an UNIX timestamp with microsecond precision" ]
+[ "cquery", "beginat", "pattern cquery.beginat(alias:str,
unixtime:lng):void ", "CQbeginAt;", "Delay beginning of a continuous
query, where unixtime is an UNIX timestamp with microsecond precision" ]
[ "cquery", "beginat", "pattern cquery.beginat(unixtime:lng):void ",
"CQbeginAt;", "Delay beginning of all continuous queries, where unixtime is
an UNIX timestamp with microsecond precision" ]
-[ "cquery", "cycles", "pattern cquery.cycles(cnt:int):void ",
"CQcycles;", "Limit number of petrinet steps" ]
-[ "cquery", "cycles", "pattern cquery.cycles(mod:str, fcn:str,
cnt:int):void ", "CQcycles;", "Limit number of petrinet steps" ]
+[ "cquery", "cycles", "pattern cquery.cycles(alias:str, cnt:int):void
", "CQcycles;", "Limit number of petrinet steps for a single continuous
query" ]
+[ "cquery", "cycles", "pattern cquery.cycles(cnt:int):void ",
"CQcycles;", "Limit number of petrinet steps for all continuous queries"
]
[ "cquery", "dump", "command cquery.dump():void ", "CQdump;", "Show
the status of the query scheduler" ]
-[ "cquery", "error", "pattern cquery.error(sch:str, tbl:str,
msg:str):void ", "CQerror;", "Remember the error seen" ]
+[ "cquery", "heartbeat", "pattern cquery.heartbeat(alias:str,
cnt:lng):void ", "CQheartbeat;", "Awake the query after cnt milliseconds"
]
[ "cquery", "heartbeat", "pattern cquery.heartbeat(cnt:lng):void ",
"CQheartbeat;", "Awake all queries after cnt milliseconds" ]
-[ "cquery", "heartbeat", "pattern cquery.heartbeat(mod:str, fcn:str,
cnt:lng):void ", "CQheartbeat;", "Awake the query after cnt milliseconds"
]
-[ "cquery", "log", "pattern cquery.log() (tick:bat[:timestamp],
mod:bat[:str], fcn:bat[:str], time:bat[:lng], error:bat[:str]) ", "CQlog;",
"The log of all CQ executions" ]
+[ "cquery", "log", "pattern cquery.log() (tick:bat[:timestamp],
alias:bat[:str], time:bat[:lng], error:bat[:str]) ", "CQlog;", "The
log of all CQ executions" ]
[ "cquery", "prelude", "command cquery.prelude():void ",
"CQprelude;", "" ]
-[ "cquery", "show", "pattern cquery.show(sch:str, fcn:str):void ",
"CQshow;", "Debug a single continuous query" ]
-[ "cquery", "status", "pattern cquery.status() (tick:bat[:timestamp],
mod:bat[:str], fcn:bat[:str], state:bat[:str], error:bat[:str], stmt:bat[:str])
", "CQstatus;", "Status of all registered continuous queries" ]
+[ "cquery", "show", "pattern cquery.show(alias:str):void ", "CQshow;",
"Debug a single continuous query" ]
+[ "cquery", "status", "pattern cquery.status() (tick:bat[:timestamp],
alias:bat[:str], state:bat[:str], error:bat[:str]) ", "CQstatus;", "Status
of all registered continuous queries" ]
[ "cquery", "wait", "pattern cquery.wait(cnt:int):void ", "CQwait;",
"Sleep for some time" ]
[ "date", "!=", "pattern date.!=(v:date, w:date):bit ", "CMDvarNE;",
"Equality of two dates" ]
[ "date", "#fromstr", "command date.#fromstr():void ",
"date_fromstr;", "" ]
diff --git a/monetdb5/optimizer/opt_cquery.c b/monetdb5/optimizer/opt_cquery.c
--- a/monetdb5/optimizer/opt_cquery.c
+++ b/monetdb5/optimizer/opt_cquery.c
@@ -257,7 +257,7 @@ OPTcqueryImplementation(Client cntxt, Ma
setVarUDFtype(mb, j);
r->barrier = CATCHsymbol;
- r = newStmt(mb,cqueryRef, errorRef);
+ r = newStmt(mb,basketRef, errorRef);
r = pushStr(mb, r, getModuleId(old[0]));
r = pushStr(mb, r, getFunctionId(old[0]));
r = pushArgument(mb, r, j);
@@ -270,7 +270,7 @@ OPTcqueryImplementation(Client cntxt, Ma
setVarUDFtype(mb, j);
r->barrier = CATCHsymbol;
- r = newStmt(mb,cqueryRef, errorRef);
+ r = newStmt(mb,basketRef, errorRef);
r = pushStr(mb, r, getModuleId(old[0]));
r = pushStr(mb, r, getFunctionId(old[0]));
r = pushArgument(mb, r, j);
diff --git a/sql/backends/monet5/Tests/cqstream03.stable.out
b/sql/backends/monet5/Tests/cqstream03.stable.out
--- a/sql/backends/monet5/Tests/cqstream03.stable.out
+++ b/sql/backends/monet5/Tests/cqstream03.stable.out
@@ -36,10 +36,10 @@ Ready.
# end if;
#end;
#select * from cquery.status();
-% .L1, .L1, .L1, .L1, .L1, .L1 # table_name
-% tick, schema, function, alias, state, errors # name
-% timestamp, clob, clob, clob, clob, clob # type
-% 26, 0, 0, 0, 0, 0 # length
+% .L1, .L1, .L1, .L1 # table_name
+% tick, alias, state, errors # name
+% timestamp, clob, clob, clob # type
+% 26, 0, 0, 0 # length
#drop procedure cq_agenda;
#drop table tmp13;
#drop table agenda13;
diff --git a/sql/backends/monet5/Tests/cquery.malC
b/sql/backends/monet5/Tests/cquery.malC
--- a/sql/backends/monet5/Tests/cquery.malC
+++ b/sql/backends/monet5/Tests/cquery.malC
@@ -2,8 +2,8 @@
cquery.dump();
-cquery.show("unknown","query");
+cquery.show("noalias");
-(tick:bat[:timestamp],mod:bat[:str],fcn:bat[:str],alias:bat[:str],time:bat[:lng],error:bat[:str])
:= cquery.log();
+(tick:bat[:timestamp],alias:bat[:str],time:bat[:lng],error:bat[:str]) :=
cquery.log();
-io.print(tick,mod,fcn,time,error);
+io.print(tick,alias,time,error);
diff --git a/sql/backends/monet5/Tests/cquery.stable.err
b/sql/backends/monet5/Tests/cquery.stable.err
--- a/sql/backends/monet5/Tests/cquery.stable.err
+++ b/sql/backends/monet5/Tests/cquery.stable.err
@@ -28,20 +28,19 @@ stderr of test 'cquery` in directory 'sq
# 22:02:28 > "mclient" "-lmal" "-ftest" "-Eutf-8"
"--host=/var/tmp/mtest-9376" "--port=30916"
# 22:02:28 >
-MAPI = (monetdb) /var/tmp/mtest-9376/.s.monetdb.30916
+MAPI = (monetdb) /var/tmp/mtest-1914/.s.monetdb.39899
QUERY = # some simple MAL tests
cquery.dump();
- cquery.show("unknown","query");
+ cquery.show("noalias");
-
(tick:bat[:timestamp],mod:bat[:str],fcn:bat[:str],alias:bat[:str],time:bat[:lng],error:bat[:str])
:= cquery.log();
+ (tick:bat[:timestamp],alias:bat[:str],time:bat[:lng],error:bat[:str])
:= cquery.log();
- io.print(tick,mod,fcn,time,error);
-ERROR = !SQLException:cquery.show:The continuous query unknown.query is not
accessible
-
+ io.print(tick,alias,time,error);
+ERROR = !SQLException:cquery.show:42000!The continuous query noalias has not
yet started
-# 22:02:28 >
-# 22:02:28 > "Done."
-# 22:02:28 >
+# 18:08:15 >
+# 18:08:15 > "Done."
+# 18:08:15 >
diff --git a/sql/backends/monet5/Tests/cquery18.sql
b/sql/backends/monet5/Tests/cquery18.sql
--- a/sql/backends/monet5/Tests/cquery18.sql
+++ b/sql/backends/monet5/Tests/cquery18.sql
@@ -23,7 +23,7 @@ start continuous procedure cq_query18(1)
pause continuous cq_query18; --error
-select "schema", "function", errors from cquery.status();
+select alias, errors from cquery.status();
resume continuous cq_query18; --ok
@@ -35,7 +35,7 @@ call cquery.wait(3000);
select aaa from testing18;
-select "schema", "function", "errors" from cquery.status();
+select alias, "errors" from cquery.status();
drop procedure cq_query18;
drop table testing18;
diff --git a/sql/backends/monet5/Tests/cquery18.stable.out
b/sql/backends/monet5/Tests/cquery18.stable.out
--- a/sql/backends/monet5/Tests/cquery18.stable.out
+++ b/sql/backends/monet5/Tests/cquery18.stable.out
@@ -88,12 +88,12 @@ Ready.
% real # type
% 15 # length
[ 1 ]
-#select "schema", "function", errors from cquery.status();
-% .L1, .L1, .L1 # table_name
-% schema, function, errors # name
-% clob, clob, clob # type
-% 3, 10, 36 # length
-[ "sys", "cq_query18", "MALException:calc./:operation failed" ]
+#select alias, errors from cquery.status();
+% .L1, .L1 # table_name
+% alias, errors # name
+% clob, clob # type
+% 10, 36 # length
+[ "cq_query18", "MALException:calc./:operation failed" ]
#resume continuous cq_query18; --ok
#stop continuous cq_query18; --ok
#start continuous procedure cq_query18(2) with heartbeat 1000 cycles 2; --ok
@@ -105,11 +105,11 @@ Ready.
[ 1 ]
[ 0 ]
[ 0 ]
-#select "schema", "function", errors from cquery.status();
-% .L1, .L1, .L1 # table_name
-% schema, function, errors # name
-% clob, clob, clob # type
-% 0, 0, 0 # length
+#select alias, "errors" from cquery.status();
+% .L1, .L1 # table_name
+% alias, errors # name
+% clob, clob # type
+% 0, 0 # length
#drop procedure cq_query18;
#drop table testing18;
diff --git a/sql/backends/monet5/basket.mal b/sql/backends/monet5/basket.mal
--- a/sql/backends/monet5/basket.mal
+++ b/sql/backends/monet5/basket.mal
@@ -72,6 +72,10 @@ pattern reset(mvc:int,sch:str,tbl:str):i
address BSKTreset
comment "Remove a basket content";
+pattern error(sch:str,tbl:str,msg:str)
+address BSKTerror
+comment "Remember the error seen";
+
pattern drop(mvc:int,sch:str,tbl:str):int
address BSKTdrop
comment "Remove the basket";
diff --git a/sql/backends/monet5/cquery.mal b/sql/backends/monet5/cquery.mal
--- a/sql/backends/monet5/cquery.mal
+++ b/sql/backends/monet5/cquery.mal
@@ -21,7 +21,7 @@ pattern wait(cnt:int)
address CQwait
comment "Sleep for some time";
-pattern cycles(mod:str, fcn:str,cnt:int)
+pattern cycles(alias:str,cnt:int)
address CQcycles
comment "Limit number of petrinet steps for a single continuous query";
@@ -29,7 +29,7 @@ pattern cycles(cnt:int)
address CQcycles
comment "Limit number of petrinet steps for all continuous queries";
-pattern beginat(mod:str, fcn:str,unixtime:lng)
+pattern beginat(alias:str,unixtime:lng)
address CQbeginAt
comment "Delay beginning of a continuous query, where unixtime is an UNIX
timestamp with microsecond precision";
@@ -38,7 +38,7 @@ address CQbeginAt
comment "Delay beginning of all continuous queries, where unixtime is an UNIX
timestamp with microsecond precision";
# scheduler heart beat for each CQ
-pattern heartbeat(mod:str, fcn:str,cnt:lng)
+pattern heartbeat(alias:str,cnt:lng)
address CQheartbeat
comment "Awake the query after cnt milliseconds";
@@ -46,20 +46,16 @@ pattern heartbeat(cnt:lng)
address CQheartbeat
comment "Awake all queries after cnt milliseconds";
-pattern error(sch:str, tbl:str, msg:str)
-address CQerror
-comment "Remember the error seen";
-
# continuous query status analysis
-pattern status()
(tick:bat[:timestamp],mod:bat[:str],fcn:bat[:str],alias:bat[:str],state:bat[:str],error:bat[:str])
+pattern status()
(tick:bat[:timestamp],alias:bat[:str],state:bat[:str],error:bat[:str])
address CQstatus
comment "Status of all registered continuous queries";
-pattern log()
(tick:bat[:timestamp],mod:bat[:str],fcn:bat[:str],alias:bat[:str],time:bat[:lng],error:bat[:str])
+pattern log()
(tick:bat[:timestamp],alias:bat[:str],time:bat[:lng],error:bat[:str])
address CQlog
comment "The log of all CQ executions";
-pattern show(sch:str,fcn:str)
+pattern show(alias:str)
address CQshow
comment "Debug a single continuous query";
diff --git a/sql/backends/monet5/sql_basket.c b/sql/backends/monet5/sql_basket.c
--- a/sql/backends/monet5/sql_basket.c
+++ b/sql/backends/monet5/sql_basket.c
@@ -36,7 +36,7 @@
#define _DEBUG_BASKET_ if(0)
BasketRec *baskets; /* the global timetrails catalog */
-int bsktTop = 0, bsktLimit = 0;
+static int bsktTop = 0, bsktLimit = 0;
// locate the basket in the basket catalog
int
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list