diff options
author | Bruce Momjian <bruce@momjian.us> | 2013-05-29 16:58:43 -0400 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2013-05-29 16:58:43 -0400 |
commit | 9af4159fce6654aa0e081b00d02bca40b978745c (patch) | |
tree | 3aa507fc6cc67ed3d9f6ceec4d65d1e56cc08e1a /src/tools | |
parent | 07ab261ef3a9575a4a2bd3045b222d7b3dee2c46 (diff) | |
download | postgresql-9af4159fce6654aa0e081b00d02bca40b978745c.tar.gz postgresql-9af4159fce6654aa0e081b00d02bca40b978745c.zip |
pgindent run for release 9.3
This is the first run of the Perl-based pgindent script. Also update
pgindent instructions.
Diffstat (limited to 'src/tools')
-rwxr-xr-x | src/tools/copyright.pl | 3 | ||||
-rwxr-xr-x | src/tools/git_changelog | 281 | ||||
-rw-r--r-- | src/tools/msvc/Install.pm | 25 | ||||
-rw-r--r-- | src/tools/msvc/MSBuildProject.pm | 24 | ||||
-rw-r--r-- | src/tools/msvc/Mkvcbuild.pm | 24 | ||||
-rw-r--r-- | src/tools/msvc/Project.pm | 3 | ||||
-rw-r--r-- | src/tools/msvc/Solution.pm | 24 | ||||
-rw-r--r-- | src/tools/msvc/VCBuildProject.pm | 2 | ||||
-rw-r--r-- | src/tools/msvc/vcregress.pl | 11 | ||||
-rwxr-xr-x | src/tools/pginclude/pgcheckdefines | 381 | ||||
-rw-r--r-- | src/tools/pgindent/README | 26 | ||||
-rwxr-xr-x | src/tools/pgindent/pgindent | 23 | ||||
-rw-r--r-- | src/tools/pgindent/typedefs.list | 203 |
13 files changed, 643 insertions, 387 deletions
diff --git a/src/tools/copyright.pl b/src/tools/copyright.pl index 126f6368d9d..f7e80fb00e5 100755 --- a/src/tools/copyright.pl +++ b/src/tools/copyright.pl @@ -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 diff --git a/src/tools/git_changelog b/src/tools/git_changelog index 512638beafc..ac4429e1042 100755 --- a/src/tools/git_changelog +++ b/src/tools/git_changelog @@ -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 diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm index 0d0c46e18bb..a11c59b89de 100644 --- a/src/tools/msvc/Install.pm +++ b/src/tools/msvc/Install.pm @@ -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'; diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm index 0cafd717a2b..217c47ab78a 100644 --- a/src/tools/msvc/MSBuildProject.pm +++ b/src/tools/msvc/MSBuildProject.pm @@ -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> diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index a4bd2b62107..e1650a98121 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -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}; diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm index 4182871e88e..9ca5b1f13ad 100644 --- a/src/tools/msvc/Project.pm +++ b/src/tools/msvc/Project.pm @@ -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 . " "; diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index e271ac8d9be..bc52086fc8a 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -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; diff --git a/src/tools/msvc/VCBuildProject.pm b/src/tools/msvc/VCBuildProject.pm index 624682601b3..1713cb5e3f8 100644 --- a/src/tools/msvc/VCBuildProject.pm +++ b/src/tools/msvc/VCBuildProject.pm @@ -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;' : ''; diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl index cdba9a5fb71..89bd31a306c 100644 --- a/src/tools/msvc/vcregress.pl +++ b/src/tools/msvc/vcregress.pl @@ -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; diff --git a/src/tools/pginclude/pgcheckdefines b/src/tools/pginclude/pgcheckdefines index 2936caf2e07..5db507070f6 100755 --- a/src/tools/pginclude/pgcheckdefines +++ b/src/tools/pginclude/pgcheckdefines @@ -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; - - # Expand out stuff that might be referenced in CFLAGS - $CFLAGS =~ s/\$\(CFLAGS_SL\)/$CFLAGS_SL/; - $CFLAGS =~ s/\$\(PTHREAD_CFLAGS\)/$PTHREAD_CFLAGS/; - - # - # 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: $_"; +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"; } - } - # 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; + 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'"; } - if ($line =~ m/^\s*#\s*ifndef\s+(\w+)/) { - $symbol = $1; - &checkit; + 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 ($line =~ m/^\s*#\s*if\s+/) { - $inif = 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; + + # Expand out stuff that might be referenced in CFLAGS + $CFLAGS =~ s/\$\(CFLAGS_SL\)/$CFLAGS_SL/; + $CFLAGS =~ s/\$\(PTHREAD_CFLAGS\)/$PTHREAD_CFLAGS/; + + # + # 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: $_"; + } } - if ($inif) { - while ($line =~ s/\bdefined(\s+|\s*\(\s*)(\w+)//) { - $symbol = $2; - &checkit; - } - if (!($line =~ m/\\$/)) { - $inif = 0; - } + + # 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; + close FILE; - chdir $topdir or die "can't chdir to $topdir: $!"; + 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; + } + + # + # 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; + } } - } - # - # 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'; + + # + # 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"; + + # + @places = keys %{ $defines{$symbol} }; + print "$file references $symbol, defined in @places\n"; + + # print "includes: @includes\n"; } diff --git a/src/tools/pgindent/README b/src/tools/pgindent/README index 34d59768fdc..16ee06119b0 100644 --- a/src/tools/pgindent/README +++ b/src/tools/pgindent/README @@ -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 diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index 44766e86d74..584218f384a 100755 --- a/src/tools/pgindent/pgindent +++ b/src/tools/pgindent/pgindent @@ -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 diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index a831a1e7a7b..b68a649e415 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -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 |