Changeset: 52f796e14984 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=52f796e14984
Modified Files:
monetdb5/modules/mal/clients.c
monetdb5/modules/mal/clients.h
monetdb5/modules/mal/clients.mal
sql/scripts/22_clients.sql
Branch: default
Log Message:
Session control
diffs (62 lines):
diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -361,6 +361,15 @@ CLTsuspend(Client cntxt, MalBlkPtr mb, M
//set time out based on seconds
str
+CLTsetSessionTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+ lng sto;
+ (void) mb;
+ sto= *(lng *) getArgReference(stk,pci,1);
+ cntxt->stimeout = sto * 1000 * 1000;
+ return MAL_SUCCEED;
+}
+str
CLTsetTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
lng qto,sto;
diff --git a/monetdb5/modules/mal/clients.h b/monetdb5/modules/mal/clients.h
--- a/monetdb5/modules/mal/clients.h
+++ b/monetdb5/modules/mal/clients.h
@@ -52,6 +52,7 @@ clients_export str CLTInfo(Client cntxt,
clients_export str CLTstop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
clients_export str CLTsuspend(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
clients_export str CLTsetTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
+clients_export str CLTsetSessionTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr pci);
clients_export str CLTgetTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
clients_export str CLTwakeup(int *ret, int *id);
diff --git a/monetdb5/modules/mal/clients.mal b/monetdb5/modules/mal/clients.mal
--- a/monetdb5/modules/mal/clients.mal
+++ b/monetdb5/modules/mal/clients.mal
@@ -71,8 +71,12 @@ command wakeup(id:int):void
address CLTwakeup
comment "Wakeup a client process";
+pattern setsession(n:lng):void
+address CLTsetSessionTimeout
+comment "Abort a session after n seconds.";
+
pattern settimeout(n:lng):void
-address CLTsettimeout
+address CLTsetTimeout
comment "Abort a query after n seconds.";
pattern setTimeout(q:lng,s:lng):void
diff --git a/sql/scripts/22_clients.sql b/sql/scripts/22_clients.sql
--- a/sql/scripts/22_clients.sql
+++ b/sql/scripts/22_clients.sql
@@ -18,8 +18,10 @@ create function sys.password_hash (usern
returns string
external name sql.password;
--- control the query time out
+-- control the query and session time out
create procedure sys.settimeout("query" bigint)
external name sql.settimeout;
create procedure sys.settimeout("query" bigint, "session" bigint)
external name sql.settimeout;
+create procedure sys.setsession("timeout" bigint)
+ external name sql.setsession;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list