Re: multi-install PostgresNode fails with older postgres versions
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>,
Mark Dilger <mark.dilger@enterprisedb.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-03-31T00:44:26Z
Lists: pgsql-hackers
On 3/30/21 6:22 PM, Alvaro Herrera wrote: > On 2021-Mar-30, Mark Dilger wrote: > >> Once you have a node running, you can query the version using >> safe_psql, but that clearly doesn't work soon enough, since we need >> the information prior to running initdb. > I was thinking something like examining some file in the install dir -- > say, include/server/pg_config.h, but that seems messier than just > running pg_config. > >> One of the things I noticed while playing with this new toy (thanks, >> Andrew!) (I'm really happy someone is playing with it so soon.) >> is that if you pass a completely insane install_path, you >> don't get any errors. In fact, you get executables and libraries from >> whatever PATH="/no/such/postgres:$PATH" gets you, probably the >> executables and libraries of your latest development branch. By >> forcing get_new_node to call the pg_config of the path you pass in, >> you'd fix that problem. I didn't do that, mind you, but you could. I >> just executed pg_config, which means you'll still get the wrong >> version owing to the PATH confusion. > Hmm, I think it should complain if you give it a path that doesn't > actually contain a valid installation. > Yeah, it should be validated. All things considered I think just calling 'pg_config --version' is probably the simplest validation, and likely to be sufficient. I'll try to come up with something tomorrow. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
Commits
-
Teach PostgresVersion all the ways to mark non-release code
- aa271209f6d9 14.0 landed
-
Make PostgresNode version aware
- 4c4eaf3d1920 14.0 landed
-
Avoid unfortunate IPC::Run path caching in PostgresNode
- 95c3a1956ec9 14.0 landed
-
Change pg_ctl to detect server-ready by watching status in postmaster.pid.
- f13ea95f9e47 10.0 cited