Remove unused struct fields
Hi hackers,
Here are a few fields that are not used.
1) username in scram_state:
Added and used in 818fd4a67d61.
Usage removed in f3049a603a7.
2) mask in PgAioWorkerSubmissionQueue:
Added in and not used since 247ce06b883d.
3) write_page in SharedTuplestoreAccessor:
Added in and not used since ab9e0e718acb.
Those have been found with a coccinelle script [1]https://github.com/bdrouvot/coccinelle_on_pg/blob/main/misc/unused_struct_fields.cocci.
Note that it generates a lot of false positives and requires careful manual
review. I'll try to improve it if time permits.
[1]: https://github.com/bdrouvot/coccinelle_on_pg/blob/main/misc/unused_struct_fields.cocci
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
Attachments:
v1-0001-Remove-unused-struct-fields.patchtext/x-diff; charset=us-asciiDownload
From 7e256e4ac5fe8f3ca3b216d3edbc6bb9f712c90c Mon Sep 17 00:00:00 2001
From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Date: Sat, 22 Nov 2025 11:53:43 +0000
Subject: [PATCH v1] Remove unused struct fields
Remove a few fields that are not used.
- username in scram_state:
Added and used in 818fd4a67d61.
Usage removed in f3049a603a7.
- mask in PgAioWorkerSubmissionQueue:
Added in and not used since 247ce06b883d.
- write_page in SharedTuplestoreAccessor:
Added in and not used since ab9e0e718acb.
---
src/backend/libpq/auth-scram.c | 4 +---
src/backend/storage/aio/method_worker.c | 1 -
src/backend/utils/sort/sharedtuplestore.c | 3 +--
3 files changed, 2 insertions(+), 6 deletions(-)
38.6% src/backend/libpq/
3.9% src/backend/storage/aio/
57.4% src/backend/utils/sort/
diff --git a/src/backend/libpq/auth-scram.c b/src/backend/libpq/auth-scram.c
index db778405724..77b6735bc24 100644
--- a/src/backend/libpq/auth-scram.c
+++ b/src/backend/libpq/auth-scram.c
@@ -132,9 +132,7 @@ typedef enum
typedef struct
{
- scram_state_enum state;
-
- const char *username; /* username from startup packet */
+ scram_state_enum state; /* username from startup packet */
Port *port;
bool channel_binding_in_use;
diff --git a/src/backend/storage/aio/method_worker.c b/src/backend/storage/aio/method_worker.c
index b5ac073a910..866a35abbd1 100644
--- a/src/backend/storage/aio/method_worker.c
+++ b/src/backend/storage/aio/method_worker.c
@@ -55,7 +55,6 @@
typedef struct PgAioWorkerSubmissionQueue
{
uint32 size;
- uint32 mask;
uint32 head;
uint32 tail;
int sqes[FLEXIBLE_ARRAY_MEMBER];
diff --git a/src/backend/utils/sort/sharedtuplestore.c b/src/backend/utils/sort/sharedtuplestore.c
index 2f031c32909..9a5a18953d5 100644
--- a/src/backend/utils/sort/sharedtuplestore.c
+++ b/src/backend/utils/sort/sharedtuplestore.c
@@ -87,8 +87,7 @@ struct SharedTuplestoreAccessor
/* State for writing. */
SharedTuplestoreChunk *write_chunk; /* Buffer for writing. */
- BufFile *write_file; /* The current file to write to. */
- BlockNumber write_page; /* The next page to write to. */
+ BufFile *write_file; /* The current file to write to. */ /* The next page to write to. */
char *write_pointer; /* Current write pointer within chunk. */
char *write_end; /* One past the end of the current chunk. */
};
--
2.34.1
On Wed, Nov 26, 2025 at 02:54:48PM +0000, Bertrand Drouvot wrote:
Here are a few fields that are not used.
- const char *username; /* username from startup packet */
+ scram_state_enum state; /* username from startup packet */
- BlockNumber write_page; /* The next page to write to. */
+ BufFile *write_file; /* The current file to write to. */ /* The next page to write to. */
Something weird happened with the comments for these two. Otherwise, this
seems reasonable to me.
--
nathan