Changeset: ef882e0c0426 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ef882e0c0426
Added Files:
        sql/server/sql_timestamps.c
        sql/server/sql_timestamps.h
Removed Files:
        sql/backends/monet5/sql_timestamps.c
        sql/backends/monet5/sql_timestamps.h
Modified Files:
        monetdb5/modules/mal/wlc.mal
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        sql/backends/monet5/Makefile.ag
        sql/backends/monet5/Tests/cqcreate.sql
        sql/backends/monet5/cquery.mal
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_cat.h
        sql/backends/monet5/sql_cquery.c
        sql/backends/monet5/sql_cquery.h
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sqlcatalog.mal
        sql/backends/monet5/wlr.mal
        sql/include/sql_relation.h
        sql/server/Makefile.ag
        sql/server/rel_psm.c
        sql/server/rel_schema.c
        sql/server/rel_semantic.c
        sql/server/sql_mvc.h
        sql/server/sql_parser.h
        sql/server/sql_parser.y
        sql/server/sql_qc.c
        sql/server/sql_qc.h
Branch: trails
Log Message:

Intermediate commit


diffs (truncated from 1422 to 300 lines):

diff --git a/monetdb5/modules/mal/wlc.mal b/monetdb5/modules/mal/wlc.mal
--- a/monetdb5/modules/mal/wlc.mal
+++ b/monetdb5/modules/mal/wlc.mal
@@ -206,9 +206,13 @@ pattern drop_index( sname:str, iname:str
 address WLCgeneric
 comment "Catalog operation drop_index";
 
-pattern change_cp( action:int)
+pattern change_single_cp( alias:str, action:int, heartbeats:lng, startat:lng, 
cycles:int)
 address WLCgeneric
-comment "Pause, resume or stop all continuous queries";
+comment "Catalog operation change_single_cp";
+
+pattern change_all_cp( action:int)
+address WLCgeneric
+comment "Catalog operation change_all_cp";
 
 pattern drop_function( sname:str, fname:str, fid:int, type:int, action:int)
 address WLCgeneric
diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -77,7 +77,8 @@ str commitRef;
 str connectRef;
 str copy_fromRef;
 str copyRef;
-str change_cpRef;
+str change_single_cpRef;
+str change_all_cpRef;
 str count_no_nilRef;
 str countRef;
 str create_constraintRef;
@@ -406,7 +407,8 @@ void optimizerInit(void)
        drop_roleRef = putName("drop_role");
        drop_userRef = putName("drop_user");
        drop_indexRef = putName("drop_index");
-       change_cpRef = putName("change_cp");
+       change_single_cpRef = putName("change_single_cp");
+       change_all_cpRef = putName("change_all_cp");
        drop_functionRef = putName("drop_function");
        drop_triggerRef = putName("drop_trigger");
        mergecandRef= putName("mergecand");
diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h
--- a/monetdb5/optimizer/opt_prelude.h
+++ b/monetdb5/optimizer/opt_prelude.h
@@ -69,6 +69,8 @@ mal_export  str calcRef;
 mal_export  str catalogRef;
 mal_export  str clear_tableRef;
 mal_export  str closeRef;
+mal_export  str change_single_cpRef;
+mal_export  str change_all_cpRef;
 mal_export  str columnBindRef;
 mal_export  str columnRef;
 mal_export  str commitRef;
@@ -111,7 +113,6 @@ mal_export  str drop_tableRef;
 mal_export  str drop_triggerRef;
 mal_export  str drop_typeRef;
 mal_export  str drop_userRef;
-mal_export  str change_cpRef;
 mal_export  str drop_viewRef;
 mal_export     str emptybindidxRef;
 mal_export  str emptybindRef;
diff --git a/sql/backends/monet5/Makefile.ag b/sql/backends/monet5/Makefile.ag
--- a/sql/backends/monet5/Makefile.ag
+++ b/sql/backends/monet5/Makefile.ag
@@ -47,7 +47,6 @@ lib__sql = {
                sql_orderidx.c sql_orderidx.h \
                sql_basket.c sql_basket.h \
                sql_cquery.c sql_cquery.h \
-               sql_timestamps.c sql_timestamps.h \
                wlr.c wlr.h \
                sql_rank.c sql_rank.h
        LIBS = ../../server/libsqlserver \
diff --git a/sql/backends/monet5/Tests/cqcreate.sql 
b/sql/backends/monet5/Tests/cqcreate.sql
--- a/sql/backends/monet5/Tests/cqcreate.sql
+++ b/sql/backends/monet5/Tests/cqcreate.sql
@@ -5,7 +5,7 @@ CREATE TABLE results (b int);
 CREATE PROCEDURE stressing() BEGIN INSERT INTO results SELECT a FROM testing; 
END;
 
 START CONTINUOUS stressing();
-STOP CONTINUOUS stressing();
+STOP CONTINUOUS stressing;
 
 DROP PROCEDURE stressing;
 DROP TABLE results;
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
@@ -22,30 +22,6 @@ address CQregister
 comment "Add a continuous SQL procedure to the Petri-net scheduler. It will 
analyse
 the MAL block to determine the input/output dependencies and firing 
conditions.";
 
-pattern resume(mod:str, fcn:str)
-address CQresume
-comment "Activate a specific continuous query with no changes";
-
-pattern resume()
-address CQresumeAll
-comment "Activate all continuous queries";
-
-pattern pause(mod:str, fcn:str)
-address CQpause
-comment "Deactivate a continuous query";
-
-pattern pause()
-address CQpauseAll
-comment "Deactivate all continuous queries";
-
-pattern deregister(mod:str, fcn:str)
-address CQderegister
-comment "Remove a continuous query";
-
-pattern deregister()
-address CQderegisterAll
-comment "Remove all continuous queries";
-
 pattern wait(cnt:int)
 address CQwait
 comment "Sleep for some time";
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -427,17 +427,33 @@ drop_index(Client cntxt, mvc *sql, char 
 }
 
 static str
-change_cp(Client cntxt, int action)
+change_single_cp(str alias, int action, lng heartbeat, lng startat, int cycles)
+{
+       if(action & mod_resume_continuous) {
+               return CQresume(alias, action, 1, heartbeat, startat, cycles);
+       } else if(action & mod_resume_continuous_no_alter) {
+               return CQresume(alias, action, 0, 0, 0, 0);
+       } else if(action & mod_pause_continuous) {
+               return CQpause(alias, action);
+       } else if(action & mod_stop_continuous) {
+               return CQderegister(alias, action);
+       } else {
+               throw(SQL,"sql.change_single_cp", SQLSTATE(342000) "ALL 
CONTINUOUS: Unknown option");
+       }
+}
+
+static str
+change_all_cp(int action)
 {
        switch(action) {
+               case mod_pause_all_continuous:
+                       return CQpauseAll();
+               case mod_resume_all_continuous:
+                       return CQresumeAll();
                case mod_stop_all_continuous:
-                       return CQderegisterAll(cntxt, NULL, 0, 0);
-               case mod_pause_all_continuous:
-                       return CQpauseAll(cntxt, NULL, 0, 0);
-               case mod_resume_all_continuous:
-                       return CQresumeAll(cntxt, NULL, 0, 0);
+                       return CQderegisterAll();
                default:
-                       throw(SQL,"sql.change_cp", SQLSTATE(342000) "ALL 
CONTINUOUS: Unknown option");
+                       throw(SQL,"sql.change_all_cp", SQLSTATE(342000) "ALL 
CONTINUOUS: Unknown option");
        }
 }
 
@@ -1284,15 +1300,30 @@ SQLdrop_index(Client cntxt, MalBlkPtr mb
        msg = drop_index(cntxt, sql, sname, iname);
        return msg;
 }
+//alias:str, action:int, heartbeats:lng, startat:lng, cycles:int)
+str
+SQLchange_single_cp(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{      mvc *sql = NULL;
+       str msg;
+       str alias = *getArgReference_str(stk, pci, 1);
+       int action = *getArgReference_int(stk, pci, 2);
+       lng heartbeat = *getArgReference_lng(stk, pci, 3);
+       lng startat = *getArgReference_lng(stk, pci, 4);
+       int cycles = *getArgReference_int(stk, pci, 5);
+
+       initcontext();
+       msg = change_single_cp(alias, action, heartbeat, startat, cycles);
+       return msg;
+}
 
 str
-SQLchange_cp(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+SQLchange_all_cp(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {      mvc *sql = NULL;
        str msg;
        int action = *getArgReference_int(stk, pci, 1);
 
        initcontext();
-       msg = change_cp(cntxt, action);
+       msg = change_all_cp(action);
        return msg;
 }
 
diff --git a/sql/backends/monet5/sql_cat.h b/sql/backends/monet5/sql_cat.h
--- a/sql/backends/monet5/sql_cat.h
+++ b/sql/backends/monet5/sql_cat.h
@@ -56,7 +56,8 @@ sql5_export str SQLrename_user(Client cn
 sql5_export str SQLcreate_role(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci) ;
 sql5_export str SQLdrop_role(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci) ;
 sql5_export str SQLdrop_index(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci) ;
-sql5_export str SQLchange_cp(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci) ;
+sql5_export str SQLchange_single_cp(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+sql5_export str SQLchange_all_cp(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str SQLdrop_function(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci) ;
 sql5_export str SQLcreate_function(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci) ;
 sql5_export str SQLcreate_trigger(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci) ;
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
@@ -45,7 +45,6 @@
 #include "monetdb_config.h"
 #include "sql_optimizer.h"
 #include "sql_gencode.h"
-#include "sql_timestamps.h"
 #include "sql_cquery.h"
 #include "sql_basket.h"
 #include "mal_builder.h"
@@ -65,7 +64,7 @@ static BAT *CQ_id_mod = 0;
 static BAT *CQ_id_fcn = 0;
 static BAT *CQ_id_time = 0;
 static BAT *CQ_id_error = 0;
-static BAT *CQ_id_stmt = 0;
+static BAT *CQ_id_alias = 0;
 
 CQnode *pnet = 0;
 int pnetLimit = 0, pnettop = 0;
@@ -93,7 +92,7 @@ CQfree(int idx)
                freeStack(pnet[idx].stk);
        GDKfree(pnet[idx].mod);
        GDKfree(pnet[idx].fcn);
-       GDKfree(pnet[idx].stmt);
+       GDKfree(pnet[idx].alias);
        //try delete the baskets
        for( j=0; j< MAXSTREAMS && pnet[idx].baskets[j]; j++) {
                found = 0;
@@ -154,12 +153,12 @@ CQcreatelog(void){
        CQ_id_fcn = COLnew(0, TYPE_str, 1<<16, TRANSIENT);
        CQ_id_time = COLnew(0, TYPE_lng, 1<<16, TRANSIENT);
        CQ_id_error = COLnew(0, TYPE_str, 1<<16, TRANSIENT);
-       CQ_id_stmt = COLnew(0, TYPE_str, 1<<16, TRANSIENT);
+       CQ_id_alias = COLnew(0, TYPE_str, 1<<16, TRANSIENT);
        if ( CQ_id_tick == 0 &&
                CQ_id_mod == 0 &&
                CQ_id_fcn == 0 &&
                CQ_id_time == 0 &&
-               CQ_id_stmt == 0 &&
+               CQ_id_alias == 0 &&
                CQ_id_error == 0){
                        (void) CQcleanuplog();
                        throw(MAL,"cquery.log",SQLSTATE(HY001) MAL_MALLOC_FAIL);
@@ -176,7 +175,7 @@ CQentry(int idx)
                BUNappend(CQ_id_fcn, pnet[idx].fcn,FALSE) != GDK_SUCCEED ||
                BUNappend(CQ_id_time, &pnet[idx].time,FALSE) != GDK_SUCCEED ||
                BUNappend(CQ_id_error, (pnet[idx].error ? 
pnet[idx].error:""),FALSE) != GDK_SUCCEED ||
-               BUNappend(CQ_id_stmt, (pnet[idx].stmt ? 
pnet[idx].stmt:""),FALSE) != GDK_SUCCEED )
+               BUNappend(CQ_id_alias, (pnet[idx].alias ? 
pnet[idx].alias:""),FALSE) != GDK_SUCCEED )
                pnet[idx].error = 
createException(SQL,"cquery.logentry",SQLSTATE(HY001) MAL_MALLOC_FAIL);
 }
 
@@ -229,8 +228,8 @@ wrapup:
 
 str
 CQstatus( Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci){
-       BAT *tickbat = 0, *modbat = 0, *fcnbat = 0, *statusbat = 0, *errbat = 
0, *stmtbat =0;
-       bat *tickret = 0, *modret = 0, *fcnret = 0, *statusret = 0, *errorret = 
0, *stmtret = 0;
+       BAT *tickbat = 0, *modbat = 0, *fcnbat = 0, *statusbat = 0, *errbat = 
0, *aliasbat =0;
+       bat *tickret = 0, *modret = 0, *fcnret = 0, *statusret = 0, *errorret = 
0, *aliasret = 0;
        int idx;
        str msg= MAL_SUCCEED;
 
@@ -242,7 +241,7 @@ CQstatus( Client cntxt, MalBlkPtr mb, Ma
        fcnret = getArgReference_bat(stk, pci, 2);
        statusret = getArgReference_bat(stk, pci, 3);
        errorret = getArgReference_bat(stk, pci, 4);
-       stmtret = getArgReference_bat(stk, pci, 5);
+       aliasret = getArgReference_bat(stk, pci, 5);
 
        tickbat = COLnew(0, TYPE_timestamp, 0, TRANSIENT);
        if(tickbat == NULL)
@@ -256,8 +255,8 @@ CQstatus( Client cntxt, MalBlkPtr mb, Ma
        statusbat = COLnew(0, TYPE_str, 0, TRANSIENT);
        if(statusbat == NULL)
                goto wrapup;
-       stmtbat = COLnew(0, TYPE_str, 0, TRANSIENT);
-       if(stmtbat == NULL)
+       aliasbat = COLnew(0, TYPE_str, 0, TRANSIENT);
+       if(aliasbat == NULL)
                goto wrapup;
        errbat = COLnew(0, TYPE_str, 0, TRANSIENT);
        if(errbat == NULL)
@@ -268,7 +267,7 @@ CQstatus( Client cntxt, MalBlkPtr mb, Ma
                        BUNappend(modbat, pnet[idx].mod,FALSE) != GDK_SUCCEED ||
                        BUNappend(fcnbat, pnet[idx].fcn,FALSE) != GDK_SUCCEED ||
                        BUNappend(statusbat, 
statusname[pnet[idx].status],FALSE) != GDK_SUCCEED ||
-                       BUNappend(stmtbat, (pnet[idx].stmt ? 
pnet[idx].stmt:""),FALSE) != GDK_SUCCEED ||
+                       BUNappend(aliasbat, (pnet[idx].alias ? 
pnet[idx].alias:""),FALSE) != GDK_SUCCEED ||
                        BUNappend(errbat, (pnet[idx].error ? 
pnet[idx].error:""),FALSE) != GDK_SUCCEED )
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to