Changeset: 0dfa72f570a8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0dfa72f570a8
Modified Files:
sql/backends/monet5/50_cquery.mal
sql/backends/monet5/51_basket.mal
sql/backends/monet5/Tests/basket00.malC
sql/backends/monet5/Tests/cqstream00.sql
sql/backends/monet5/Tests/cqstream01.sql
sql/backends/monet5/Tests/cquery05.sql
sql/backends/monet5/Tests/cquery10.sql
sql/backends/monet5/sql_cquery.c
sql/backends/monet5/sql_cquery.h
Branch: timetrails
Log Message:
Add error handling and signature fixes
diffs (158 lines):
diff --git a/sql/backends/monet5/50_cquery.mal
b/sql/backends/monet5/50_cquery.mal
--- a/sql/backends/monet5/50_cquery.mal
+++ b/sql/backends/monet5/50_cquery.mal
@@ -72,6 +72,10 @@ pattern window(sch:str,tbl:str,maximal:i
address CQwindow
comment "Set the input window size constraints";
+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],state:bat[:str],error:bat[:str])
address CQstatus
diff --git a/sql/backends/monet5/51_basket.mal
b/sql/backends/monet5/51_basket.mal
--- a/sql/backends/monet5/51_basket.mal
+++ b/sql/backends/monet5/51_basket.mal
@@ -81,7 +81,7 @@ pattern drop(mvc:int,sch:str,tbl:str):in
address BSKTdrop
comment "Remove the basket";
-pattern status()
(seen:bat[:timestamp],sch:bat[:str],tbl:bat[:str],events:bat[:int],cycles:bat[:int],
error:bat[:str])
+pattern status()
(seen:bat[:timestamp],sch:bat[:str],tbl:bat[:str],state:bat[:str],
window:bat[:int], stride:bat[:int],events:bat[:int],cycles:bat[:int],
error:bat[:str])
address BSKTstatus
comment "Show the status of the baskets";
diff --git a/sql/backends/monet5/Tests/basket00.malC
b/sql/backends/monet5/Tests/basket00.malC
--- a/sql/backends/monet5/Tests/basket00.malC
+++ b/sql/backends/monet5/Tests/basket00.malC
@@ -1,4 +1,7 @@
#simple test for basket management
-(seen:bat[:timestamp],sch:bat[:str],tbl:bat[:str],events:bat[:int],cycles:bat[:int],
error:bat[:str]):= baskets.status();
-io.print(seen],sch,tbl,events,cycles,error);
+(seen:bat[:timestamp],sch:bat[:str],tbl:bat[:str],state:bat[:str],
window:bat[:int], stride:bat[:int],events:bat[:int],cycles:bat[:int],
error:bat[:str]) := basket.status();
+
+io.print(seen,sch,tbl,state,window,stride,events,cycles,error);
+
+basket.dump();
diff --git a/sql/backends/monet5/Tests/cqstream00.sql
b/sql/backends/monet5/Tests/cqstream00.sql
--- a/sql/backends/monet5/Tests/cqstream00.sql
+++ b/sql/backends/monet5/Tests/cqstream00.sql
@@ -29,14 +29,14 @@ call cquery.resume('sys','cq_splitter');
call cquery.wait(1000);
-- STOP cq_splitter;
-call cquery.pause('sys','cq_splitter'));
+call cquery.pause('sys','cq_splitter');
select 'RESULT';
select * from stmp2;
select * from result1;
select * from result2;
-select * from cquery.log('sys','cq_splitter');
+select * from cquery.log();
-- ideally auto remove upon dropping the procedure
call cquery.deregister('sys','cq_splitter');
diff --git a/sql/backends/monet5/Tests/cqstream01.sql
b/sql/backends/monet5/Tests/cqstream01.sql
--- a/sql/backends/monet5/Tests/cqstream01.sql
+++ b/sql/backends/monet5/Tests/cqstream01.sql
@@ -24,13 +24,13 @@ call cquery.resume('sys','cq_window');
call cquery.wait(1000);
-- STOP cq_window;
-call cquery.pause('sys','cq_window'));
+call cquery.pause('sys','cq_window');
select 'RESULT';
select * from stmp2;
select * from result2;
-select * from cquery.log('sys','cq_window');
+select * from cquery.log();
-- ideally auto remove upon dropping the procedure
call cquery.deregister('sys','cq_window');
diff --git a/sql/backends/monet5/Tests/cquery05.sql
b/sql/backends/monet5/Tests/cquery05.sql
--- a/sql/backends/monet5/Tests/cquery05.sql
+++ b/sql/backends/monet5/Tests/cquery05.sql
@@ -21,8 +21,8 @@ call cquery.pause('sys','cq_basic');
select 'RESULT';
select * from cqresult05;
-select * from cquery.summary();
-select * from cquery.log();
+--select * from cquery.summary();
+--select * from cquery.log();
-- ideally auto remove upon dropping the procedure
call cquery.deregister('sys','cq_basic');
diff --git a/sql/backends/monet5/Tests/cquery10.sql
b/sql/backends/monet5/Tests/cquery10.sql
--- a/sql/backends/monet5/Tests/cquery10.sql
+++ b/sql/backends/monet5/Tests/cquery10.sql
@@ -24,8 +24,8 @@ call cquery.pause();
select 'RESULT';
select * from result;
-select * from cquery.summary();
-select * from cquery.log();
+--select * from cquery.summary();
+--select * from cquery.log();
-- ideally auto remove upon dropping the procedure
call cquery.deregister('sys','cq_cycles');
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
@@ -263,6 +263,26 @@ CQlocate(str modname, str fcnname)
return i;
}
+/* capture and remember errors */
+str
+CQerror(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+ str sch = *getArgReference_str(stk,pci,1);
+ str fcn = *getArgReference_str(stk,pci,2);
+ str error = *getArgReference_str(stk,pci,3);
+ int idx;
+
+ (void) cntxt;
+ (void) mb;
+
+ idx = CQlocate(sch, fcn);
+ if( idx == pnettop)
+ throw(SQL,"cquery.error","Continous query %s.%s not
accessible\n",sch,fcn);
+
+ pnet[idx].error = GDKstrdup(error);
+ return MAL_SUCCEED;
+}
+
/* A debugging routine */
str
CQshow(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
diff --git a/sql/backends/monet5/sql_cquery.h b/sql/backends/monet5/sql_cquery.h
--- a/sql/backends/monet5/sql_cquery.h
+++ b/sql/backends/monet5/sql_cquery.h
@@ -72,13 +72,14 @@ sql5_export str CQpause(Client cntxt, Ma
sql5_export str CQderegister(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
sql5_export str CQwait(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
sql5_export str CQcycles(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-sql5_export str CQshow(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-sql5_export str CQdump(void *ret);
-
sql5_export str CQheartbeat(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
sql5_export str CQtumble(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
sql5_export str CQwindow(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+sql5_export str CQerror(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+
+sql5_export str CQshow(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+sql5_export str CQstatus(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
sql5_export str CQlog(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-sql5_export str CQstatus(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+sql5_export str CQdump(void *ret);
#endif
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list