Make PostgresNode version aware

Andrew Dunstan <andrew@dunslane.net>

Commit: 4c4eaf3d19201c5e2d9efebc590903dfaba0d3e5
Author: Andrew Dunstan <andrew@dunslane.net>
Date: 2021-04-22T14:56:28Z
Releases: 14.0
Make PostgresNode version aware

A new PostgresVersion object type is created and this is used in
PostgresNode using the output of `pg_config --version` and the result
stored in the PostgresNode object.  This object can be compared to other
PostgresVersion objects, or to a number or string.

PostgresNode is currently believed to be compatible with versions down
to release 12, so PostgresNode will issue a warning if used with a
version prior to that.

No attempt has been made to deal with incompatibilities in older
versions - that remains work to be undertaken in a subsequent
development cycle.

Based on code from Mark Dilger and Jehan-Guillaume de Rorthais.

Discussion: https://postgr.es/m/a80421c0-3d7e-def1-bcfe-24777f15e344@dunslane.net

Files

PathChange+/−
src/test/perl/PostgresNode.pm modified +56 −0
src/test/perl/PostgresVersion.pm added +137 −0

Discussion