summaryrefslogtreecommitdiffstats
path: root/src/include/catalog/duplicate_oids
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:17:33 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:17:33 +0000
commit5e45211a64149b3c659b90ff2de6fa982a5a93ed (patch)
tree739caf8c461053357daa9f162bef34516c7bf452 /src/include/catalog/duplicate_oids
parentInitial commit. (diff)
downloadpostgresql-15-5e45211a64149b3c659b90ff2de6fa982a5a93ed.tar.xz
postgresql-15-5e45211a64149b3c659b90ff2de6fa982a5a93ed.zip
Adding upstream version 15.5.upstream/15.5
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/include/catalog/duplicate_oids')
-rwxr-xr-xsrc/include/catalog/duplicate_oids49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/include/catalog/duplicate_oids b/src/include/catalog/duplicate_oids
new file mode 100755
index 0000000..e6ee2da
--- /dev/null
+++ b/src/include/catalog/duplicate_oids
@@ -0,0 +1,49 @@
+#!/usr/bin/perl
+#----------------------------------------------------------------------
+#
+# duplicate_oids
+# Identifies any manually-assigned OIDs that are used multiple times
+# in the Postgres catalog data.
+#
+# While duplicate OIDs would only cause a failure if they appear in
+# the same catalog, our project policy is that manually assigned OIDs
+# should be globally unique, to avoid confusion.
+#
+# Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
+# Portions Copyright (c) 1994, Regents of the University of California
+#
+# src/include/catalog/duplicate_oids
+#
+#----------------------------------------------------------------------
+
+use strict;
+use warnings;
+
+# Must run in src/include/catalog
+use FindBin;
+chdir $FindBin::RealBin or die "could not cd to $FindBin::RealBin: $!\n";
+
+use lib "$FindBin::RealBin/../../backend/catalog/";
+use Catalog;
+
+my @input_files = glob("pg_*.h");
+
+my $oids = Catalog::FindAllOidsFromHeaders(@input_files);
+
+my %oidcounts;
+
+foreach my $oid (@{$oids})
+{
+ $oidcounts{$oid}++;
+}
+
+my $found = 0;
+
+foreach my $oid (sort { $a <=> $b } keys %oidcounts)
+{
+ next unless $oidcounts{$oid} > 1;
+ $found = 1;
+ print "$oid\n";
+}
+
+exit $found;