From 15c21b419c87d59d73e4f7ba706a988d2b63cd46 Mon Sep 17 00:00:00 2001
From: Fujii Masao <fujii@postgresql.org>
Date: Fri, 29 May 2026 11:32:43 +0900
Subject: [PATCH v1] Add regression tests to verify that duplicate COUNT
 specifications are rejected.

---
 .../ecpg/preproc/t/001_ecpg_err_warn_msg.pl     | 10 ++++++++++
 .../t/duplicate_descriptor_header_get.pgc       | 17 +++++++++++++++++
 .../t/duplicate_descriptor_header_set.pgc       | 12 ++++++++++++
 3 files changed, 39 insertions(+)
 create mode 100644 src/interfaces/ecpg/preproc/t/duplicate_descriptor_header_get.pgc
 create mode 100644 src/interfaces/ecpg/preproc/t/duplicate_descriptor_header_set.pgc

diff --git a/src/interfaces/ecpg/preproc/t/001_ecpg_err_warn_msg.pl b/src/interfaces/ecpg/preproc/t/001_ecpg_err_warn_msg.pl
index 4ff6b6ac93e..f420f8dbe7d 100644
--- a/src/interfaces/ecpg/preproc/t/001_ecpg_err_warn_msg.pl
+++ b/src/interfaces/ecpg/preproc/t/001_ecpg_err_warn_msg.pl
@@ -37,4 +37,14 @@ command_checks_all(
 	],
 	'ecpg with errors and warnings');
 
+command_fails_like(
+	[ 'ecpg', 't/duplicate_descriptor_header_get.pgc' ],
+	qr/syntax error at or near ","/,
+	'ecpg rejects duplicate GET DESCRIPTOR header items');
+
+command_fails_like(
+	[ 'ecpg', 't/duplicate_descriptor_header_set.pgc' ],
+	qr/syntax error at or near ","/,
+	'ecpg rejects duplicate SET DESCRIPTOR header items');
+
 done_testing();
diff --git a/src/interfaces/ecpg/preproc/t/duplicate_descriptor_header_get.pgc b/src/interfaces/ecpg/preproc/t/duplicate_descriptor_header_get.pgc
new file mode 100644
index 00000000000..1fc54403e69
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/t/duplicate_descriptor_header_get.pgc
@@ -0,0 +1,17 @@
+/* Test duplicate GET DESCRIPTOR header items */
+
+#include <stdlib.h>
+
+int
+main(void)
+{
+	EXEC SQL BEGIN DECLARE SECTION;
+	int desc_count1;
+	int desc_count2;
+	EXEC SQL END DECLARE SECTION;
+
+	EXEC SQL ALLOCATE DESCRIPTOR mydesc;
+	EXEC SQL GET DESCRIPTOR mydesc :desc_count1 = COUNT, :desc_count2 = COUNT;
+
+	return 0;
+}
diff --git a/src/interfaces/ecpg/preproc/t/duplicate_descriptor_header_set.pgc b/src/interfaces/ecpg/preproc/t/duplicate_descriptor_header_set.pgc
new file mode 100644
index 00000000000..5fa7b02f5c3
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/t/duplicate_descriptor_header_set.pgc
@@ -0,0 +1,12 @@
+/* Test duplicate SET DESCRIPTOR header items */
+
+#include <stdlib.h>
+
+int
+main(void)
+{
+	EXEC SQL ALLOCATE DESCRIPTOR mydesc;
+	EXEC SQL SET DESCRIPTOR mydesc COUNT = 1, COUNT = 2;
+
+	return 0;
+}
-- 
2.53.0

