Changeset: 83dba6c65e41 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/83dba6c65e41
Modified Files:
monetdb5/modules/mal/clients.c
sql/backends/monet5/sql.c
sql/scripts/22_clients.sql
Branch: clientinfo
Log Message:
Extend the sessions table with new columns
Seven new columns: language, peer, hostname, application, client, clientpid and
remark
diffs (176 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
@@ -779,6 +779,7 @@ CLTsessions(Client cntxt, MalBlkPtr mb,
BAT *id = NULL, *user = NULL, *login = NULL, *sessiontimeout = NULL,
*querytimeout = NULL, *idle = NULL;
BAT *opt = NULL, *wlimit = NULL, *mlimit = NULL;
+ BAT *language = NULL, *peer = NULL, *hostname = NULL, *application =
NULL, *client = NULL, *clientpid = NULL, *remark = NULL;
bat *idId = getArgReference_bat(stk, pci, 0);
bat *userId = getArgReference_bat(stk, pci, 1);
bat *loginId = getArgReference_bat(stk, pci, 2);
@@ -788,6 +789,13 @@ CLTsessions(Client cntxt, MalBlkPtr mb,
bat *querytimeoutId = getArgReference_bat(stk, pci, 6);
bat *wlimitId = getArgReference_bat(stk, pci, 7);
bat *mlimitId = getArgReference_bat(stk, pci, 8);
+ bat *languageId = getArgReference_bat(stk, pci, 9);
+ bat *peerId = getArgReference_bat(stk, pci, 10);
+ bat *hostnameId = getArgReference_bat(stk, pci, 11);
+ bat *applicationId = getArgReference_bat(stk, pci, 12);
+ bat *clientId = getArgReference_bat(stk, pci, 13);
+ bat *clientpidId = getArgReference_bat(stk, pci, 14);
+ bat *remarkId = getArgReference_bat(stk, pci, 15);
Client c;
timestamp ret;
int timeout;
@@ -805,20 +813,36 @@ CLTsessions(Client cntxt, MalBlkPtr mb,
wlimit = COLnew(0, TYPE_int, 0, TRANSIENT);
mlimit = COLnew(0, TYPE_int, 0, TRANSIENT);
idle = COLnew(0, TYPE_timestamp, 0, TRANSIENT);
+ language = COLnew(0, TYPE_str, 0, TRANSIENT);
+ peer = COLnew(0, TYPE_str, 0, TRANSIENT);
+ hostname = COLnew(0, TYPE_str, 0, TRANSIENT);
+ application = COLnew(0, TYPE_str, 0, TRANSIENT);
+ client = COLnew(0, TYPE_str, 0, TRANSIENT);
+ clientpid = COLnew(0, TYPE_lng, 0, TRANSIENT);
+ remark = COLnew(0, TYPE_str, 0, TRANSIENT);
if (id == NULL || user == NULL || login == NULL || sessiontimeout ==
NULL
|| idle == NULL || querytimeout == NULL || opt == NULL ||
wlimit == NULL
- || mlimit == NULL) {
+ || mlimit == NULL || language == NULL || peer == NULL ||
hostname == NULL
+ || application == NULL || client == NULL || clientpid == NULL
+ || remark == NULL) {
BBPreclaim(id);
BBPreclaim(user);
BBPreclaim(login);
BBPreclaim(sessiontimeout);
BBPreclaim(querytimeout);
BBPreclaim(idle);
-
BBPreclaim(opt);
BBPreclaim(wlimit);
BBPreclaim(mlimit);
+ BBPreclaim(language);
+ BBPreclaim(peer);
+ BBPreclaim(hostname);
+ BBPreclaim(application);
+ BBPreclaim(client);
+ BBPreclaim(clientpid);
+ BBPreclaim(remark);
+
throw(SQL, "sql.sessions", SQLSTATE(HY013) MAL_MALLOC_FAIL);
}
@@ -866,6 +890,20 @@ CLTsessions(Client cntxt, MalBlkPtr mb,
goto bailout;
if (BUNappend(mlimit, &c->memorylimit, false) !=
GDK_SUCCEED)
goto bailout;
+ if (BUNappend(language, &str_nil, false) != GDK_SUCCEED)
+ goto bailout;
+ if (BUNappend(peer, &str_nil, false) != GDK_SUCCEED)
+ goto bailout;
+ if (BUNappend(hostname, &str_nil, false) != GDK_SUCCEED)
+ goto bailout;
+ if (BUNappend(application, &str_nil, false) !=
GDK_SUCCEED)
+ goto bailout;
+ if (BUNappend(client, &str_nil, false) != GDK_SUCCEED)
+ goto bailout;
+ if (BUNappend(clientpid, &lng_nil, false) !=
GDK_SUCCEED)
+ goto bailout;
+ if (BUNappend(remark, &str_nil, false) != GDK_SUCCEED)
+ goto bailout;
}
}
MT_lock_unset(&mal_contextLock);
@@ -888,6 +926,21 @@ CLTsessions(Client cntxt, MalBlkPtr mb,
BBPkeepref(wlimit);
*mlimitId = mlimit->batCacheid;
BBPkeepref(mlimit);
+ *languageId = language->batCacheid;
+ BBPkeepref(language);
+ *peerId = peer->batCacheid;
+ BBPkeepref(peer);
+ *hostnameId = hostname->batCacheid;
+ BBPkeepref(hostname);
+ *applicationId = application->batCacheid;
+ BBPkeepref(application);
+ *clientId = client->batCacheid;
+ BBPkeepref(client);
+ *clientpidId = clientpid->batCacheid;
+ BBPkeepref(clientpid);
+ *remarkId = remark->batCacheid;
+ BBPkeepref(remark);
+
return MAL_SUCCEED;
bailout:
@@ -902,6 +955,13 @@ CLTsessions(Client cntxt, MalBlkPtr mb,
BBPunfix(opt->batCacheid);
BBPunfix(wlimit->batCacheid);
BBPunfix(mlimit->batCacheid);
+ BBPunfix(language->batCacheid);
+ BBPunfix(peer->batCacheid);
+ BBPunfix(hostname->batCacheid);
+ BBPunfix(application->batCacheid);
+ BBPunfix(client->batCacheid);
+ BBPunfix(clientpid->batCacheid);
+ BBPunfix(remark->batCacheid);
return msg;
}
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -5330,7 +5330,31 @@ static mel_func sql_init_funcs[] = {
pattern("sql", "argRecord", SQLargRecord, false, "Glue together the calling
sequence", args(1,1, arg("",str))),
pattern("sql", "argRecord", SQLargRecord, false, "Glue together the calling
sequence", args(1,2, arg("",str),varargany("a",0))),
pattern("sql", "sql_variables", sql_variables, false, "return the table with
session variables", args(4,4,
batarg("sname",str),batarg("name",str),batarg("type",str),batarg("value",str))),
- pattern("sql", "sessions", sql_sessions_wrap, false, "SQL export table of
active sessions, their timeouts and idle status", args(9,9,
batarg("id",int),batarg("user",str),batarg("start",timestamp),batarg("idle",timestamp),batarg("optmizer",str),batarg("stimeout",int),batarg("qtimeout",int),batarg("wlimit",int),batarg("mlimit",int))),
+
+
+
+
+ pattern("sql", "sessions", sql_sessions_wrap, false, "SQL export table of
active sessions, their timeouts and idle status",
+ args(16,16,
+ batarg("id",int),batarg("user",str),batarg("start",timestamp),
+ batarg("idle",timestamp),batarg("optmizer",str),batarg("stimeout",int),
+ batarg("qtimeout",int),batarg("wlimit",int),batarg("mlimit",int),
+ batarg("language", str),
+ batarg("peer", str),
+ batarg("hostname", str),
+ batarg("application", str),
+ batarg("client", str),
+ batarg("clientpid", lng),
+ batarg("remark", str),
+ )
+ ),
+
+
+
+
+
+
+
pattern("sql", "password", SQLuser_password, false, "Return password hash of
user", args(1,2, arg("",str),arg("user",str))),
pattern("sql", "decypher", SQLdecypher, false, "Return decyphered password",
args(1,2, arg("",str),arg("hash",str))),
pattern("sql", "dump_cache", dump_cache, false, "dump the content of the
query cache", args(2,2, batarg("query",str),batarg("count",int))),
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
@@ -28,7 +28,14 @@ returns table(
"sessiontimeout" int,
"querytimeout" int,
"workerlimit" int,
- "memorylimit" int
+ "memorylimit" int,
+ "language" string,
+ "peer" string,
+ "hostname" string,
+ "application" string,
+ "client" string,
+ "clientpid" bigint,
+ "remark" string
)
external name sql.sessions;
create view sys.sessions as select * from sys.sessions();
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]