PG18-0001-ECPG-Reject-multiple-headers-in-GET-SET-DESCRIPTOR-a.patch
application/octet-stream
Filename: PG18-0001-ECPG-Reject-multiple-headers-in-GET-SET-DESCRIPTOR-a.patch
Type: application/octet-stream
Part: 4
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 9c7b21d61f6f000ac933371d105e978c062a2300 Mon Sep 17 00:00:00 2001
From: "kamura.masashi" <kamura.masashi@jp.fujitsu.com>
Date: Thu, 4 Jun 2026 17:35:29 +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 390e7713bfb..f3f63b8622e 100644
--- a/src/interfaces/ecpg/preproc/ecpg.trailer
+++ b/src/interfaces/ecpg/preproc/ecpg.trailer
@@ -1421,32 +1421,24 @@ 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