add-pq_send_buffer_size-GUC.patch

application/x-patch

Filename: add-pq_send_buffer_size-GUC.patch
Type: application/x-patch
Part: 0
Message: Re: Flushing large data immediately in pqcomm

Patch

Format: format-patch
Subject: Added pq_send_buffer_size GUC
File+
src/backend/libpq/pqcomm.c 1 1
src/backend/utils/misc/guc_tables.c 11 0
src/include/libpq/libpq.h 1 0
From 7f1b72a0948156f8e35ce3b07b5e763a5578d641 Mon Sep 17 00:00:00 2001
From: Melih Mutlu <m.melihmutlu@gmail.com>
Date: Mon, 26 Feb 2024 14:41:35 +0300
Subject: [PATCH] Added pq_send_buffer_size GUC

---
 src/backend/libpq/pqcomm.c          |  2 +-
 src/backend/utils/misc/guc_tables.c | 11 +++++++++++
 src/include/libpq/libpq.h           |  1 +
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index c606bf3447..92708e46e6 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -116,7 +116,7 @@ static List *sock_paths = NIL;
  * enlarged by pq_putmessage_noblock() if the message doesn't fit otherwise.
  */
 
-#define PQ_SEND_BUFFER_SIZE 8192
+int PQ_SEND_BUFFER_SIZE = 8192;
 #define PQ_RECV_BUFFER_SIZE 8192
 
 static char *PqSendBuffer;
diff --git a/src/backend/utils/misc/guc_tables.c b/src/backend/utils/misc/guc_tables.c
index 527a2b2734..1f198b19ca 100644
--- a/src/backend/utils/misc/guc_tables.c
+++ b/src/backend/utils/misc/guc_tables.c
@@ -3595,6 +3595,17 @@ struct config_int ConfigureNamesInt[] =
 		NULL, NULL, NULL
 	},
 
+	{
+		{"pq_send_buffer_size", PGC_USERSET, DEVELOPER_OPTIONS,
+			gettext_noop("Sets the PqSendBufferSize"),
+			NULL,
+			GUC_NOT_IN_SAMPLE | GUC_UNIT_BYTE
+		},
+		&PQ_SEND_BUFFER_SIZE,
+		8192, 0, MAX_KILOBYTES,
+		NULL, NULL, NULL
+	},
+
 	/* End-of-list marker */
 	{
 		{NULL, 0, 0, NULL, NULL}, NULL, 0, 0, 0, NULL, NULL, NULL
diff --git a/src/include/libpq/libpq.h b/src/include/libpq/libpq.h
index 6171a0d17a..37e91008fb 100644
--- a/src/include/libpq/libpq.h
+++ b/src/include/libpq/libpq.h
@@ -123,6 +123,7 @@ extern PGDLLIMPORT char *SSLECDHCurve;
 extern PGDLLIMPORT bool SSLPreferServerCiphers;
 extern PGDLLIMPORT int ssl_min_protocol_version;
 extern PGDLLIMPORT int ssl_max_protocol_version;
+extern PGDLLIMPORT int PQ_SEND_BUFFER_SIZE;
 
 enum ssl_protocol_versions
 {
-- 
2.34.1