psql: Report full protocol version in \conninfo output.
authorFujii Masao <fujii@postgresql.org>
Sat, 14 Jun 2025 01:37:12 +0000 (10:37 +0900)
committerFujii Masao <fujii@postgresql.org>
Sat, 14 Jun 2025 01:37:12 +0000 (10:37 +0900)
Commit bba2fbc6238 modified \conninfo to display the protocol version
used by the current connection, but it only showed the major version (e.g., 3).

This commit updates \conninfo to display the full protocol version (e.g., 3.2).
Since support for new version 3.2 was added in v18, and the server supports
both 3.0 and 3.2, showing the complete version helps users understand
exactly which protocol version the current session is using.

Although this is a minor behavior change, it's considered a fix for
an oversight in the original patch and is included in v18.

Author: Fujii Masao <masao.fujii@gmail.com>
Reviewed-by: David G. Johnston <david.g.johnston@gmail.com>
Discussion: https://postgr.es/m/685961b8-b6ce-40bb-b2d5-c2ff135d3388@oss.nttdata.com

src/bin/psql/command.c

index 81a5ba844ba0f901ef3863235fb94e84dc97852a..1f7635d0c235c675b5e0a90fcf3cb3aa19bd1e51 100644 (file)
@@ -778,6 +778,7 @@ exec_command_conninfo(PsqlScanState scan_state, bool active_branch)
    int         ssl_in_use,
                password_used,
                gssapi_used;
+   int         version_num;
    char       *paramval;
 
    if (!active_branch)
@@ -793,7 +794,9 @@ exec_command_conninfo(PsqlScanState scan_state, bool active_branch)
    /* Get values for the parameters */
    host = PQhost(pset.db);
    hostaddr = PQhostaddr(pset.db);
-   protocol_version = psprintf("%d", PQprotocolVersion(pset.db));
+   version_num = PQfullProtocolVersion(pset.db);
+   protocol_version = psprintf("%d.%d", version_num / 10000,
+                               version_num % 10000);
    ssl_in_use = PQsslInUse(pset.db);
    password_used = PQconnectionUsedPassword(pset.db);
    gssapi_used = PQconnectionUsedGSSAPI(pset.db);