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