client_message_v2.patch
text/x-patch
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
Series: patch v2
| File | + | − |
|---|---|---|
| doc/src/sgml/config.sgml | 13 | 0 |
| doc/src/sgml/libpq.sgml | 3 | 1 |
| src/backend/utils/misc/guc.c | 12 | 0 |
| src/backend/utils/misc/postgresql.conf.sample | 1 | 0 |
| src/bin/psql/command.c | 19 | 0 |
| src/bin/psql/command.h | 2 | 0 |
| src/bin/psql/startup.c | 3 | 0 |
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index e55b503..04bc671 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -5324,6 +5324,19 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
</listitem>
</varlistentry>
+ <varlistentry id="guc-client-message" xreflabel="client_message">
+ <term><varname>client_message</varname> (<type>string</type>)</term>
+ <indexterm>
+ <primary><varname>client_message</> configuration parameter</primary>
+ </indexterm>
+ <listitem>
+ <para>
+ The <varname>client_message</varname> can be any string that will be
+ displayed to the user in the banner of psql.
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</sect2>
</sect1>
diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index 72c9384..7dcb0bb 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -1487,6 +1487,7 @@ const char *PQparameterStatus(const PGconn *conn, const char *paramName);
<varname>server_encoding</>,
<varname>client_encoding</>,
<varname>application_name</>,
+ <varname>client_message</>,
<varname>is_superuser</>,
<varname>session_authorization</>,
<varname>DateStyle</>,
@@ -1499,7 +1500,8 @@ const char *PQparameterStatus(const PGconn *conn, const char *paramName);
<varname>standard_conforming_strings</> was not reported by releases
before 8.1;
<varname>IntervalStyle</> was not reported by releases before 8.4;
- <varname>application_name</> was not reported by releases before 9.0.)
+ <varname>application_name</> was not reported by releases before 9.0;
+ <varname>client_message</> was not reported by releases before 9.2.)
Note that
<varname>server_version</>,
<varname>server_encoding</> and
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 9fc96b2..39177cc 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -455,6 +455,7 @@ static char *log_destination_string;
static char *syslog_ident_str;
static bool phony_autocommit;
static bool session_auth_is_superuser;
+static char *client_message_string;
static double phony_random_seed;
static char *client_encoding_string;
static char *datestyle_string;
@@ -3018,6 +3019,17 @@ static struct config_string ConfigureNamesString[] =
check_application_name, assign_application_name, NULL
},
+ {
+ {"client_message", PGC_BACKEND, CLIENT_CONN_OTHER,
+ gettext_noop("Sets a message to be displayed to the user when connecting via psql."),
+ NULL,
+ GUC_REPORT | GUC_NO_SHOW_ALL
+ },
+ &client_message_string,
+ "",
+ NULL, NULL, NULL
+ },
+
/* End-of-list marker */
{
{NULL, 0, 0, NULL, NULL}, NULL, NULL, NULL, NULL, NULL
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 315db46..8eb5af5 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -515,6 +515,7 @@
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''
+#client_message = ''
#------------------------------------------------------------------------------
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 6c3f0aa..cd90a64 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -1653,6 +1653,8 @@ do_connect(char *dbname, char *user, char *host, char *port)
else
printf(_("You are now connected to database \"%s\" as user \"%s\".\n"),
PQdb(pset.db), PQuser(pset.db));
+
+ printClientMessage();
}
if (o_conn)
@@ -1707,6 +1709,23 @@ connection_warnings(bool in_startup)
/*
+ * printClientMessage
+ *
+ * Prints any message stored in the client_message GUC
+ */
+void
+printClientMessage(void)
+{
+ const char *message;
+
+ message = PQparameterStatus(pset.db, "client_message");
+
+ if (message)
+ printf(_("%s\n"), message);
+}
+
+
+/*
* printSSLInfo
*
* Prints information about the current SSL connection, if SSL is in use
diff --git a/src/bin/psql/command.h b/src/bin/psql/command.h
index f0bcea0..0e37386 100644
--- a/src/bin/psql/command.h
+++ b/src/bin/psql/command.h
@@ -36,6 +36,8 @@ extern bool do_pset(const char *param,
extern void connection_warnings(bool in_startup);
+extern void printClientMessage(void);
+
extern void SyncVariables(void);
extern void UnsyncVariables(void);
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 8b1864c..b04daa1 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -302,7 +302,10 @@ main(int argc, char *argv[])
connection_warnings(true);
if (!pset.quiet && !pset.notty)
+ {
printf(_("Type \"help\" for help.\n\n"));
+ printClientMessage();
+ }
if (!pset.notty)
initializeInput(options.no_readline ? 0 : 1);
if (options.action_string) /* -f - was used */