From b706c2337865d28bc56bf2ae3f5e949921bc85d9 Mon Sep 17 00:00:00 2001
From: John Naylor <jcnaylor@gmail.com>
Date: Thu, 14 Dec 2017 11:52:37 +0700
Subject: [PATCH 02/10] Cleanup distprep scripts

Be more consistent style-wise, change a confusing variable name, fix perltidy junk.
---
 src/backend/catalog/Catalog.pm   | 14 +++++++-------
 src/backend/catalog/genbki.pl    | 38 +++++++++++++++++++++-----------------
 src/backend/utils/Gen_fmgrtab.pl |  5 +++--
 3 files changed, 31 insertions(+), 26 deletions(-)

diff --git a/src/backend/catalog/Catalog.pm b/src/backend/catalog/Catalog.pm
index 0b260ec..6bc14d2 100644
--- a/src/backend/catalog/Catalog.pm
+++ b/src/backend/catalog/Catalog.pm
@@ -163,7 +163,7 @@ sub Catalogs
 				  /BKI_WITHOUT_OIDS/ ? ' without_oids' : '';
 				$catalog{rowtype_oid} =
 				  /BKI_ROWTYPE_OID\((\d+)\)/ ? " rowtype_oid $1" : '';
-				$catalog{schema_macro} = /BKI_SCHEMA_MACRO/ ? 'True' : '';
+				$catalog{schema_macro} = /BKI_SCHEMA_MACRO/ ? 1 : 0;
 				$declaring_attributes = 1;
 			}
 			elsif ($declaring_attributes)
@@ -176,7 +176,7 @@ sub Catalogs
 				}
 				else
 				{
-					my %row;
+					my %column;
 					my ($atttype, $attname, $attopt) = split /\s+/, $_;
 					die "parse error ($input_file)" unless $attname;
 					if (exists $RENAME_ATTTYPE{$atttype})
@@ -189,18 +189,18 @@ sub Catalogs
 						$atttype .= '[]';            # variable-length only
 					}
 
-					$row{'type'} = $atttype;
-					$row{'name'} = $attname;
+					$column{type} = $atttype;
+					$column{name} = $attname;
 
 					if (defined $attopt)
 					{
 						if ($attopt eq 'BKI_FORCE_NULL')
 						{
-							$row{'forcenull'} = 1;
+							$column{forcenull} = 1;
 						}
 						elsif ($attopt eq 'BKI_FORCE_NOT_NULL')
 						{
-							$row{'forcenotnull'} = 1;
+							$column{forcenotnull} = 1;
 						}
 						else
 						{
@@ -208,7 +208,7 @@ sub Catalogs
 "unknown column option $attopt on column $attname";
 						}
 					}
-					push @{ $catalog{columns} }, \%row;
+					push @{ $catalog{columns} }, \%column;
 				}
 			}
 		}
diff --git a/src/backend/catalog/genbki.pl b/src/backend/catalog/genbki.pl
index 256a9c9..4bd614f 100644
--- a/src/backend/catalog/genbki.pl
+++ b/src/backend/catalog/genbki.pl
@@ -20,7 +20,7 @@ use strict;
 use warnings;
 
 my @input_files;
-our @include_path;
+my @include_path;
 my $output_path = '';
 my $major_version;
 
@@ -105,7 +105,7 @@ print $bki "# PostgreSQL $major_version\n";
 my %schemapg_entries;
 my @tables_needing_macros;
 my %regprocoids;
-our @types;
+my @types;
 
 # produce output, one catalog at a time
 foreach my $catname (@{ $catalogs->{names} })
@@ -124,7 +124,8 @@ foreach my $catname (@{ $catalogs->{names} })
 	my $first = 1;
 
 	print $bki " (\n";
-	foreach my $column (@{ $catalog->{columns} })
+	my $schema = $catalog->{columns};
+	foreach my $column (@$schema)
 	{
 		my $attname = $column->{name};
 		my $atttype = $column->{type};
@@ -150,8 +151,9 @@ foreach my $catname (@{ $catalogs->{names} })
 	}
 	print $bki "\n )\n";
 
-   # open it, unless bootstrap case (create bootstrap does this automatically)
-	if ($catalog->{bootstrap} eq '')
+	# Open it, unless bootstrap case (create bootstrap does this
+	# automatically)
+	if (!$catalog->{bootstrap})
 	{
 		print $bki "open $catname\n";
 	}
@@ -169,21 +171,23 @@ foreach my $catname (@{ $catalogs->{names} })
 			  Catalog::SplitDataLine($row->{bki_values});
 
 			# Perform required substitutions on fields
-			foreach my $att (keys %bki_values)
+			foreach my $column (@$schema)
 			{
+				my $attname = $column->{name};
+				my $atttype = $column->{type};
 
 				# Substitute constant values we acquired above.
 				# (It's intentional that this can apply to parts of a field).
-				$bki_values{$att} =~ s/\bPGUID\b/$BOOTSTRAP_SUPERUSERID/g;
-				$bki_values{$att} =~ s/\bPGNSP\b/$PG_CATALOG_NAMESPACE/g;
+				$bki_values{$attname} =~ s/\bPGUID\b/$BOOTSTRAP_SUPERUSERID/g;
+				$bki_values{$attname} =~ s/\bPGNSP\b/$PG_CATALOG_NAMESPACE/g;
 
 				# Replace regproc columns' values with OIDs.
 				# If we don't have a unique value to substitute,
 				# just do nothing (regprocin will complain).
-				if ($bki_attr{$att}->{type} eq 'regproc')
+				if ($atttype eq 'regproc')
 				{
-					my $procoid = $regprocoids{ $bki_values{$att} };
-					$bki_values{$att} = $procoid
+					my $procoid = $regprocoids{ $bki_values{$attname} };
+					$bki_values{$attname} = $procoid
 					  if defined($procoid) && $procoid ne 'MULTIPLE';
 				}
 			}
@@ -215,7 +219,8 @@ foreach my $catname (@{ $catalogs->{names} })
 			printf $bki "insert %s( %s )\n", $oid,
 			  join(' ', @bki_values{@attnames});
 
-		   # Write comments to postgres.description and postgres.shdescription
+			# Write comments to postgres.description and
+			# postgres.shdescription
 			if (defined $row->{descr})
 			{
 				printf $descr "%s\t%s\t0\t%s\n", $row->{oid}, $catname,
@@ -240,11 +245,10 @@ foreach my $catname (@{ $catalogs->{names} })
 
 			# Currently, all bootstrapped relations also need schemapg.h
 			# entries, so skip if the relation isn't to be in schemapg.h.
-			next if $table->{schema_macro} ne 'True';
+			next if !$table->{schema_macro};
 
 			$schemapg_entries{$table_name} = [];
 			push @tables_needing_macros, $table_name;
-			my $is_bootstrap = $table->{bootstrap};
 
 			# Generate entries for user attributes.
 			my $attnum       = 0;
@@ -259,7 +263,7 @@ foreach my $catname (@{ $catalogs->{names} })
 				$priornotnull &= ($row->{attnotnull} eq 't');
 
 				# If it's bootstrapped, put an entry in postgres.bki.
-				if ($is_bootstrap eq ' bootstrap')
+				if ($table->{bootstrap})
 				{
 					bki_insert($row, @attnames);
 				}
@@ -276,7 +280,7 @@ foreach my $catname (@{ $catalogs->{names} })
 
 			# Generate entries for system attributes.
 			# We only need postgres.bki entries, not schemapg.h entries.
-			if ($is_bootstrap eq ' bootstrap')
+			if ($table->{bootstrap})
 			{
 				$attnum = 0;
 				my @SYS_ATTRS = (
@@ -296,7 +300,7 @@ foreach my $catname (@{ $catalogs->{names} })
 
 					# some catalogs don't have oids
 					next
-					  if $table->{without_oids} eq ' without_oids'
+					  if $table->{without_oids}
 						  && $row->{attname} eq 'oid';
 
 					bki_insert($row, @attnames);
diff --git a/src/backend/utils/Gen_fmgrtab.pl b/src/backend/utils/Gen_fmgrtab.pl
index c0efc07..a51a755 100644
--- a/src/backend/utils/Gen_fmgrtab.pl
+++ b/src/backend/utils/Gen_fmgrtab.pl
@@ -57,6 +57,8 @@ die "No include path; you must specify -I at least once.\n" if !@include_path;
 
 my $FirstBootstrapObjectId =
 	Catalog::FindDefinedSymbol('access/transam.h', \@include_path, 'FirstBootstrapObjectId');
+my $INTERNALlanguageId =
+	Catalog::FindDefinedSymbol('catalog/pg_language.h', \@include_path, 'INTERNALlanguageId');
 
 # Read all the data from the include/catalog files.
 my $catalogs = Catalog::Catalogs($infile);
@@ -78,8 +80,7 @@ foreach my $row (@$data)
 	@bki_values{@attnames} = Catalog::SplitDataLine($row->{bki_values});
 
 	# Select out just the rows for internal-language procedures.
-	# Note assumption here that INTERNALlanguageId is 12.
-	next if $bki_values{prolang} ne '12';
+	next if $bki_values{prolang} ne $INTERNALlanguageId;
 
 	push @fmgr,
 	  { oid    => $row->{oid},
-- 
2.7.4

