From b9db157177bbdeeeb6d35c3623ca9355141419d7 Mon Sep 17 00:00:00 2001 From: Jim Jones Date: Wed, 1 Mar 2023 00:07:55 +0100 Subject: [PATCH v2] Time option added to psql prompt This adds a useful time option to the prompt: %T. Which does not require a wasteful backquoted shell command which is also not compatible between operating systems. The format is simply HH24:MI:SS no other options available by design! Author: Kirk Wolak Reviewed-By: Andrey Borodin Reviewed-By: Nikolay Samokhvalov Thread: https://postgr.es/m/CACLU5mSRwHr_8z%3DenMj-nXF1tmC7%2BJn5heZQNiKuLyxYUtL2fg%40mail.gmail.com --- doc/src/sgml/ref/psql-ref.sgml | 9 +++++++++ src/bin/psql/prompt.c | 10 +++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index dc6528dc11..04ab9eeb8c 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -4575,6 +4575,15 @@ testdb=> INSERT INTO my_table VALUES (:'content'); + + %T + + + The current time on the client in HH24:MI:SS format. + + + + %x diff --git a/src/bin/psql/prompt.c b/src/bin/psql/prompt.c index 969cd9908e..0c0c725df5 100644 --- a/src/bin/psql/prompt.c +++ b/src/bin/psql/prompt.c @@ -41,6 +41,7 @@ * or a ! if session is not connected to a database; * in prompt2 -, *, ', or "; * in prompt3 nothing + * %T - time in HH24:MI:SS format * %x - transaction status: empty, *, !, ? (unknown or no connection) * %l - The line number inside the current statement, starting from 1. * %? - the error code of the last query (not yet implemented) @@ -223,7 +224,14 @@ get_prompt(promptStatus_t status, ConditionalStack cstack) break; } break; - + /* output HH24:MI:SS */ + case 'T': + { + time_t current_time = time(NULL); + struct tm *tm_info = localtime(¤t_time); + sprintf(buf, "%02d:%02d:%02d", tm_info->tm_hour, tm_info->tm_min, tm_info->tm_sec); + } + break; case 'x': if (!pset.db) buf[0] = '?'; -- 2.25.1