From fa26eba221a9e837493df47d0255ce615129e9a8 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Tue, 27 Apr 2021 08:21:15 -0400 Subject: [PATCH] Improve logic in PostgresVersion.pm Handle the situation where perl swaps the order of operands of the comparison operator. See `perldoc overload` for details: The third argument is set to TRUE if (and only if) the two operands have been swapped. Perl may do this to ensure that the first argument ($self) is an object implementing the overloaded operation, in line with general object calling conventions. --- src/test/perl/PostgresVersion.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/perl/PostgresVersion.pm b/src/test/perl/PostgresVersion.pm index 7ce9e62b798..55984ec7e81 100644 --- a/src/test/perl/PostgresVersion.pm +++ b/src/test/perl/PostgresVersion.pm @@ -110,10 +110,12 @@ sub new # sub _version_cmp { - my ($a, $b) = @_; + my ($a, $b, $swapped) = @_; $b = __PACKAGE__->new($b) unless blessed($b); + ($a, $b) = ($b, $a) if $swapped; + my ($an, $bn) = ($a->{num}, $b->{num}); for (my $idx = 0;; $idx++)