Subject: Find out the version of the server

From: Igor Korot <[email-masked]>
Date: Thu, 28 Nov 2024 19:31:10 -0600

Hi, ALL,

In April of 2017 I got the source code of the Postgresql, build the libpq
and then deleted everything else.

I was using MSVC 3010 at the time.

Now I moved to MSVC 2017 but unfortunately I can't reuse the library built,
since MSVC changed one of its headers.

Is it possible to find what version of the server was used for the build?

Im looking at the Windows Explorer timestamp, which gives me 4 September
2017.

Thank you.

P.s. please forgive for any typos as it's been written from the Android
phone.

---

From: Adrian Klaver <[email-masked]>
Date: Fri, 29 Nov 2024 08:12:41 -0800

On 11/28/24 17:31, Igor Korot wrote:
> Hi, ALL,
> 
> In April of 2017 I got the source code of the Postgresql, build the 
> libpq and then deleted everything else.
> 
> Now I moved to MSVC 2017 but unfortunately I can't reuse the library 
> built, since MSVC changed one of its headers.

Reuse it for what?

> Im looking at the Windows Explorer timestamp, which gives me 4 September 

At any point in time there are 5 supported versions of Postgres in play. 
Given that you could have also built against one of the unsupported 
versions a file timestamp will not help much. Though if you want to 
guess, version 10 was released October 5, 2017. It is plausible you 
built against a RC version in advance of the production release.

libpq is backwards compatible, so why not try building against a current 
version of Postgres and see whats happens?

-- 
Adrian Klaver
[email-masked]

---

From: Adrian Klaver <[email-masked]>
Date: Fri, 29 Nov 2024 11:24:00 -0800

Reply to list also

Ccing list

On 11/29/24 11:15 AM, Igor Korot wrote:
> Hi, Adrian,
> 
> On Fri, Nov 29, 2024 at 10:12 AM Adrian Klaver
> <[email-masked]> wrote:
>>

>> Reuse it for what?
> 
> For building..
> I got a linking errors of not finding sscanf() and sprntf()
> when building my code.
> 
> Googling revealed that MSVC made those inline after
> MSVC 2010.
> 
>>
>>>
> Understood.
> I also tried to open the explorer and go to Properties of the DLL built
> 
> That dialog shows for src/interfaces/libpq/Release/ for the Detail tab
> 
> Type:            Application Extension
> File Version: 9.6.2.17037
> Product name: PostgreSQL
> Product version: 9.6.2
> 
> Can this info be trusted?
>>
> Are you saying that the current version can connect even to 9.6.1
> server? (I have a really old Mac with the 9.6.1 version installed).

Yes.

The CLI client psql is based on libpq and from here:

https://www.postgresql.org/docs/current/app-psql.html

"If you want to use psql to connect to several servers of different 
major versions, it is recommended that you use the newest version of 
psql. Alternatively, you can keep around a copy of psql from each major 
version and be sure to use the version that matches the respective 
server. But in practice, this additional complication should not be 
necessary."

If you have a new version of psql available connect to the 9.6.1 
instance to verify.

---

From: Igor Korot <[email-masked]>
Date: Fri, 29 Nov 2024 13:57:21 -0600

Hi, Adrian,

Thank you.

Ill try to get the new version and build it.

---

From: Tom Lane <[email-masked]>
Date: Fri, 29 Nov 2024 15:03:44 -0500

> Yes.

Current libpq will probably work with servers back to around 7.0
(whenever we introduced the version-3 wire protocol).  We don't
routinely test it against anything older than 9.2, but I tried
current psql against 8.2 (the oldest functional server I have
on this machine) and it basically worked.

			regards, tom lane

---

From: Igor Korot <[email-masked]>
Date: Fri, 29 Nov 2024 14:46:36 -0600

Thx.