I find the dependency is complex among header files in PG. At the same time, I find the existing code still can use the header file very cleanly/alphabetically. so I probably missed some knowledge here.
for example, when I want the LOCKTAG in .c file, which is defined in "storage/lock.h". then I wrote the code like this:
#include "storage/lock.h"
...
LOCKTAG tag;
compile and get errors.
In file included from
.../src/include/storage/lock.h:21:
/../../../src/include/storage/lockdefs.h:50:2: error: unknown type name
'TransactionId'
TransactionId xid; /* xid of holder of AccessExclusiveLock */
so I HAVE TO
1. include the header file which contains the TransactionId
2. add it before the lock.h.
normally I think we can add the dependency in lock.h directly to resolve this issue.
so how can I include header file effectively ?
Thanks