> > > > > /* > * For indexes, we follow what do_analyze_rel() does so as to avoid any > * deadlocks with analyze/vacuum, which is to take out a > * ShareUpdateExclusive on table/matview first and only after that take > * a a AccessShareLock on the index itself. > */ > there are two "a a". > > > #include "access/relation.h" > +#include "c.h" > +#include "catalog/pg_class_d.h" > #include "catalog/pg_database.h" > +#include "catalog/index.h" > +#include "storage/lockdefs.h" > +#include "storage/lmgr.h" > #include "utils/acl.h" > +#include "utils/lsyscache.h" > #include "utils/rel.h" > +#include "utils/syscache.h" > > +#include "c.h", no need. since we have "postgres.h" > +#include "storage/lockdefs.h" no need. because #include > "storage/lmgr.h" already have it. > +#include "utils/syscache.h" no need. because get_rel_relkind is in > ``#include "utils/lsyscache.h"`` > > > in pg_class.h we have > #include "catalog/pg_class_d.h" /* IWYU pragma: export */ > if i read > > https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUPragmas.md#iwyu-pragma-export > correctly. > here > +#include "catalog/pg_class_d.h" > should be > +#include "catalog/pg_class.h" >
Sorry about that, my nvim config is auto-including stuff and it's annoying.