Other header files should never #include postgres.h (nor postgres_fe.h,
nor c.h), per project policy. Also, there's no need for any backend .c
file to explicitly include elog.h or palloc.h, because postgres.h pulls
those in already.
Extracted from a larger patch by Kyotaro Horiguchi. The rest of the
removals he suggests require more study, but these are no-brainers.
Discussion: https://postgr.es/m/
20180215.200447.
209320006.horiguchi.kyotaro@lab.ntt.co.jp
#include "nodes/bitmapset.h"
#include "utils/builtins.h"
#include "utils/memutils.h"
-#include "utils/palloc.h"
/*
* DiscreteKnapsack
#include "storage/fd.h"
#include "storage/ipc.h"
#include "utils/builtins.h"
-#include "utils/elog.h"
#include "utils/ps_status.h"
#include "utils/relcache.h"
#include "utils/timestamp.h"
#include "catalog/pg_type.h"
#include "common/config_info.h"
#include "utils/builtins.h"
-#include "utils/elog.h"
#include "port.h"
Datum
#include "miscadmin.h"
#include "utils/acl.h"
#include "utils/builtins.h"
-#include "utils/elog.h"
#include "utils/lsyscache.h"
#include "utils/rls.h"
#include "utils/syscache.h"
#ifndef KNAPSACK_H
#define KNAPSACK_H
-#include "postgres.h"
#include "nodes/bitmapset.h"
extern Bitmapset *DiscreteKnapsack(int max_weight, int num_items,
#ifndef PLPY_SPI_H
#define PLPY_SPI_H
-#include "utils/palloc.h"
#include "utils/resowner.h"
extern PyObject *PLy_spi_prepare(PyObject *self, PyObject *args);
#include "mb/pg_wchar.h"
#include "utils/memutils.h"
-#include "utils/palloc.h"
#include "plpython.h"