【发布时间】:2021-06-10 04:46:14
【问题描述】:
现代 PostgreSQL 连接协议中是否有任何指示服务器版本的内容?
如果没有,端点是否可以针对打开的连接执行特殊的低级请求,以提取包含版本的服务器详细信息?
我正在寻找node-postgres 的可能扩展,它将在每次新连接时自动提供服务器版本。我想知道这是否可能。
必须在每个新连接上执行SELECT version() 然后解析它对于管理连接的基本驱动程序来说太高级了。它应该在协议级别完成。
【问题讨论】:
-
您实际上不需要解析来自
version()的输出。您可以使用show server_version_num或show server_version获得更“友好”的号码。底层的 Postgres 协议确实提供了服务器版本,并且连接对象可以在没有查询的情况下返回它:postgresql.org/docs/current/… 但我不知道这是否可以从 Node.js 中获得 -
只是建议elsewhere start-up message 可能包含版本。
-
那么另一方面,在建立连接后运行
show server_version,实际上并没有那么大的开销。 -
@a_horse_with_no_name 我们应该不需要执行任何查询,服务器应该会自动提供版本,我相信它会提供,只需要弄清楚到底如何。
-
@a_horse_with_no_name I have found out that it already does :)