Changeset: 6a2afd9546f4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6a2afd9546f4
Modified Files:
        sql/backends/monet5/sql_scenario.c
        sql/storage/bat/res_table.c
        sql/storage/sql_storage.h
Branch: Mar2025
Log Message:

Add client prepared stmts count and open resultsets count to output of USR1


diffs (62 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -92,10 +92,10 @@ static str master_password = NULL;
 static void
 CLIENTprintinfo(void)
 {
-       int nrun = 0, nfinish = 0, nblock = 0;
+       int nrun = 0, nfinish = 0, nblock = 0, i = 0;
        char mmbuf[64];
        char tmbuf[64];
-       char trbuf[64];
+       char trbuf[128];
        char chbuf[64];
        char cabuf[64];
        char clbuf[64];
@@ -125,8 +125,14 @@ CLIENTprintinfo(void)
                                strftime(tmbuf, sizeof(tmbuf), ", busy since %F 
%H:%M:%S%z", &tm);
                        } else
                                tmbuf[0] = 0;
-                       if (c->sqlcontext && ((backend *) c->sqlcontext)->mvc 
&& ((backend *) c->sqlcontext)->mvc->session && ((backend *) 
c->sqlcontext)->mvc->session->tr && ((backend *) 
c->sqlcontext)->mvc->session->tr->active)
-                               snprintf(trbuf, sizeof(trbuf), ", active 
transaction, ts: "ULLFMT, ((backend *) c->sqlcontext)->mvc->session->tr->ts);
+                       if (c->sqlcontext && ((backend *) c->sqlcontext)->mvc &&
+                               ((backend *) c->sqlcontext)->mvc->session &&
+                               ((backend *) c->sqlcontext)->mvc->session->tr) {
+                               if (((backend *) 
c->sqlcontext)->mvc->session->tr->active)
+                                       i = snprintf(trbuf, sizeof(trbuf), ", 
active transaction, ts: "ULLFMT, ((backend *) 
c->sqlcontext)->mvc->session->tr->ts);
+                               i += snprintf(trbuf + i, sizeof(trbuf) - i, ", 
prepared queries: %d", qc_size(((backend *) c->sqlcontext)->mvc->qc));
+                               snprintf(trbuf + i, sizeof(trbuf) - i, ", open 
resultsets: %d", res_tables_count(((backend *) c->sqlcontext)->results));
+                       }
                        else
                                trbuf[0] = 0;
                        if (c->client_hostname)
diff --git a/sql/storage/bat/res_table.c b/sql/storage/bat/res_table.c
--- a/sql/storage/bat/res_table.c
+++ b/sql/storage/bat/res_table.c
@@ -174,3 +174,14 @@ res_tables_find(res_table *results, int 
        }
        return NULL;
 }
+
+int
+res_tables_count(res_table *results)
+{
+       int i = 0;
+       while (results) {
+               i++;
+               results = results->next;
+       }
+       return i;
+}
diff --git a/sql/storage/sql_storage.h b/sql/storage/sql_storage.h
--- a/sql/storage/sql_storage.h
+++ b/sql/storage/sql_storage.h
@@ -330,6 +330,7 @@ extern void res_table_destroy(res_table 
 extern res_table *res_tables_remove(res_table *results, res_table *t);
 sql_export void res_tables_destroy(res_table *results);
 extern res_table *res_tables_find(res_table *results, int res_id);
+extern int res_tables_count(res_table *results);
 
 extern struct sqlstore *store_init(int debug, store_type store, int readonly, 
int singleuser);
 extern void store_exit(struct sqlstore *store);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to