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