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

Reply via email to