]> granicus.if.org Git - postgresql/commitdiff
Tweak reformat_dat_file.pl to make it more easily hand-invokable.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 28 Apr 2018 20:09:03 +0000 (16:09 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 28 Apr 2018 20:09:03 +0000 (16:09 -0400)
Use the same code we already applied in duplicate_oids and unused_oids
to let this script find Catalog.pm without help.  This removes the need
to supply a -I switch in most cases.

Also, mark the script executable, again to follow the precedent of
duplicate_oids and unused_oids.  Now you can just do
"./reformat_dat_file.pl pg_proc.dat"
if you want to reformat only one or a few .dat files rather than all.

It'd be possible to remove the -I switches in the Makefile's convenience
targets, but I chose to leave them: they don't hurt anything, and it's
possible that in weird VPATH situations they might be of value.

doc/src/sgml/bki.sgml
src/include/catalog/reformat_dat_file.pl [changed mode: 0644->0755]

index e7acd652e7612c069b2ade1d0f30da924f82602e..5b557ffb7bfba6a8b898a770a1166318096b984d 100644 (file)
         Run the new script:
 <programlisting>
 $ cd src/include/catalog
-$ perl -I ../../backend/catalog  rewrite_dat_with_prokind.pl  pg_proc.dat
+$ perl  rewrite_dat_with_prokind.pl  pg_proc.dat
 </programlisting>
         At this point <filename>pg_proc.dat</filename> has all three
         columns, <structfield>prokind</structfield>,
old mode 100644 (file)
new mode 100755 (executable)
index 4d2523c..00c4f2b
@@ -1,13 +1,14 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
 #----------------------------------------------------------------------
 #
 # reformat_dat_file.pl
-#    Perl script that reads in a catalog data file and writes out
-#    a functionally equivalent file in a standard format.
+#    Perl script that reads in catalog data file(s) and writes out
+#    functionally equivalent file(s) in a standard format.
 #
-#    Metadata entries (if any) come first, with normal attributes
-#    starting on the following line, in the same order they would be in
-#    the corresponding table. Comments and blank lines are preserved.
+#    In each entry of a reformatted file, metadata fields (if any) come
+#    first, with normal attributes starting on the following line, in
+#    the same order as the columns of the corresponding catalog.
+#    Comments and blank lines are preserved.
 #
 # Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
 #----------------------------------------------------------------------
 
-use Catalog;
-
 use strict;
 use warnings;
 
+# If you copy this script to somewhere other than src/include/catalog,
+# you'll need to modify this "use lib" or provide a suitable -I switch.
+use FindBin;
+use lib "$FindBin::RealBin/../../backend/catalog/";
+use Catalog;
+
 my @input_files;
 my $output_path = '';
 my $full_tuples = 0;
@@ -293,13 +298,10 @@ sub usage
 Usage: reformat_dat_file.pl [options] datafile...
 
 Options:
-    -o               output path
+    -o PATH          write output files to PATH instead of current directory
     --full-tuples    write out full tuples, including default values
 
 Expects a list of .dat files as arguments.
 
-Make sure location of Catalog.pm is passed to the perl interpreter:
-perl -I /path/to/Catalog.pm/ ...
-
 EOM
 }