mirror of
https://github.com/postgres/postgres.git
synced 2025-06-26 12:21:12 +03:00
Fix duplicate_oids and unused_oids so user needn't cd to catalog dir.
Previously, you had to cd into src/include/catalog before running either
of these scripts. That's a bit tedious, so let's make the scripts do it
for you.
In passing, improve the initial comments in both scripts. Also remove
unused_oids' code to complain about duplicate oids. That was added in
yesterday's commit 5602265f7
, but on second thought we shouldn't be
randomly redefining the script's behavior that way.
John Naylor and Tom Lane
Discussion: https://postgr.es/m/37D774E4-FE1F-437E-B3D2-593F314B7505@postgrespro.ru
This commit is contained in:
@ -1,11 +1,31 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
#----------------------------------------------------------------------
|
||||||
use lib '../../backend/catalog/';
|
#
|
||||||
use Catalog;
|
# 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-2018, PostgreSQL Global Development Group
|
||||||
|
# Portions Copyright (c) 1994, Regents of the University of California
|
||||||
|
#
|
||||||
|
# src/include/catalog/duplicate_oids
|
||||||
|
#
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
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"), qw(indexing.h toasting.h));
|
my @input_files = (glob("pg_*.h"), qw(indexing.h toasting.h));
|
||||||
|
|
||||||
my $oids = Catalog::FindAllOidsFromHeaders(@input_files);
|
my $oids = Catalog::FindAllOidsFromHeaders(@input_files);
|
||||||
|
@ -1,26 +1,33 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
#----------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# unused_oids
|
# unused_oids
|
||||||
|
# Finds blocks of manually-assignable OIDs that have not already been
|
||||||
|
# claimed by previous hackers. The main use is for finding available
|
||||||
|
# OIDs for new internal functions. The numbers printed are inclusive
|
||||||
|
# ranges of unused OIDs.
|
||||||
|
#
|
||||||
|
# Before using a large empty block, make sure you aren't about
|
||||||
|
# to take over what was intended as expansion space for something
|
||||||
|
# else.
|
||||||
|
#
|
||||||
|
# Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
|
||||||
|
# Portions Copyright (c) 1994, Regents of the University of California
|
||||||
#
|
#
|
||||||
# src/include/catalog/unused_oids
|
# src/include/catalog/unused_oids
|
||||||
#
|
#
|
||||||
# finds blocks of manually-assignable oids that have not already been
|
#----------------------------------------------------------------------
|
||||||
# claimed by post_hackers. primarily useful for finding available
|
|
||||||
# oids for new internal functions. the numbers printed are inclusive
|
|
||||||
# ranges of unused oids.
|
|
||||||
#
|
|
||||||
# before using a large empty block, make sure you aren't about
|
|
||||||
# to take over what was intended as expansion space for something
|
|
||||||
# else.
|
|
||||||
#
|
|
||||||
# run this script in src/include/catalog.
|
|
||||||
#
|
|
||||||
use lib '../../backend/catalog/';
|
|
||||||
use Catalog;
|
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
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"), qw(indexing.h toasting.h));
|
my @input_files = (glob("pg_*.h"), qw(indexing.h toasting.h));
|
||||||
|
|
||||||
my $oids = Catalog::FindAllOidsFromHeaders(@input_files);
|
my $oids = Catalog::FindAllOidsFromHeaders(@input_files);
|
||||||
@ -45,10 +52,5 @@ foreach my $oid (sort { $a <=> $b } @{$oids})
|
|||||||
printf "%d\n", $prev_oid + 1;
|
printf "%d\n", $prev_oid + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ($oid == $prev_oid)
|
|
||||||
{
|
|
||||||
print "Duplicate oid detected: $oid\n";
|
|
||||||
exit 1;
|
|
||||||
}
|
|
||||||
$prev_oid = $oid;
|
$prev_oid = $oid;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user