From 4aed1496198d4d07109e7f38dc50492e2c7afef4 Mon Sep 17 00:00:00 2001
From: Andrew Dunstan <andrew@dunslane.net>
Date: Sun, 18 Jul 2021 11:42:10 -0400
Subject: [PATCH 5/6] Add PostgresVersion.pm method to emit the major version
 string

For versions before 10, this will produce dotted notation unless a
separator argument is given, in which case it is used.
---
 src/test/perl/PostgresVersion.pm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/src/test/perl/PostgresVersion.pm b/src/test/perl/PostgresVersion.pm
index 4e764c36a5..5ff701ce11 100644
--- a/src/test/perl/PostgresVersion.pm
+++ b/src/test/perl/PostgresVersion.pm
@@ -32,6 +32,9 @@ PostgresVersion - class representing PostgreSQL version numbers
   # interpolate in a string
   my $stringyval = "version: $version";
 
+  # get the major version
+  my $maj = $version->major;
+
 =head1 DESCRIPTION
 
 PostgresVersion encapsulates Postgres version numbers, providing parsing
@@ -133,4 +136,29 @@ sub _stringify
 	return $self->{str};
 }
 
+=pod
+
+=over
+
+=item major([separator => 'char'])
+
+Returns the major version. For versions before 10 the parts are separated by
+a dot unless the separator argument is given.
+
+=back
+
+=cut
+
+sub major
+{
+    my ($self, %params) = @_;
+    my $result = $self->{num}->[0];
+    if ($result + 0 < 10)
+    {
+        my $sep = $params{separator} || '.';
+        $result .= "$sep$self->{num}->[1]";
+    }
+    return $result;
+}
+
 1;
-- 
2.25.4

