mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Fix version comparison in Version.pm
Version strings with unequal numbers of parts were being compared incorrectly. We cure this by treating a missing part in the shorter version as 0. per complaint from Jehan-Guillaume de Rorthais, but the fix is mine, not his. Discussion: https://postgr.es/m/20220628225325.53d97b8d@karst Backpatch to release 14 where this code was introduced.
This commit is contained in:
parent
83eccb8562
commit
97ee956416
@ -123,9 +123,12 @@ sub _version_cmp
|
||||
|
||||
for (my $idx = 0;; $idx++)
|
||||
{
|
||||
return 0 unless (defined $an->[$idx] && defined $bn->[$idx]);
|
||||
return $an->[$idx] <=> $bn->[$idx]
|
||||
if ($an->[$idx] <=> $bn->[$idx]);
|
||||
return 0
|
||||
if ($idx >= @$an && $idx >= @$bn);
|
||||
# treat a missing number as 0
|
||||
my ($anum, $bnum) = ($an->[$idx] || 0, $bn->[$idx] || 0);
|
||||
return $anum <=> $bnum
|
||||
if ($anum <=> $bnum);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user