PG17-0001-ECPG-Reject-multiple-headers-in-GET-SET-DESCRIPTOR-a.patch

application/octet-stream

Filename: PG17-0001-ECPG-Reject-multiple-headers-in-GET-SET-DESCRIPTOR-a.patch
Type: application/octet-stream
Part: 3
Message: RE: ECPG: inconsistent behavior with the document in “GET/SET DESCRIPTOR.”

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: format-patch
Series: patch 0001
Subject: ECPG: Reject multiple headers in GET/SET DESCRIPTOR at precompile phase
File+
doc/src/sgml/ecpg.sgml 2 2
src/interfaces/ecpg/preproc/ecpg.trailer 2 10
From 9b4f849f0e3066df3260261bc645cdeb018cca62 Mon Sep 17 00:00:00 2001
From: "kamura.masashi" <kamura.masashi@jp.fujitsu.com>
Date: Thu, 4 Jun 2026 17:32:41 +0900
Subject: [PATCH] ECPG: Reject multiple headers in GET/SET DESCRIPTOR at
 precompile phase

---
 doc/src/sgml/ecpg.sgml                   |  4 ++--
 src/interfaces/ecpg/preproc/ecpg.trailer | 12 ++----------
 2 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml
index d6f1161374c..506694825ad 100644
--- a/doc/src/sgml/ecpg.sgml
+++ b/doc/src/sgml/ecpg.sgml
@@ -7314,7 +7314,7 @@ EXEC SQL EXECUTE IMMEDIATE :command;
 
    <refsynopsisdiv>
 <synopsis>
-GET DESCRIPTOR <replaceable class="parameter">descriptor_name</replaceable> <replaceable class="parameter">:cvariable</replaceable> = <replaceable class="parameter">descriptor_header_item</replaceable> [, ... ]
+GET DESCRIPTOR <replaceable class="parameter">descriptor_name</replaceable> <replaceable class="parameter">:cvariable</replaceable> = <replaceable class="parameter">descriptor_header_item</replaceable>
 GET DESCRIPTOR <replaceable class="parameter">descriptor_name</replaceable> VALUE <replaceable class="parameter">column_number</replaceable> <replaceable class="parameter">:cvariable</replaceable> = <replaceable class="parameter">descriptor_item</replaceable> [, ... ]
 </synopsis>
    </refsynopsisdiv>
@@ -7809,7 +7809,7 @@ EXEC SQL SET CONNECTION = con1;
 
    <refsynopsisdiv>
 <synopsis>
-SET DESCRIPTOR <replaceable class="parameter">descriptor_name</replaceable> <replaceable class="parameter">descriptor_header_item</replaceable> = <replaceable>value</replaceable> [, ... ]
+SET DESCRIPTOR <replaceable class="parameter">descriptor_name</replaceable> <replaceable class="parameter">descriptor_header_item</replaceable> = <replaceable>value</replaceable>
 SET DESCRIPTOR <replaceable class="parameter">descriptor_name</replaceable> VALUE <replaceable class="parameter">number</replaceable> <replaceable class="parameter">descriptor_item</replaceable> = <replaceable>value</replaceable> [, ...]
 </synopsis>
    </refsynopsisdiv>
diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer
index b2aa44f36dd..ec21cc3b19e 100644
--- a/src/interfaces/ecpg/preproc/ecpg.trailer
+++ b/src/interfaces/ecpg/preproc/ecpg.trailer
@@ -1282,27 +1282,19 @@ ECPGDeallocateDescr:	DEALLOCATE SQL_DESCRIPTOR quoted_ident_stringvar
  * manipulate a descriptor header
  */
 
-ECPGGetDescriptorHeader: SQL_GET SQL_DESCRIPTOR quoted_ident_stringvar ECPGGetDescHeaderItems
+ECPGGetDescriptorHeader: SQL_GET SQL_DESCRIPTOR quoted_ident_stringvar ECPGGetDescHeaderItem
 			{  $$ = $3; }
 		;
 
-ECPGGetDescHeaderItems: ECPGGetDescHeaderItem
-		| ECPGGetDescHeaderItems ',' ECPGGetDescHeaderItem
-		;
-
 ECPGGetDescHeaderItem: cvariable '=' desc_header_item
 			{ push_assignment($1, $3); }
 		;
 
 
-ECPGSetDescriptorHeader: SET SQL_DESCRIPTOR quoted_ident_stringvar ECPGSetDescHeaderItems
+ECPGSetDescriptorHeader: SET SQL_DESCRIPTOR quoted_ident_stringvar ECPGSetDescHeaderItem
 			{ $$ = $3; }
 		;
 
-ECPGSetDescHeaderItems: ECPGSetDescHeaderItem
-		| ECPGSetDescHeaderItems ',' ECPGSetDescHeaderItem
-		;
-
 ECPGSetDescHeaderItem: desc_header_item '=' IntConstVar
 		{
 			push_assignment($3, $1);
-- 
2.43.5