1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-19 13:42:17 +03:00

pgindent run for release 9.3

This is the first run of the Perl-based pgindent script.  Also update
pgindent instructions.
This commit is contained in:
Bruce Momjian
2013-05-29 16:58:43 -04:00
parent 07ab261ef3
commit 9af4159fce
367 changed files with 4222 additions and 3829 deletions

View File

@@ -26,6 +26,7 @@ find({ wanted => \&wanted, no_chdir => 1 }, '.');
sub wanted
{
# prevent corruption of git indexes by ignoring any .git/
if (basename($_) eq '.git')
{
@@ -33,7 +34,7 @@ sub wanted
return;
}
return if ! -f $File::Find::name || -l $File::Find::name;
return if !-f $File::Find::name || -l $File::Find::name;
# skip file names with binary extensions
# How are these updated? bjm 2012-01-02

View File

@@ -38,27 +38,28 @@ require IPC::Open2;
# (We could get this from "git branches", but not worth the trouble.)
# NB: master must be first!
my @BRANCHES = qw(master
REL9_2_STABLE REL9_1_STABLE REL9_0_STABLE
REL8_4_STABLE REL8_3_STABLE REL8_2_STABLE REL8_1_STABLE REL8_0_STABLE
REL7_4_STABLE REL7_3_STABLE REL7_2_STABLE REL7_1_STABLE REL7_0_PATCHES
REL6_5_PATCHES REL6_4);
REL9_2_STABLE REL9_1_STABLE REL9_0_STABLE
REL8_4_STABLE REL8_3_STABLE REL8_2_STABLE REL8_1_STABLE REL8_0_STABLE
REL7_4_STABLE REL7_3_STABLE REL7_2_STABLE REL7_1_STABLE REL7_0_PATCHES
REL6_5_PATCHES REL6_4);
# Might want to make this parameter user-settable.
my $timestamp_slop = 600;
my $details_after = 0;
my $post_date = 0;
my $master_only = 0;
my $oldest_first = 0;
my $post_date = 0;
my $master_only = 0;
my $oldest_first = 0;
my $since;
my @output_buffer;
my $output_line = '';
Getopt::Long::GetOptions('details-after' => \$details_after,
'master-only' => \$master_only,
'post-date' => \$post_date,
'oldest-first' => \$oldest_first,
'since=s' => \$since) || usage();
Getopt::Long::GetOptions(
'details-after' => \$details_after,
'master-only' => \$master_only,
'post-date' => \$post_date,
'oldest-first' => \$oldest_first,
'since=s' => \$since) || usage();
usage() if @ARGV;
my @git = qw(git log --format=fuller --date=iso);
@@ -70,15 +71,18 @@ my %rel_tags;
{
my $cmd = "git for-each-ref refs/tags";
my $pid = IPC::Open2::open2(my $git_out, my $git_in, $cmd)
|| die "can't run $cmd: $!";
while (my $line = <$git_out>) {
if ($line =~ m|^([a-f0-9]+)\s+commit\s+refs/tags/(\S+)|) {
my $commit = $1;
my $tag = $2;
if ($tag =~ /^REL\d+_\d+$/ ||
$tag =~ /^REL\d+_\d+_\d+$/) {
$rel_tags{$commit} = $tag;
}
|| die "can't run $cmd: $!";
while (my $line = <$git_out>)
{
if ($line =~ m|^([a-f0-9]+)\s+commit\s+refs/tags/(\S+)|)
{
my $commit = $1;
my $tag = $2;
if ( $tag =~ /^REL\d+_\d+$/
|| $tag =~ /^REL\d+_\d+_\d+$/)
{
$rel_tags{$commit} = $tag;
}
}
}
waitpid($pid, 0);
@@ -89,48 +93,60 @@ my %rel_tags;
# Collect the commit data
my %all_commits;
my %all_commits_by_branch;
# This remembers where each branch sprouted from master. Note the values
# will be wrong if --since terminates the log listing before the branch
# sprouts; but in that case it doesn't matter since we also won't reach
# the part of master where it would matter.
my %sprout_tags;
for my $branch (@BRANCHES) {
for my $branch (@BRANCHES)
{
my @cmd = @git;
if ($branch eq "master") {
push @cmd, "origin/$branch";
} else {
push @cmd, "--parents";
push @cmd, "master..origin/$branch";
if ($branch eq "master")
{
push @cmd, "origin/$branch";
}
else
{
push @cmd, "--parents";
push @cmd, "master..origin/$branch";
}
my $pid = IPC::Open2::open2(my $git_out, my $git_in, @cmd)
|| die "can't run @cmd: $!";
|| die "can't run @cmd: $!";
my $last_tag = undef;
my $last_parent;
my %commit;
while (my $line = <$git_out>) {
if ($line =~ /^commit\s+(\S+)/) {
while (my $line = <$git_out>)
{
if ($line =~ /^commit\s+(\S+)/)
{
push_commit(\%commit) if %commit;
$last_tag = $rel_tags{$1} if defined $rel_tags{$1};
%commit = (
'branch' => $branch,
'commit' => $1,
'branch' => $branch,
'commit' => $1,
'last_tag' => $last_tag,
'message' => '',
);
if ($line =~ /^commit\s+\S+\s+(\S+)/) {
'message' => '',);
if ($line =~ /^commit\s+\S+\s+(\S+)/)
{
$last_parent = $1;
} else {
}
else
{
$last_parent = undef;
}
}
elsif ($line =~ /^Author:\s+(.*)/) {
elsif ($line =~ /^Author:\s+(.*)/)
{
$commit{'author'} = $1;
}
elsif ($line =~ /^CommitDate:\s+(.*)/) {
elsif ($line =~ /^CommitDate:\s+(.*)/)
{
$commit{'date'} = $1;
}
elsif ($line =~ /^\s\s/) {
elsif ($line =~ /^\s\s/)
{
$commit{'message'} .= $line;
}
}
@@ -148,57 +164,70 @@ for my $branch (@BRANCHES) {
{
my $last_tag = undef;
my %sprouted_branches;
for my $cc (@{$all_commits_by_branch{'master'}}) {
my $commit = $cc->{'commit'};
my $c = $cc->{'commits'}->[0];
$last_tag = $rel_tags{$commit} if defined $rel_tags{$commit};
if (defined $sprout_tags{$commit}) {
$last_tag = $sprout_tags{$commit};
# normalize branch names for making sprout tags
$last_tag =~ s/^(REL\d+_\d+).*/$1_BR/;
}
$c->{'last_tag'} = $last_tag;
if ($post_date) {
if (defined $sprout_tags{$commit}) {
$sprouted_branches{$sprout_tags{$commit}} = 1;
for my $cc (@{ $all_commits_by_branch{'master'} })
{
my $commit = $cc->{'commit'};
my $c = $cc->{'commits'}->[0];
$last_tag = $rel_tags{$commit} if defined $rel_tags{$commit};
if (defined $sprout_tags{$commit})
{
$last_tag = $sprout_tags{$commit};
# normalize branch names for making sprout tags
$last_tag =~ s/^(REL\d+_\d+).*/$1_BR/;
}
# insert new commits between master and any other commits
my @new_commits = ( shift @{$cc->{'commits'}} );
for my $branch (reverse sort keys %sprouted_branches) {
my $ccopy = {%{$c}};
$ccopy->{'branch'} = $branch;
push @new_commits, $ccopy;
$c->{'last_tag'} = $last_tag;
if ($post_date)
{
if (defined $sprout_tags{$commit})
{
$sprouted_branches{ $sprout_tags{$commit} } = 1;
}
# insert new commits between master and any other commits
my @new_commits = (shift @{ $cc->{'commits'} });
for my $branch (reverse sort keys %sprouted_branches)
{
my $ccopy = { %{$c} };
$ccopy->{'branch'} = $branch;
push @new_commits, $ccopy;
}
$cc->{'commits'} = [ @new_commits, @{ $cc->{'commits'} } ];
}
$cc->{'commits'} = [ @new_commits, @{$cc->{'commits'}} ];
}
}
}
my %position;
for my $branch (@BRANCHES) {
for my $branch (@BRANCHES)
{
$position{$branch} = 0;
}
while (1) {
while (1)
{
my $best_branch;
my $best_timestamp;
for my $branch (@BRANCHES) {
my $leader = $all_commits_by_branch{$branch}->[$position{$branch}];
for my $branch (@BRANCHES)
{
my $leader = $all_commits_by_branch{$branch}->[ $position{$branch} ];
next if !defined $leader;
if (!defined $best_branch ||
$leader->{'timestamp'} > $best_timestamp) {
$best_branch = $branch;
if (!defined $best_branch
|| $leader->{'timestamp'} > $best_timestamp)
{
$best_branch = $branch;
$best_timestamp = $leader->{'timestamp'};
}
}
last if !defined $best_branch;
my $winner =
$all_commits_by_branch{$best_branch}->[$position{$best_branch}];
$all_commits_by_branch{$best_branch}->[ $position{$best_branch} ];
# check for master-only
if (! $master_only || ($winner->{'commits'}[0]->{'branch'} eq 'master' &&
@{$winner->{'commits'}} == 1)) {
output_details($winner) if (! $details_after);
if (!$master_only
|| ($winner->{'commits'}[0]->{'branch'} eq 'master'
&& @{ $winner->{'commits'} } == 1))
{
output_details($winner) if (!$details_after);
output_str("%s", $winner->{'message'} . "\n");
output_details($winner) if ($details_after);
unshift(@output_buffer, $output_line) if ($oldest_first);
@@ -206,9 +235,11 @@ while (1) {
}
$winner->{'done'} = 1;
for my $branch (@BRANCHES) {
my $leader = $all_commits_by_branch{$branch}->[$position{$branch}];
if (defined $leader && $leader->{'done'}) {
for my $branch (@BRANCHES)
{
my $leader = $all_commits_by_branch{$branch}->[ $position{$branch} ];
if (defined $leader && $leader->{'done'})
{
++$position{$branch};
redo;
}
@@ -217,89 +248,105 @@ while (1) {
print @output_buffer if ($oldest_first);
sub push_commit {
sub push_commit
{
my ($c) = @_;
my $ht = hash_commit($c);
my $ts = parse_datetime($c->{'date'});
my $ht = hash_commit($c);
my $ts = parse_datetime($c->{'date'});
my $cc;
# Note that this code will never merge two commits on the same branch,
# even if they have the same hash (author/message) and nearby
# timestamps. This means that there could be multiple potential
# matches when we come to add a commit from another branch. Prefer
# the closest-in-time one.
for my $candidate (@{$all_commits{$ht}}) {
for my $candidate (@{ $all_commits{$ht} })
{
my $diff = abs($ts - $candidate->{'timestamp'});
if ($diff < $timestamp_slop &&
!exists $candidate->{'branch_position'}{$c->{'branch'}})
if ($diff < $timestamp_slop
&& !exists $candidate->{'branch_position'}{ $c->{'branch'} })
{
if (!defined $cc ||
$diff < abs($ts - $cc->{'timestamp'})) {
$cc = $candidate;
}
if (!defined $cc
|| $diff < abs($ts - $cc->{'timestamp'}))
{
$cc = $candidate;
}
}
}
if (!defined $cc) {
if (!defined $cc)
{
$cc = {
'author' => $c->{'author'},
'message' => $c->{'message'},
'commit' => $c->{'commit'},
'commits' => [],
'timestamp' => $ts
};
push @{$all_commits{$ht}}, $cc;
'author' => $c->{'author'},
'message' => $c->{'message'},
'commit' => $c->{'commit'},
'commits' => [],
'timestamp' => $ts };
push @{ $all_commits{$ht} }, $cc;
}
# stash only the fields we'll need later
my $smallc = {
'branch' => $c->{'branch'},
'commit' => $c->{'commit'},
'date' => $c->{'date'},
'last_tag' => $c->{'last_tag'}
};
push @{$cc->{'commits'}}, $smallc;
push @{$all_commits_by_branch{$c->{'branch'}}}, $cc;
$cc->{'branch_position'}{$c->{'branch'}} =
-1+@{$all_commits_by_branch{$c->{'branch'}}};
'branch' => $c->{'branch'},
'commit' => $c->{'commit'},
'date' => $c->{'date'},
'last_tag' => $c->{'last_tag'} };
push @{ $cc->{'commits'} }, $smallc;
push @{ $all_commits_by_branch{ $c->{'branch'} } }, $cc;
$cc->{'branch_position'}{ $c->{'branch'} } =
-1 + @{ $all_commits_by_branch{ $c->{'branch'} } };
}
sub hash_commit {
sub hash_commit
{
my ($c) = @_;
return $c->{'author'} . "\0" . $c->{'message'};
}
sub parse_datetime {
sub parse_datetime
{
my ($dt) = @_;
$dt =~ /^(\d\d\d\d)-(\d\d)-(\d\d)\s+(\d\d):(\d\d):(\d\d)\s+([-+])(\d\d)(\d\d)$/;
my $gm = Time::Local::timegm($6, $5, $4, $3, $2-1, $1);
$dt =~
/^(\d\d\d\d)-(\d\d)-(\d\d)\s+(\d\d):(\d\d):(\d\d)\s+([-+])(\d\d)(\d\d)$/;
my $gm = Time::Local::timegm($6, $5, $4, $3, $2 - 1, $1);
my $tzoffset = ($8 * 60 + $9) * 60;
$tzoffset = - $tzoffset if $7 eq '-';
$tzoffset = -$tzoffset if $7 eq '-';
return $gm - $tzoffset;
}
sub output_str {
sub output_str
{
($oldest_first) ? ($output_line .= sprintf(shift, @_)) : printf(@_);
}
sub output_details {
sub output_details
{
my $item = shift;
if ($details_after) {
if ($details_after)
{
$item->{'author'} =~ m{^(.*?)\s*<[^>]*>$};
# output only author name, not email address
output_str("(%s)\n", $1);
} else {
}
else
{
output_str("Author: %s\n", $item->{'author'});
}
foreach my $c (@{$item->{'commits'}}) {
output_str("Branch: %s ", $c->{'branch'}) if (! $master_only);
if (defined $c->{'last_tag'}) {
output_str("Release: %s ", $c->{'last_tag'});
}
output_str("[%s] %s\n", substr($c->{'commit'}, 0, 9), $c->{'date'});
foreach my $c (@{ $item->{'commits'} })
{
output_str("Branch: %s ", $c->{'branch'}) if (!$master_only);
if (defined $c->{'last_tag'})
{
output_str("Release: %s ", $c->{'last_tag'});
}
output_str("[%s] %s\n", substr($c->{'commit'}, 0, 9), $c->{'date'});
}
output_str("\n");
}
sub usage {
sub usage
{
print STDERR <<EOM;
Usage: git_changelog [--details-after/-d] [--master-only/-m] [--oldest-first/-o] [--post-date/-p] [--since=SINCE]
--details-after Show branch and author info after the commit description

View File

@@ -37,13 +37,15 @@ sub Install
$| = 1;
my $target = shift;
# if called from vcregress, the config will be passed to us
# so no need to re-include these
our $config = shift;
unless ($config)
{
# suppress warning about harmless redeclaration of $config
no warnings 'misc';
no warnings 'misc';
require "config_default.pl";
require "config.pl" if (-f "config.pl");
}
@@ -83,11 +85,15 @@ sub Install
"src");
CopySetOfFiles('config files', $sample_files, $target . '/share/');
CopyFiles(
'Import libraries', $target . '/lib/',
"$conf\\", "postgres\\postgres.lib",
"libpq\\libpq.lib", "libecpg\\libecpg.lib",
'Import libraries',
$target . '/lib/',
"$conf\\",
"postgres\\postgres.lib",
"libpq\\libpq.lib",
"libecpg\\libecpg.lib",
"libpgcommon\\libpgcommon.lib",
"libpgport\\libpgport.lib", "libpgtypes\\libpgtypes.lib",
"libpgport\\libpgport.lib",
"libpgtypes\\libpgtypes.lib",
"libecpg_compat\\libecpg_compat.lib");
CopySetOfFiles(
'timezone names',
@@ -490,11 +496,10 @@ sub CopyIncludeFiles
'include/internal/libpq', 'include/server', 'include/server/parser');
CopyFiles(
'Public headers',
$target . '/include/',
'src/include/', 'postgres_ext.h',
'pg_config.h', 'pg_config_ext.h', 'pg_config_os.h',
'pg_config_manual.h');
'Public headers', $target . '/include/',
'src/include/', 'postgres_ext.h',
'pg_config.h', 'pg_config_ext.h',
'pg_config_os.h', 'pg_config_manual.h');
lcopy('src/include/libpq/libpq-fs.h', $target . '/include/libpq/')
|| croak 'Could not copy libpq-fs.h';

View File

@@ -64,7 +64,7 @@ EOF
# We have to use this flag on 32 bit targets because the 32bit perls
# are built with it and sometimes crash if we don't.
my $use_32bit_time_t =
my $use_32bit_time_t =
$self->{platform} eq 'Win32' ? '_USE_32BIT_TIME_T;' : '';
$self->WriteItemDefinitionGroup(
@@ -409,26 +409,26 @@ use base qw(MSBuildProject);
sub new
{
my $classname = shift;
my $self = $classname->SUPER::_new(@_);
bless($self, $classname);
my $classname = shift;
my $self = $classname->SUPER::_new(@_);
bless($self, $classname);
$self->{vcver} = '11.00';
$self->{vcver} = '11.00';
return $self;
return $self;
}
# This override adds the <PlatformToolset> element
# to the PropertyGroup labeled "Configuration"
sub WriteConfigurationPropertyGroup
{
my ($self, $f, $cfgname, $p) = @_;
my $cfgtype =
($self->{type} eq "exe")
?'Application'
:($self->{type} eq "dll"?'DynamicLibrary':'StaticLibrary');
my ($self, $f, $cfgname, $p) = @_;
my $cfgtype =
($self->{type} eq "exe")
? 'Application'
: ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary');
print $f <<EOF;
print $f <<EOF;
<PropertyGroup Condition="'\$(Configuration)|\$(Platform)'=='$cfgname|$self->{platform}'" Label="Configuration">
<ConfigurationType>$cfgtype</ConfigurationType>
<UseOfMfc>false</UseOfMfc>

View File

@@ -49,8 +49,7 @@ my $contrib_extraincludes =
{ 'tsearch2' => ['contrib/tsearch2'], 'dblink' => ['src/backend'] };
my $contrib_extrasource = {
'cube' => [ 'cubescan.l', 'cubeparse.y' ],
'seg' => [ 'segscan.l', 'segparse.y' ],
};
'seg' => [ 'segscan.l', 'segparse.y' ], };
my @contrib_excludes = ('pgcrypto', 'intagg', 'sepgsql');
sub mkvcbuild
@@ -75,10 +74,9 @@ sub mkvcbuild
win32error.c win32setlocale.c);
our @pgcommonallfiles = qw(
relpath.c);
relpath.c);
our @pgcommonfrontendfiles = (@pgcommonallfiles,
qw(fe_memutils.c));
our @pgcommonfrontendfiles = (@pgcommonallfiles, qw(fe_memutils.c));
our @pgcommonbkndfiles = @pgcommonallfiles;
@@ -103,7 +101,7 @@ sub mkvcbuild
'src\backend\port\win32_shmem.c');
$postgres->ReplaceFile('src\backend\port\pg_latch.c',
'src\backend\port\win32_latch.c');
$postgres->AddFiles('src\port', @pgportfiles);
$postgres->AddFiles('src\port', @pgportfiles);
$postgres->AddFiles('src\common', @pgcommonbkndfiles);
$postgres->AddDir('src\timezone');
$postgres->AddFiles('src\backend\parser', 'scan.l', 'gram.y');
@@ -593,17 +591,19 @@ sub mkvcbuild
# fix up pg_xlogdump once it's been set up
# files symlinked on Unix are copied on windows
my $pg_xlogdump = (grep {$_->{name} eq 'pg_xlogdump'}
@{$solution->{projects}->{contrib}} )[0];
my $pg_xlogdump =
(grep { $_->{name} eq 'pg_xlogdump' }
@{ $solution->{projects}->{contrib} })[0];
$pg_xlogdump->AddDefine('FRONTEND');
foreach my $xf (glob('src/backend/access/rmgrdesc/*desc.c') )
foreach my $xf (glob('src/backend/access/rmgrdesc/*desc.c'))
{
my $bf = basename $xf;
copy($xf,"contrib/pg_xlogdump/$bf");
copy($xf, "contrib/pg_xlogdump/$bf");
$pg_xlogdump->AddFile("contrib\\pg_xlogdump\\$bf");
}
copy('src/backend/access/transam/xlogreader.c',
'contrib/pg_xlogdump/xlogreader.c');
copy(
'src/backend/access/transam/xlogreader.c',
'contrib/pg_xlogdump/xlogreader.c');
$solution->Save();
return $solution->{vcver};

View File

@@ -225,7 +225,8 @@ sub AddDir
if ($filter eq "LIBOBJS")
{
if (grep(/$p/, @main::pgportfiles, @main::pgcommonfiles) == 1)
if (grep(/$p/, @main::pgportfiles, @main::pgcommonfiles)
== 1)
{
$p =~ s/\.c/\.o/;
$matches .= $p . " ";

View File

@@ -242,10 +242,12 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
}
if (IsNewer(
"src\\include\\pg_config_ext.h", "src\\include\\pg_config_ext.h.win32"))
"src\\include\\pg_config_ext.h",
"src\\include\\pg_config_ext.h.win32"))
{
print "Copying pg_config_ext.h...\n";
copyFile("src\\include\\pg_config_ext.h.win32",
copyFile(
"src\\include\\pg_config_ext.h.win32",
"src\\include\\pg_config_ext.h");
}
@@ -275,7 +277,9 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
"perl -I ../catalog Gen_fmgrtab.pl ../../../src/include/catalog/pg_proc.h");
chdir('..\..\..');
}
if (IsNewer('src\include\utils\fmgroids.h', 'src\backend\utils\fmgroids.h'))
if (IsNewer(
'src\include\utils\fmgroids.h',
'src\backend\utils\fmgroids.h'))
{
copyFile('src\backend\utils\fmgroids.h',
'src\include\utils\fmgroids.h');
@@ -712,15 +716,15 @@ use base qw(Solution);
sub new
{
my $classname = shift;
my $self = $classname->SUPER::_new(@_);
bless($self, $classname);
my $classname = shift;
my $self = $classname->SUPER::_new(@_);
bless($self, $classname);
$self->{solutionFileVersion} = '12.00';
$self->{vcver} = '11.00';
$self->{visualStudioName} = 'Visual Studio 2012';
$self->{solutionFileVersion} = '12.00';
$self->{vcver} = '11.00';
$self->{visualStudioName} = 'Visual Studio 2012';
return $self;
return $self;
}
1;

View File

@@ -35,7 +35,7 @@ EOF
# We have to use this flag on 32 bit targets because the 32bit perls
# are built with it and sometimes crash if we don't.
my $use_32bit_time_t =
my $use_32bit_time_t =
$self->{platform} eq 'Win32' ? '_USE_32BIT_TIME_T;' : '';

View File

@@ -31,7 +31,8 @@ if (-e "src/tools/msvc/buildenv.pl")
my $what = shift || "";
if ($what =~
/^(check|installcheck|plcheck|contribcheck|ecpgcheck|isolationcheck|upgradecheck)$/i)
/^(check|installcheck|plcheck|contribcheck|ecpgcheck|isolationcheck|upgradecheck)$/i
)
{
$what = uc $what;
}
@@ -76,7 +77,7 @@ my %command = (
ECPGCHECK => \&ecpgcheck,
CONTRIBCHECK => \&contribcheck,
ISOLATIONCHECK => \&isolationcheck,
UPGRADECHECK => \&upgradecheck,);
UPGRADECHECK => \&upgradecheck,);
my $proc = $command{$what};
@@ -251,9 +252,10 @@ sub upgradecheck
my $tmp_install = "$tmp_root/install";
print "Setting up temp install\n\n";
Install($tmp_install, $config);
# Install does a chdir, so change back after that
chdir $cwd;
my ($bindir,$libdir,$oldsrc,$newsrc) =
my ($bindir, $libdir, $oldsrc, $newsrc) =
("$tmp_install/bin", "$tmp_install/lib", $topdir, $topdir);
$ENV{PATH} = "$bindir;$ENV{PATH}";
my $data = "$tmp_root/data";
@@ -266,6 +268,7 @@ sub upgradecheck
system("pg_ctl start -l $logdir/postmaster1.log -w") == 0 or exit 1;
print "\nSetting up data for upgrading\n\n";
installcheck();
# now we can chdir into the source dir
chdir "$topdir/contrib/pg_upgrade";
print "\nDumping old cluster\n\n";
@@ -276,7 +279,7 @@ sub upgradecheck
print "\nSetting up new cluster\n\n";
system("initdb") == 0 or exit 1;
print "\nRunning pg_upgrade\n\n";
system("pg_upgrade -d $data.old -D $data -b $bindir -B $bindir") == 0
system("pg_upgrade -d $data.old -D $data -b $bindir -B $bindir") == 0
or exit 1;
print "\nStarting new cluster\n\n";
system("pg_ctl -l $logdir/postmaster2.log -w start") == 0 or exit 1;

View File

@@ -39,20 +39,22 @@ $MAKE = "make";
# cause a lot of false-positive results.
#
open PIPE, "$FIND * -type f -name '*.c' |"
or die "can't fork: $!";
while (<PIPE>) {
chomp;
push @cfiles, $_;
or die "can't fork: $!";
while (<PIPE>)
{
chomp;
push @cfiles, $_;
}
close PIPE or die "$FIND failed: $!";
open PIPE, "$FIND * -type f -name '*.h' |"
or die "can't fork: $!";
while (<PIPE>) {
chomp;
push @hfiles, $_ unless
m|^src/include/port/| ||
m|^src/backend/port/\w+/|;
or die "can't fork: $!";
while (<PIPE>)
{
chomp;
push @hfiles, $_
unless m|^src/include/port/|
|| m|^src/backend/port/\w+/|;
}
close PIPE or die "$FIND failed: $!";
@@ -61,15 +63,18 @@ close PIPE or die "$FIND failed: $!";
# a hash table. To cover the possibility of multiple .h files defining
# the same symbol, we make each hash entry a hash of filenames.
#
foreach $hfile (@hfiles) {
open HFILE, $hfile
or die "can't open $hfile: $!";
while (<HFILE>) {
if (m/^\s*#\s*define\s+(\w+)/) {
$defines{$1}{$hfile} = 1;
foreach $hfile (@hfiles)
{
open HFILE, $hfile
or die "can't open $hfile: $!";
while (<HFILE>)
{
if (m/^\s*#\s*define\s+(\w+)/)
{
$defines{$1}{$hfile} = 1;
}
}
}
close HFILE;
close HFILE;
}
#
@@ -77,164 +82,210 @@ foreach $hfile (@hfiles) {
# files it #include's. Then extract all the symbols it tests for defined-ness,
# and check each one against the previously built hashtable.
#
foreach $file (@hfiles, @cfiles) {
($fname, $fpath) = fileparse($file);
chdir $fpath or die "can't chdir to $fpath: $!";
#
# Ask 'make' to parse the makefile so we can get the correct flags to
# use. CPPFLAGS in particular varies for each subdirectory. If we are
# processing a .h file, we might be in a subdirectory that has no
# Makefile, in which case we have to fake it. Note that there seems
# no easy way to prevent make from recursing into subdirectories and
# hence printing multiple definitions --- we keep the last one, which
# should come from the current Makefile.
#
if (-f "Makefile" || -f "GNUmakefile") {
$MAKECMD = "$MAKE -qp";
} else {
$subdir = $fpath;
chop $subdir;
$top_builddir = "..";
$tmp = $fpath;
while (($tmp = dirname($tmp)) ne '.') {
$top_builddir = $top_builddir . "/..";
}
$MAKECMD = "$MAKE -qp 'subdir=$subdir' 'top_builddir=$top_builddir' -f '$top_builddir/src/Makefile.global'";
}
open PIPE, "$MAKECMD |"
or die "can't fork: $!";
while (<PIPE>) {
if (m/^CPPFLAGS :?= (.*)/) {
$CPPFLAGS = $1;
} elsif (m/^CFLAGS :?= (.*)/) {
$CFLAGS = $1;
} elsif (m/^CFLAGS_SL :?= (.*)/) {
$CFLAGS_SL = $1;
} elsif (m/^PTHREAD_CFLAGS :?= (.*)/) {
$PTHREAD_CFLAGS = $1;
} elsif (m/^CC :?= (.*)/) {
$CC = $1;
}
}
# If make exits with status 1, it's not an error, it just means make
# thinks some files may not be up-to-date. Only complain on status 2.
close PIPE;
die "$MAKE failed in $fpath\n" if $? != 0 && $? != 256;
foreach $file (@hfiles, @cfiles)
{
($fname, $fpath) = fileparse($file);
chdir $fpath or die "can't chdir to $fpath: $!";
# Expand out stuff that might be referenced in CFLAGS
$CFLAGS =~ s/\$\(CFLAGS_SL\)/$CFLAGS_SL/;
$CFLAGS =~ s/\$\(PTHREAD_CFLAGS\)/$PTHREAD_CFLAGS/;
#
# Ask 'make' to parse the makefile so we can get the correct flags to
# use. CPPFLAGS in particular varies for each subdirectory. If we are
# processing a .h file, we might be in a subdirectory that has no
# Makefile, in which case we have to fake it. Note that there seems
# no easy way to prevent make from recursing into subdirectories and
# hence printing multiple definitions --- we keep the last one, which
# should come from the current Makefile.
#
if (-f "Makefile" || -f "GNUmakefile")
{
$MAKECMD = "$MAKE -qp";
}
else
{
$subdir = $fpath;
chop $subdir;
$top_builddir = "..";
$tmp = $fpath;
while (($tmp = dirname($tmp)) ne '.')
{
$top_builddir = $top_builddir . "/..";
}
$MAKECMD =
"$MAKE -qp 'subdir=$subdir' 'top_builddir=$top_builddir' -f '$top_builddir/src/Makefile.global'";
}
open PIPE, "$MAKECMD |"
or die "can't fork: $!";
while (<PIPE>)
{
if (m/^CPPFLAGS :?= (.*)/)
{
$CPPFLAGS = $1;
}
elsif (m/^CFLAGS :?= (.*)/)
{
$CFLAGS = $1;
}
elsif (m/^CFLAGS_SL :?= (.*)/)
{
$CFLAGS_SL = $1;
}
elsif (m/^PTHREAD_CFLAGS :?= (.*)/)
{
$PTHREAD_CFLAGS = $1;
}
elsif (m/^CC :?= (.*)/)
{
$CC = $1;
}
}
#
# Run the compiler (which had better be gcc) to get the inclusions.
# "gcc -H" reports inclusions on stderr as "... filename" where the
# number of dots varies according to nesting depth.
#
@includes = ();
$COMPILE = "$CC $CPPFLAGS $CFLAGS -H -E $fname";
open PIPE, "$COMPILE 2>&1 >/dev/null |"
or die "can't fork: $!";
while (<PIPE>) {
if (m/^\.+ (.*)/) {
$include = $1;
# Ignore system headers (absolute paths); but complain if a
# .c file includes a system header before any PG header.
if ($include =~ m|^/|) {
warn "$file includes $include before any Postgres inclusion\n"
if $#includes == -1 && $file =~ m/\.c$/;
next;
}
# Strip any "./" (assume this appears only at front)
$include =~ s|^\./||;
# Make path relative to top of tree
$ipath = $fpath;
while ($include =~ s|^\.\./||) {
$ipath = dirname($ipath) . "/";
}
$ipath =~ s|^\./||;
push @includes, $ipath . $include;
} else {
warn "$CC: $_";
}
}
# The compiler might fail, particularly if we are checking a file that's
# not supposed to be compiled at all on the current platform, so don't
# quit on nonzero status.
close PIPE or warn "$COMPILE failed in $fpath\n";
# If make exits with status 1, it's not an error, it just means make
# thinks some files may not be up-to-date. Only complain on status 2.
close PIPE;
die "$MAKE failed in $fpath\n" if $? != 0 && $? != 256;
#
# Scan the file to find #ifdef, #ifndef, and #if defined() constructs
# We assume #ifdef isn't continued across lines, and that defined(foo)
# isn't split across lines either
#
open FILE, $fname
or die "can't open $file: $!";
$inif = 0;
while (<FILE>) {
$line = $_;
if ($line =~ m/^\s*#\s*ifdef\s+(\w+)/) {
$symbol = $1;
&checkit;
}
if ($line =~ m/^\s*#\s*ifndef\s+(\w+)/) {
$symbol = $1;
&checkit;
}
if ($line =~ m/^\s*#\s*if\s+/) {
$inif = 1;
}
if ($inif) {
while ($line =~ s/\bdefined(\s+|\s*\(\s*)(\w+)//) {
$symbol = $2;
&checkit;
}
if (!($line =~ m/\\$/)) {
$inif = 0;
}
}
}
close FILE;
# Expand out stuff that might be referenced in CFLAGS
$CFLAGS =~ s/\$\(CFLAGS_SL\)/$CFLAGS_SL/;
$CFLAGS =~ s/\$\(PTHREAD_CFLAGS\)/$PTHREAD_CFLAGS/;
chdir $topdir or die "can't chdir to $topdir: $!";
#
# Run the compiler (which had better be gcc) to get the inclusions.
# "gcc -H" reports inclusions on stderr as "... filename" where the
# number of dots varies according to nesting depth.
#
@includes = ();
$COMPILE = "$CC $CPPFLAGS $CFLAGS -H -E $fname";
open PIPE, "$COMPILE 2>&1 >/dev/null |"
or die "can't fork: $!";
while (<PIPE>)
{
if (m/^\.+ (.*)/)
{
$include = $1;
# Ignore system headers (absolute paths); but complain if a
# .c file includes a system header before any PG header.
if ($include =~ m|^/|)
{
warn "$file includes $include before any Postgres inclusion\n"
if $#includes == -1 && $file =~ m/\.c$/;
next;
}
# Strip any "./" (assume this appears only at front)
$include =~ s|^\./||;
# Make path relative to top of tree
$ipath = $fpath;
while ($include =~ s|^\.\./||)
{
$ipath = dirname($ipath) . "/";
}
$ipath =~ s|^\./||;
push @includes, $ipath . $include;
}
else
{
warn "$CC: $_";
}
}
# The compiler might fail, particularly if we are checking a file that's
# not supposed to be compiled at all on the current platform, so don't
# quit on nonzero status.
close PIPE or warn "$COMPILE failed in $fpath\n";
#
# Scan the file to find #ifdef, #ifndef, and #if defined() constructs
# We assume #ifdef isn't continued across lines, and that defined(foo)
# isn't split across lines either
#
open FILE, $fname
or die "can't open $file: $!";
$inif = 0;
while (<FILE>)
{
$line = $_;
if ($line =~ m/^\s*#\s*ifdef\s+(\w+)/)
{
$symbol = $1;
&checkit;
}
if ($line =~ m/^\s*#\s*ifndef\s+(\w+)/)
{
$symbol = $1;
&checkit;
}
if ($line =~ m/^\s*#\s*if\s+/)
{
$inif = 1;
}
if ($inif)
{
while ($line =~ s/\bdefined(\s+|\s*\(\s*)(\w+)//)
{
$symbol = $2;
&checkit;
}
if (!($line =~ m/\\$/))
{
$inif = 0;
}
}
}
close FILE;
chdir $topdir or die "can't chdir to $topdir: $!";
}
exit 0;
# Check an is-defined reference
sub checkit {
# Ignore if symbol isn't defined in any PG include files
if (! defined $defines{$symbol}) {
return;
}
#
# Try to match source(s) of symbol to the inclusions of the current file
# (including itself). We consider it OK if any one matches.
#
# Note: these tests aren't bulletproof; in theory the inclusion might
# occur after the use of the symbol. Given our normal file layout,
# however, the risk is minimal.
#
foreach $deffile (keys %{ $defines{$symbol} }) {
return if $deffile eq $file;
foreach $reffile (@includes) {
return if $deffile eq $reffile;
sub checkit
{
# Ignore if symbol isn't defined in any PG include files
if (!defined $defines{$symbol})
{
return;
}
}
#
# If current file is a .h file, it's OK for it to assume that one of the
# base headers (postgres.h or postgres_fe.h) has been included.
#
if ($file =~ m/\.h$/) {
foreach $deffile (keys %{ $defines{$symbol} }) {
return if $deffile eq 'src/include/c.h';
return if $deffile eq 'src/include/postgres.h';
return if $deffile eq 'src/include/postgres_fe.h';
return if $deffile eq 'src/include/pg_config.h';
return if $deffile eq 'src/include/pg_config_manual.h';
#
# Try to match source(s) of symbol to the inclusions of the current file
# (including itself). We consider it OK if any one matches.
#
# Note: these tests aren't bulletproof; in theory the inclusion might
# occur after the use of the symbol. Given our normal file layout,
# however, the risk is minimal.
#
foreach $deffile (keys %{ $defines{$symbol} })
{
return if $deffile eq $file;
foreach $reffile (@includes)
{
return if $deffile eq $reffile;
}
}
}
#
@places = keys %{ $defines{$symbol} };
print "$file references $symbol, defined in @places\n";
# print "includes: @includes\n";
#
# If current file is a .h file, it's OK for it to assume that one of the
# base headers (postgres.h or postgres_fe.h) has been included.
#
if ($file =~ m/\.h$/)
{
foreach $deffile (keys %{ $defines{$symbol} })
{
return if $deffile eq 'src/include/c.h';
return if $deffile eq 'src/include/postgres.h';
return if $deffile eq 'src/include/postgres_fe.h';
return if $deffile eq 'src/include/pg_config.h';
return if $deffile eq 'src/include/pg_config_manual.h';
}
}
#
@places = keys %{ $defines{$symbol} };
print "$file references $symbol, defined in @places\n";
# print "includes: @includes\n";
}

View File

@@ -29,18 +29,7 @@ This can format all PostgreSQL *.c and *.h files, but excludes *.y, and
7) Remove any files that generate errors and restore their original
versions.
8) Do a full test build:
> run configure
# stop is only necessary if it's going to install in a location with an
# already running server
pg_ctl stop
gmake -C src install
gmake -C contrib install
pg_ctl start
gmake installcheck-world
9) Indent the Perl code:
8) Indent the Perl code:
(
find . -name \*.pl -o -name \*.pm
@@ -52,6 +41,19 @@ This can format all PostgreSQL *.c and *.h files, but excludes *.y, and
sort -u |
xargs perltidy --profile=src/tools/pgindent/perltidyrc
9) Do a full test build:
> run configure
# stop is only necessary if it's going to install in a location with an
# already running server
pg_ctl stop
gmake -C src install
gmake -C contrib install
pg_ctl start
gmake installcheck-world
10) Remove Perl backup files after testing
---------------------------------------------------------------------------
BSD indent

View File

@@ -119,7 +119,7 @@ sub load_typedefs
$tdtry = "$tdtry/..";
}
die "cannot locate typedefs file \"$typedefs_file\"\n"
unless $typedefs_file && -f $typedefs_file;
unless $typedefs_file && -f $typedefs_file;
open(my $typedefs_fh, '<', $typedefs_file)
|| die "cannot open typedefs file \"$typedefs_file\": $!\n";
@@ -144,7 +144,8 @@ sub process_exclude
{
if ($excludes && @files)
{
open(my $eh, '<', $excludes) || die "cannot open exclude file \"$excludes\"\n";
open(my $eh, '<', $excludes)
|| die "cannot open exclude file \"$excludes\"\n";
while (my $line = <$eh>)
{
chomp $line;
@@ -205,7 +206,8 @@ sub pre_indent
# FILE: ../../../src/backend/rewrite/rewriteHandler.c
# Error@2259:
# Stuff missing from end of file
$source =~ s!(\}|[ \t])else[ \t]*(/\*)(.*\*/)[ \t]*$!$1else\n $2 _PGMV$3!gm;
$source =~
s!(\}|[ \t])else[ \t]*(/\*)(.*\*/)[ \t]*$!$1else\n $2 _PGMV$3!gm;
# Indent multi-line after-'else' comment so BSD indent will move it
# properly. We already moved down single-line comments above.
@@ -442,20 +444,25 @@ sub run_build
chdir "$code_base/src/tools/pgindent";
my $typedefs_list_url = "http://buildfarm.postgresql.org/cgi-bin/typedefs.pl";
my $typedefs_list_url =
"http://buildfarm.postgresql.org/cgi-bin/typedefs.pl";
my $rv = getstore($typedefs_list_url, "tmp_typedefs.list");
die "cannot fetch typedefs list from $typedefs_list_url\n" unless is_success($rv);
die "cannot fetch typedefs list from $typedefs_list_url\n"
unless is_success($rv);
$ENV{PGTYPEDEFS} = abs_path('tmp_typedefs.list');
my $pg_bsd_indent_url = "ftp://ftp.postgresql.org/pub/dev/pg_bsd_indent-" .
$INDENT_VERSION . ".tar.gz";
my $pg_bsd_indent_url =
"ftp://ftp.postgresql.org/pub/dev/pg_bsd_indent-"
. $INDENT_VERSION
. ".tar.gz";
$rv = getstore($pg_bsd_indent_url, "pg_bsd_indent.tgz");
die "cannot fetch BSD indent tarfile from $pg_bsd_indent_url\n" unless is_success($rv);
die "cannot fetch BSD indent tarfile from $pg_bsd_indent_url\n"
unless is_success($rv);
# XXX add error checking here

View File

@@ -23,6 +23,7 @@ AclObjectKind
AclResult
AcquireSampleRowsFunc
ActiveSnapshotElt
AddForeignUpdateTargets_function
AffixNode
AffixNodeData
AfterTriggerEvent
@@ -42,8 +43,10 @@ AggStatePerAgg
AggStatePerGroup
AggStatePerGroupData
AggStrategy
AggVals
Aggref
AggrefExprState
AlenState
Alias
AllocBlock
AllocChunk
@@ -57,6 +60,7 @@ AlterDatabaseStmt
AlterDefaultPrivilegesStmt
AlterDomainStmt
AlterEnumStmt
AlterEventTrigStmt
AlterExtensionContentsStmt
AlterExtensionStmt
AlterFdwStmt
@@ -163,8 +167,11 @@ Backend
BackendId
BackendParameters
BackendState
BackgroundWorker
BaseBackupCmd
BeginForeignModify_function
BeginForeignScan_function
BgWorkerStartTime
BitmapAnd
BitmapAndPath
BitmapAndState
@@ -270,6 +277,8 @@ CollInfo
CollateClause
CollateExpr
CollateStrength
ColorTrgm
ColorTrgmInfo
ColumnCompareData
ColumnDef
ColumnIOData
@@ -290,6 +299,8 @@ CompositeTypeStmt
CompressionAlgorithm
CompressorState
ConfigVariable
ConnCacheEntry
ConnCacheKey
ConnStatusType
ConnType
ConsiderSplitContext
@@ -304,6 +315,7 @@ ControlData
ControlFileData
ConvInfo
ConvProcInfo
ConversionLocation
ConvertRowtypeExpr
ConvertRowtypeExprState
CookedConstraint
@@ -319,6 +331,7 @@ CreateCastStmt
CreateConversionStmt
CreateDomainStmt
CreateEnumStmt
CreateEventTrigStmt
CreateExtensionStmt
CreateFdwStmt
CreateForeignServerStmt
@@ -351,6 +364,7 @@ CurrentOfExpr
CustomOutPtr
CycleCtr
DBState
DBWriteRequest
DCHCacheEntry
DEADLOCK_INFO
DECountItem
@@ -362,6 +376,7 @@ DR_copy
DR_intorel
DR_printtup
DR_sqlfunction
DR_transientrel
DWORD
DataDumperPtr
DataPageDeleteStack
@@ -388,11 +403,10 @@ DictSnowball
DictSubState
DictSyn
DictThesaurus
DisableTimeoutParams
DiscardMode
DiscardStmt
DistinctExpr
Dlelem
Dllist
DoStmt
DocRepresentation
DomainConstraintState
@@ -417,10 +431,14 @@ EState
EVP_MD
EVP_MD_CTX
EVP_PKEY
EachState
Edge
ElementsState
EnableTimeoutParams
EndBlobPtr
EndBlobsPtr
EndDataPtr
EndForeignModify_function
EndForeignScan_function
EnumItem
EolType
@@ -428,9 +446,19 @@ EquivalenceClass
EquivalenceMember
ErrorContextCallback
ErrorData
EventTriggerCacheEntry
EventTriggerCacheItem
EventTriggerCacheStateType
EventTriggerData
EventTriggerEvent
EventTriggerInfo
EventTriggerQueryState
ExceptionLabelMap
ExceptionMap
ExecAuxRowMark
ExecForeignDelete_function
ExecForeignInsert_function
ExecForeignUpdate_function
ExecRowMark
ExecScanAccessMtd
ExecScanRecheckMtd
@@ -442,6 +470,7 @@ ExecutorEnd_hook_type
ExecutorFinish_hook_type
ExecutorRun_hook_type
ExecutorStart_hook_type
ExplainForeignModify_function
ExplainForeignScan_function
ExplainFormat
ExplainOneQuery_hook_type
@@ -459,6 +488,7 @@ ExtensionControlFile
ExtensionInfo
ExtensionVersionInfo
Extention
FDWCollateState
FD_SET
FILE
FILETIME
@@ -513,6 +543,7 @@ FormData_pg_database
FormData_pg_default_acl
FormData_pg_depend
FormData_pg_enum
FormData_pg_event_trigger
FormData_pg_extension
FormData_pg_foreign_data_wrapper
FormData_pg_foreign_server
@@ -559,6 +590,7 @@ Form_pg_database
Form_pg_default_acl
Form_pg_depend
Form_pg_enum
Form_pg_event_trigger
Form_pg_extension
Form_pg_foreign_data_wrapper
Form_pg_foreign_server
@@ -629,11 +661,13 @@ GISTTYPE
GIST_SPLITVEC
GV
Gene
GenericCosts
GenericExprState
GeqoPrivateData
GetForeignPaths_function
GetForeignPlan_function
GetForeignRelSize_function
GetState
GiSTOptions
GinBtree
GinBtreeData
@@ -641,6 +675,7 @@ GinBtreeStack
GinBuildState
GinChkVal
GinEntryAccumulator
GinIndexStat
GinMetaPageData
GinNullCategory
GinOptions
@@ -734,13 +769,13 @@ HbaLine
HbaToken
HeadlineParsedText
HeadlineWordEntry
HeapPosition
HeapScanDesc
HeapTuple
HeapTupleData
HeapTupleFields
HeapTupleHeader
HeapTupleHeaderData
HeapUpdateFailureData
HistControl
HotStandbyState
I32
@@ -750,6 +785,7 @@ IOFuncSelector
IPCompareMethod
ITEM
IV
IdentLine
IdentifierLookup
IdentifySystemCmd
IncrementVarSublevelsUp_context
@@ -771,6 +807,7 @@ IndexRuntimeKeyInfo
IndexScan
IndexScanDesc
IndexScanState
IndexStateFlagsAction
IndexStmt
IndexTuple
IndexTupleData
@@ -804,6 +841,7 @@ ItemIdData
ItemPointer
ItemPointerData
IterateForeignScan_function
JHashState
JOBOBJECTINFOCLASS
JOBOBJECT_BASIC_LIMIT_INFORMATION
JOBOBJECT_BASIC_UI_RESTRICTIONS
@@ -815,11 +853,12 @@ JoinHashEntry
JoinPath
JoinState
JoinType
JsonHashEntry
JsonLexContext
JsonParseStack
JsonParseState
JsonStackOp
JsonValueType
JsonParseContext
JsonSearch
JsonSemAction
JsonTokenType
JunkFilter
KeyArray
KeySuffix
@@ -827,6 +866,7 @@ KeyWord
LARGE_INTEGER
LDAP
LDAPMessage
LDAPURLDesc
LDAP_TIMEVAL
LINE
LOCALLOCK
@@ -860,6 +900,7 @@ LWLockPadded
LabelProvider
LargeObjectDesc
Latch
LateralJoinInfo
LexDescr
LexemeEntry
LexemeHashKey
@@ -881,6 +922,7 @@ LocalBufferLookupEnt
LocalTransactionId
LocationIndex
LockAcquireResult
LockClauseStrength
LockData
LockInfoData
LockInstanceData
@@ -902,6 +944,8 @@ MBuf
MINIDUMPWRITEDUMP
MINIDUMP_TYPE
MJEvalResult
MasterEndParallelItemPtr
MasterStartParallelItemPtr
Material
MaterialPath
MaterialState
@@ -927,8 +971,10 @@ ModifyTable
ModifyTableState
MsgType
MultiXactId
MultiXactMember
MultiXactOffset
MultiXactStateData
MultiXactStatus
MyData
NDBOX
NODE
@@ -960,12 +1006,16 @@ NullTestType
Numeric
NumericDigit
NumericVar
OM_uint32
OP
OSInfo
OSSLDigest
OSVERSIONINFO
OVERLAPPED
ObjectAccessDrop
ObjectAccessNamespaceSearch
ObjectAccessPostAlter
ObjectAccessPostCreate
ObjectAccessType
ObjectAddress
ObjectAddressExtra
@@ -979,6 +1029,7 @@ OffsetNumber
OffsetVarNodes_context
Oid
OidOptions
OkeysState
OldSerXidControl
OldToNewMapping
OldToNewMappingData
@@ -1104,6 +1155,7 @@ PLpgSQL_stmt_return
PLpgSQL_stmt_return_next
PLpgSQL_stmt_return_query
PLpgSQL_stmt_while
PLpgSQL_trigtype
PLpgSQL_type
PLpgSQL_var
PLpgSQL_variable
@@ -1120,6 +1172,7 @@ PLyObToTuple
PLyPlanObject
PLyProcedure
PLyProcedureEntry
PLyProcedureKey
PLyResultObject
PLySubtransactionData
PLySubtransactionObject
@@ -1142,7 +1195,6 @@ PQconninfoOption
PQnoticeProcessor
PQnoticeReceiver
PQprintOpt
PQrowProcessor
PREDICATELOCK
PREDICATELOCKTAG
PREDICATELOCKTARGET
@@ -1168,14 +1220,16 @@ PX_Combo
PX_HMAC
PX_MD
Page
PageGistNSN
PageHeader
PageHeaderData
PageSplitRecord
PageXLogRecPtr
PagetableEntry
Pairs
ParallelArgs
ParallelSlot
ParallelState
ParallelStateEntry
Param
ParamExecData
ParamExternData
@@ -1186,6 +1240,8 @@ ParamPathInfo
ParamRef
ParentMapEntry
ParseCallbackState
ParseExprKind
ParseNamespaceItem
ParseParamRefHook
ParseState
ParsedLex
@@ -1201,12 +1257,16 @@ PathKeysComparison
Pattern_Prefix_Status
Pattern_Type
PendingOperationEntry
PendingOperationTag
PendingRelDelete
PendingUnlinkEntry
PerlInterpreter
Perl_ppaddr_t
PgBackendStatus
PgFdwAnalyzeState
PgFdwModifyState
PgFdwOption
PgFdwRelationInfo
PgFdwScanState
PgIfAddrCallback
PgStat_BackendFunctionEntry
PgStat_Counter
@@ -1252,6 +1312,7 @@ PipeProtoHeader
PlaceHolderInfo
PlaceHolderVar
Plan
PlanForeignModify_function
PlanInvalItem
PlanRowMark
PlanState
@@ -1262,6 +1323,7 @@ PlannerParamItem
Point
Pointer
Pool
PopulateRecordsetState
Port
Portal
PortalHashEnt
@@ -1281,7 +1343,6 @@ PredicateLockTargetType
PrepareStmt
PreparedParamsData
PreparedStatement
PrimaryKeepaliveMessage
PrintExtraTocPtr
PrintTocDataPtr
PrintfArgType
@@ -1295,6 +1356,7 @@ ProcLangInfo
ProcSignalReason
ProcSignalSlot
ProcState
ProcessUtilityContext
ProcessUtility_hook_type
ProcessingMode
ProjectionInfo
@@ -1374,9 +1436,11 @@ RecoveryTargetType
RecursionContext
RecursiveUnion
RecursiveUnionState
RefreshMatViewStmt
RegProcedure
Regis
RegisNode
RegisteredBgWorker
ReindexStmt
RelFileNode
RelFileNodeBackend
@@ -1400,13 +1464,13 @@ Relids
RelocationBufferInfo
RenameStmt
ReopenPtr
ReplaceVarsFromTargetList_context
ReplaceVarsNoMatchOption
ResTarget
ResolveNew_context
ResourceOwner
ResourceReleaseCallback
ResourceReleaseCallbackItem
ResourceReleasePhase
RestoreArgs
RestoreOptions
RestrictInfo
Result
@@ -1417,6 +1481,7 @@ ReturnSetInfo
RewriteRule
RewriteState
RmgrData
RmgrDescData
RmgrId
RoleStmtType
RowCompareExpr
@@ -1453,6 +1518,7 @@ SID_NAME_USE
SISeg
SMgrRelation
SMgrRelationData
SOCKADDR
SOCKET
SPELL
SPIPlanPtr
@@ -1461,6 +1527,7 @@ SPLITCOST
SPNode
SPNodeData
SPPageDesc
SQLDropObject
SQLFunctionCache
SQLFunctionCachePtr
SQLFunctionParseInfoPtr
@@ -1509,6 +1576,7 @@ SetOpStrategy
SetOperation
SetOperationStmt
SetToDefault
SetupWorkerPtr
SharedDependencyType
SharedInvalCatalogMsg
SharedInvalCatcacheMsg
@@ -1580,8 +1648,6 @@ SplitVar
SplitedPageLayout
StackElem
StandardChunkHeader
StandbyHSFeedbackMessage
StandbyReplyMessage
StartBlobPtr
StartBlobsPtr
StartDataPtr
@@ -1605,7 +1671,6 @@ SubXactCallbackItem
SubXactEvent
SubqueryScan
SubqueryScanState
SuffixChar
Syn
SysScanDesc
SyscacheCallbackFunction
@@ -1650,6 +1715,8 @@ TState
TStoreState
TTOffList
TYPCATEGORY
T_Action
T_WorkerStatus
TabStatusArray
TableDataInfo
TableInfo
@@ -1675,11 +1742,15 @@ TidScanState
TimeADT
TimeInterval
TimeIntervalData
TimeLineHistoryCmd
TimeLineHistoryEntry
TimeLineID
TimeOffset
TimeStamp
TimeTzADT
TimeZoneAbbrevTable
TimeoutId
TimeoutType
Timestamp
TimestampTz
TmFromChar
@@ -1694,6 +1765,19 @@ TransactionState
TransactionStateData
TransactionStmt
TransactionStmtKind
TrgmArc
TrgmArcInfo
TrgmColor
TrgmColorInfo
TrgmNFA
TrgmPackArcInfo
TrgmPackedArc
TrgmPackedGraph
TrgmPackedState
TrgmPrefix
TrgmState
TrgmStateKey
TrieChar
Trigger
TriggerData
TriggerDesc
@@ -1785,14 +1869,13 @@ WSABUF
WSADATA
WSANETWORKEVENTS
WSAPROTOCOL_INFO
WalDataMessageHeader
WalLevel
WalRcvData
WalRcvState
WalSnd
WalSndCtlData
WalSndState
WalSndrMessage
WholeRowVarExprState
WindowAgg
WindowAggState
WindowClause
@@ -1813,6 +1896,9 @@ WordEntryPosVector
WorkTableScan
WorkTableScanState
WorkerInfo
WorkerInfoData
WorkerJobDumpPtr
WorkerJobRestorePtr
Working_State
WriteBufPtr
WriteBytePtr
@@ -1824,17 +1910,23 @@ X509_NAME
X509_NAME_ENTRY
X509_STORE
X509_STORE_CTX
XLogContRecord
XLogCtlData
XLogCtlInsert
XLogCtlWrite
XLogDumpConfig
XLogDumpPrivate
XLogLongPageHeader
XLogLongPageHeaderData
XLogPageHeader
XLogPageHeaderData
XLogPageReadCB
XLogPageReadPrivate
XLogReaderState
XLogRecData
XLogRecPtr
XLogRecord
XLogSegNo
XLogSource
XLogwrtResult
XLogwrtRqst
XPVIV
@@ -1871,6 +1963,10 @@ avw_dbase
backslashResult
base_yy_extra_type
basebackup_options
bgworker_main_type
bgworker_sighdlr_type
binaryheap
binaryheap_comparator
bitmapword
bits16
bits32
@@ -1882,6 +1978,7 @@ cached_re_str
cashKEY
celt
cfp
check_agg_arguments_context
check_network_data
check_object_relabel_type
check_password_hook_type
@@ -1909,24 +2006,35 @@ crosstab_cat_desc
dateKEY
datetkn
decimal
deparse_columns
deparse_context
deparse_expr_cxt
deparse_namespace
destructor
dev_t
directory_fctx
dlist_head
dlist_iter
dlist_mutable_iter
dlist_node
ds_state
eLogType
ean13
eary
ec_matches_callback_type
ec_member_foreign_arg
ec_member_matches_arg
emit_log_hook_type
eval_const_expressions_context
event_trigger_command_tag_check_result
event_trigger_support_data
exec_thread_arg
execution_state
explain_get_index_name_hook_type
f_smgr
fd_set
finalize_primnode_context
find_expr_references_context
find_minimum_var_level_context
fix_join_expr_context
fix_scan_expr_context
fix_upper_expr_context
@@ -1938,6 +2046,8 @@ float8KEY
fmNodePtr
fmStringInfo
fmgr_hook_type
foreign_glob_cxt
foreign_loc_cxt
freeaddrinfo_ptr_t
freefunc
fsec_t
@@ -1966,11 +2076,15 @@ ginxlogSplit
ginxlogUpdateMeta
ginxlogVacuumPage
gistxlogPage
gistxlogPageDelete
gistxlogPageSplit
gistxlogPageUpdate
gseg_picksplit_item
gss_OID
gss_buffer_desc
gss_cred_id_t
gss_ctx_id_t
gss_name_t
gtrgm_consistent_cache
gzFile
hashfunc
hbaPort
@@ -1983,42 +2097,37 @@ inetKEY
inet_struct
inline_error_callback_arg
ino_t
inquiry
instr_time
int16
int16KEY
int2
int2vector
int32
int32KEY
int32_t
int4
int64
int64KEY
int8
internalPQconninfoOption
intptr_t
intvKEY
itemIdSort
itemIdSortData
jmp_buf
join_search_hook_type
jsonSemAction
json_aelem_action
json_ofield_action
json_scalar_action
json_struct_action
keyEntryData
key_t
krb5_auth_context
krb5_ccache
krb5_context
krb5_error
krb5_error_code
krb5_keytab
krb5_pointer
krb5_principal
krb5_ticket
lclContext
lclTocEntry
line_t
locale_t
locate_agg_of_level_context
locate_var_of_level_context
locate_var_of_relation_context
locate_windowfunc_context
logstreamer_param
lquery
@@ -2031,6 +2140,7 @@ ltxtquery
mXactCacheEnt
macKEY
macaddr
map_variable_attnos_context
mb2wchar_with_len_converter
mbcharacter_incrementer
mbdisplaylen_converter
@@ -2049,6 +2159,8 @@ mp_sign
mp_size
mp_word
mpz_t
mxact
mxtruncinfo
needs_fmgr_hook_type
nodeitem
normal_rand_fctx
@@ -2074,6 +2186,7 @@ pg_enc2gettext
pg_enc2name
pg_encname
pg_gssinfo
pg_int64
pg_local_to_utf
pg_local_to_utf_combined
pg_locale_t
@@ -2139,8 +2252,10 @@ pthread_t
pull_var_clause_context
pull_varattnos_context
pull_varnos_context
pull_vars_context
pullup_replace_vars_context
qsort_arg_comparator
query_pathkeys_callback
radius_attribute
radius_packet
rangeTableEntry_used_context
@@ -2150,8 +2265,8 @@ rb_combiner
rb_comparator
rb_freefunc
reduce_outer_joins_state
regex_arc_t
regex_t
regexp
regexp_matches_ctx
regmatch_t
regoff_t
@@ -2183,6 +2298,10 @@ sigjmp_buf
signedbitmapword
sigset_t
size_t
slist_head
slist_iter
slist_mutable_iter
slist_node
slock_t
smgrid
spgBulkDeleteState
@@ -2215,6 +2334,7 @@ ss_lru_item_t
ss_scan_location_t
ss_scan_locations_t
ssize_t
standard_qp_extra
stemmer_module
stmtCacheEntry
storeInfo
@@ -2232,11 +2352,15 @@ temp_tablespaces_extra
text
timeKEY
time_t
timeout_handler_proc
timeout_params
timerCA
timezone_extra
tlist_vinfo
transferMode
transfer_thread_arg
trgm
trgm_mb_char
tsKEY
ts_db_fctx
ts_tokentype
@@ -2267,12 +2391,18 @@ varattrib_1b_e
varattrib_4b
walrcv_connect_type
walrcv_disconnect_type
walrcv_endstreaming_type
walrcv_identify_system_type
walrcv_readtimelinehistoryfile_type
walrcv_receive_type
walrcv_send_type
walrcv_startstreaming_type
wchar2mb_with_len_converter
wchar_t
win32_deadchild_waitinfo
win32_pthread
wint_t
worktable
xl_btree_delete
xl_btree_delete_page
xl_btree_insert
@@ -2284,6 +2414,7 @@ xl_btree_vacuum
xl_btreetid
xl_dbase_create_rec
xl_dbase_drop_rec
xl_end_of_recovery
xl_heap_clean
xl_heap_cleanup_info
xl_heap_delete
@@ -2292,6 +2423,7 @@ xl_heap_header
xl_heap_inplace
xl_heap_insert
xl_heap_lock
xl_heap_lock_updated
xl_heap_multi_insert
xl_heap_newpage
xl_heap_update
@@ -2323,6 +2455,7 @@ xmlBufferPtr
xmlChar
xmlDocPtr
xmlErrorPtr
xmlExternalEntityLoader
xmlGenericErrorFunc
xmlNodePtr
xmlNodeSetPtr
@@ -2336,7 +2469,9 @@ xmlXPathContextPtr
xmlXPathObjectPtr
xmltype
xpath_workspace
xsltSecurityPrefsPtr
xsltStylesheetPtr
xsltTransformContextPtr
yy_parser
yy_size_t
yyscan_t