From 15c21b419c87d59d73e4f7ba706a988d2b63cd46 Mon Sep 17 00:00:00 2001 From: Fujii Masao 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 + +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 + +int +main(void) +{ + EXEC SQL ALLOCATE DESCRIPTOR mydesc; + EXEC SQL SET DESCRIPTOR mydesc COUNT = 1, COUNT = 2; + + return 0; +} -- 2.53.0