On 4/26/18, Stas Kelvich <s.kelv...@postgrespro.ru> wrote: > New version is attached. I've put iterator into Catalog.pm to avoid > copy-pasting > it over two scripts. Also instead of greping through *.dat and *.h files > I've > used parsers provided in Catalog module. That way should be more > sustainable > to format changes. > > Anyone who wanted to help with scripts -- feel free to rewrite.
Looks pretty good. Some comments: Just after you posted, I sent a patch that tweaks the API of Catalog.pm for toast and index oids. If you use that API in your patch, you can get rid of the extra bookkeeping you added for those oids. The original scripts skipped the relation and rowtype oids for bootstrap catalogs. You've replaced that with two data-level tests for pg_class plus pg_type composite types. I think the original test was a bit cleaner in this regard. For this type of call: +my @oids = @{ Catalog::FindAllOidsFromHeaders(@input_files) }; +foreach my $oid (@oids) this style is used by other callers of the module: +my $oids = Catalog::FindAllOidsFromHeaders(@input_files); +foreach my $oid (@{ $oids }) For those following along, these scripts still assume we're in the catalog directory. I can hack on that part tomorrow if no one else has. -John Naylor