On 11/15/18, Andres Freund <[email protected]> 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}))