Hi John, On Fri, Feb 14, 2020 at 6:50 PM John Naylor <john.nay...@2ndquadrant.com> wrote: > On Fri, Feb 14, 2020 at 5:00 PM Amit Langote <amitlangot...@gmail.com> wrote: > > I tried and think it works but not sure if that's good Perl > > programming. See the attached. > > Hi Amit, > I took this for a spin -- I just have a couple comments.
Thanks for chiming in. > + elsif ($attname eq 'relnatts') > + { > + ; > + } > > With your patch, I get this when running > src/include/catalog/reformat_dat_file.pl: > > strip_default_values: pg_class.relnatts undefined I think I have fixed this in the attached. > + if ($catname eq "pg_class" && $attname eq "relnatts") > + { > + $bki_values{$attname} = $catalog_ncols{$bki_values{relname}}; > + } > + > > You could avoid the name/attr checks if you do it while building the > pg_class lookup table, like this: > > foreach my $row (@{ $catalog_data{pg_class} }) > { > $classoids{ $row->{relname} } = $row->{oid}; > + > + # Also fill in correct value for relnatts. > + $row->{relnatts} = $catalog_ncols{ $row->{relname} }; > } Did this too. Attached updated patch, which also addresses Michael's comment. I'm still trying to understand your comment about using placeholder BKI_DEFAULT... Thanks, Amit
v2-0001-Don-t-require-relnatts-to-be-specified-in-pg_clas.patch
Description: Binary data