On 11/15/18, Andres Freund <and...@anarazel.de> wrote:
> I've now revised this slightly. genbki.pl now computes the maximum oid
> explicitly assigned in .dat files, and assignes oids to all 'oid'
> columns without a value.  It does so starting directly at the maximum
> value.  I personally don't see need to have implicit .bki oids be in a
> different range, and having them assigned more densely is good for some
> things (e.g. the fmgr builtins table, even though we currently assign
> all proc oids manually).

I don't see an advantage to having a different range, but maybe it
should error out if $maxoid reaches FirstBootstrapObjectId.

This patch breaks reformat_dat_file.pl. I've attached a fix, which
also de-lists oid as a special key within the *.dat files. It might be
good to put off reformatting until feature freeze, so as not to break
others' patches.

-John Naylor
diff --git a/src/include/catalog/reformat_dat_file.pl b/src/include/catalog/reformat_dat_file.pl
index ca20fb86da..14e561c168 100755
--- a/src/include/catalog/reformat_dat_file.pl
+++ b/src/include/catalog/reformat_dat_file.pl
@@ -28,8 +28,7 @@ use Catalog;
 
 # Names of the metadata fields of a catalog entry.  (line_number is also
 # a metadata field, but we never write it out, so it's not listed here.)
-my @METADATA =
-  ('oid', 'oid_symbol', 'array_type_oid', 'descr', 'autogenerated');
+my @METADATA = ('oid_symbol', 'array_type_oid', 'descr', 'autogenerated');
 
 my @input_files;
 my $output_path = '';
@@ -193,7 +192,7 @@ sub strip_default_values
 	{
 		my $attname = $column->{name};
 		die "strip_default_values: $catname.$attname undefined\n"
-		  if !defined $row->{$attname};
+		  if !defined $row->{$attname} and $attname ne 'oid';
 
 		if (defined $column->{default}
 			and ($row->{$attname} eq $column->{default}))

Reply via email to