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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to