I wrote:
> This works for me. One point that could stand discussion while we're
> here is whether the once-a-cycle run should use the verbatim buildfarm
> results or it's okay to editorialize on that typedefs list. I did a
> little of the latter in da256a4a7, and I feel like we should either
> bless that practice in this document or decide that it was a bad idea.
> For reference, what I added to the buildfarm's list was
> +InjectionPointCacheEntry
> +InjectionPointCondition
> +InjectionPointConditionType
> +InjectionPointEntry
> +InjectionPointSharedState
> +NotificationHash
> +ReadBuffersFlags
> +ResourceOwnerData
> +WaitEventExtension
> +WalSyncMethod
I realized that the reason the InjectionPoint typedefs were missing
is that none of the buildfarm animals that contribute typedefs are
building with --enable-injection-points. I rectified that on sifaka,
and now those are in the list available from the buildfarm.
As for the remainder, they aren't showing up because no variable
or field is declared using them, which means no debug symbol
table entry is made for them. This means we could just drop those
typedefs and be little the worse off notationally. I experimented
with a patch for that, as attached. (In the case of NotificationHash,
I thought it better to arrange for there to be a suitable variable;
but it could certainly be done the other way too.) Is this too anal?
regards, tom lane
diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c
index d0891e3f0e..6861f028d2 100644
--- a/src/backend/commands/async.c
+++ b/src/backend/commands/async.c
@@ -2253,10 +2253,13 @@ AsyncExistsPendingNotify(Notification *n)
if (pendingNotifies->hashtab != NULL)
{
/* Use the hash table to probe for a match */
- if (hash_search(pendingNotifies->hashtab,
- &n,
- HASH_FIND,
- NULL))
+ NotificationHash *ent;
+
+ ent = hash_search(pendingNotifies->hashtab,
+ &n,
+ HASH_FIND,
+ NULL);
+ if (ent)
return true;
}
else
diff --git a/src/backend/utils/resowner/resowner.c b/src/backend/utils/resowner/resowner.c
index ab9343bc5c..3bde0eba4d 100644
--- a/src/backend/utils/resowner/resowner.c
+++ b/src/backend/utils/resowner/resowner.c
@@ -107,7 +107,7 @@ StaticAssertDecl(RESOWNER_HASH_MAX_ITEMS(RESOWNER_HASH_INIT_SIZE) >= RESOWNER_AR
/*
* ResourceOwner objects look like this
*/
-typedef struct ResourceOwnerData
+struct ResourceOwnerData
{
ResourceOwner parent; /* NULL if no parent (toplevel owner) */
ResourceOwner firstchild; /* head of linked list of children */
@@ -155,7 +155,7 @@ typedef struct ResourceOwnerData
/* The local locks cache. */
LOCALLOCK *locks[MAX_RESOWNER_LOCKS]; /* list of owned locks */
-} ResourceOwnerData;
+};
/*****************************************************************************
@@ -415,7 +415,7 @@ ResourceOwnerCreate(ResourceOwner parent, const char *name)
ResourceOwner owner;
owner = (ResourceOwner) MemoryContextAllocZero(TopMemoryContext,
- sizeof(ResourceOwnerData));
+ sizeof(*owner));
owner->name = name;
if (parent)
diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h
index 76787a8267..1a1f11a943 100644
--- a/src/include/access/xlog.h
+++ b/src/include/access/xlog.h
@@ -19,14 +19,14 @@
/* Sync methods */
-typedef enum WalSyncMethod
+enum WalSyncMethod
{
WAL_SYNC_METHOD_FSYNC = 0,
WAL_SYNC_METHOD_FDATASYNC,
WAL_SYNC_METHOD_OPEN, /* for O_SYNC */
WAL_SYNC_METHOD_FSYNC_WRITETHROUGH,
WAL_SYNC_METHOD_OPEN_DSYNC /* for O_DSYNC */
-} WalSyncMethod;
+};
extern PGDLLIMPORT int wal_sync_method;
extern PGDLLIMPORT XLogRecPtr ProcLastRecPtr;
diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h
index 42211bfec4..edb7011743 100644
--- a/src/include/storage/bufmgr.h
+++ b/src/include/storage/bufmgr.h
@@ -107,14 +107,14 @@ typedef struct BufferManagerRelation
#define BMR_REL(p_rel) ((BufferManagerRelation){.rel = p_rel})
#define BMR_SMGR(p_smgr, p_relpersistence) ((BufferManagerRelation){.smgr = p_smgr, .relpersistence = p_relpersistence})
-typedef enum ReadBuffersFlags
+enum ReadBuffersFlags
{
/* Zero out page if reading fails. */
READ_BUFFERS_ZERO_ON_ERROR = (1 << 0),
/* Call smgrprefetch() if I/O necessary. */
READ_BUFFERS_ISSUE_ADVICE = (1 << 1),
-} ReadBuffersFlags;
+};
struct ReadBuffersOperation
{
diff --git a/src/include/utils/wait_event.h b/src/include/utils/wait_event.h
index 080e92d1cf..72c4d60930 100644
--- a/src/include/utils/wait_event.h
+++ b/src/include/utils/wait_event.h
@@ -53,11 +53,11 @@ extern PGDLLIMPORT uint32 *my_wait_event_info;
*
* The ID retrieved can be used with pgstat_report_wait_start() or equivalent.
*/
-typedef enum
+enum WaitEventExtension
{
WAIT_EVENT_EXTENSION = PG_WAIT_EXTENSION,
WAIT_EVENT_EXTENSION_FIRST_USER_DEFINED,
-} WaitEventExtension;
+};
extern void WaitEventExtensionShmemInit(void);
extern Size WaitEventExtensionShmemSize(void);
diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list
index 2b83c340fb..a5cf553c4b 100644
--- a/src/tools/pgindent/typedefs.list
+++ b/src/tools/pgindent/typedefs.list
@@ -1231,6 +1231,7 @@ InitSampleScan_function
InitializeDSMForeignScan_function
InitializeWorkerForeignScan_function
InjectionPointCacheEntry
+InjectionPointCallback
InjectionPointCondition
InjectionPointConditionType
InjectionPointEntry
@@ -2326,7 +2327,6 @@ ReInitializeDSMForeignScan_function
ReScanForeignScan_function
ReadBufPtrType
ReadBufferMode
-ReadBuffersFlags
ReadBuffersOperation
ReadBytePtrType
ReadExtraTocPtrType
@@ -2443,7 +2443,6 @@ ReservoirState
ReservoirStateData
ResourceElem
ResourceOwner
-ResourceOwnerData
ResourceOwnerDesc
ResourceReleaseCallback
ResourceReleaseCallbackItem
@@ -3100,7 +3099,6 @@ WaitEvent
WaitEventActivity
WaitEventBufferPin
WaitEventClient
-WaitEventExtension
WaitEventExtensionCounterData
WaitEventExtensionEntryById
WaitEventExtensionEntryByName
@@ -3128,7 +3126,6 @@ WalSndState
WalSummarizerData
WalSummaryFile
WalSummaryIO
-WalSyncMethod
WalTimeSample
WalUsage
WalWriteMethod