From ad71a27ddb9837d5b59159d0c99eaee6c7cfd956 Mon Sep 17 00:00:00 2001
From: Peter Geoghegan <pg@bowt.ie>
Date: Fri, 2 Aug 2019 10:25:02 -0700
Subject: [PATCH v4] unused_oids suggestion

---
 src/include/catalog/unused_oids | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/include/catalog/unused_oids b/src/include/catalog/unused_oids
index e3fcd913e8..e613bbc2d1 100755
--- a/src/include/catalog/unused_oids
+++ b/src/include/catalog/unused_oids
@@ -38,7 +38,8 @@ my $FirstGenbkiObjectId =
 push @{$oids}, $FirstGenbkiObjectId;
 
 my $prev_oid = 0;
-foreach my $oid (sort { $a <=> $b } @{$oids})
+my @sortedoids = sort {$a <=> $b} @{$oids};
+foreach my $oid (@sortedoids)
 {
 	if ($oid > $prev_oid + 1)
 	{
@@ -53,3 +54,23 @@ foreach my $oid (sort { $a <=> $b } @{$oids})
 	}
 	$prev_oid = $oid;
 }
+
+my $suggestion;
+do
+{
+	$suggestion = int(8000 + rand(2000));
+} while (grep(/^$suggestion$/, @{$oids}));
+
+my $navailable = 0;
+foreach my $oid (@sortedoids)
+{
+	if ($oid > $suggestion)
+	{
+		$navailable = $oid - $suggestion;
+		last;
+	}
+}
+
+printf "Patches should use a more-or-less consecutive range of OIDs.\n";
+printf "Best practice is to start with a random choice in the range 8000-9999.\n";
+printf "Suggested random unused OID: $suggestion ($navailable consecutive OID(s) available starting here)\n";
-- 
2.17.1

