pgsql: Fix possible omission of variable storage markers in ECPG. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix possible omission of variable storage markers in ECPG.
Date
Msg-id E1oWjlc-002BpS-SL@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix possible omission of variable storage markers in ECPG.

The ECPG preprocessor converted code such as

static varchar str1[10], str2[20], str3[30];

into

static  struct varchar_1  { int len; char arr[ 10 ]; }  str1 ;
        struct varchar_2  { int len; char arr[ 20 ]; }  str2 ;
        struct varchar_3  { int len; char arr[ 30 ]; }  str3 ;

thus losing the storage attribute for the later variables.
Repeat the declaration for each such variable.

(Note that this occurred only for variables declared "varchar"
or "bytea", which may help explain how it escaped detection
for so long.)

Andrey Sokolov

Discussion: https://postgr.es/m/942241662288242@mail.yandex.ru

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b7050e2584803a6abe71fb0b94a63b63e59cff9c

Modified Files
--------------
src/interfaces/ecpg/preproc/ecpg.trailer           |   8 +-
src/interfaces/ecpg/preproc/type.h                 |   1 +
.../ecpg/test/expected/preproc-variable.c          |  93 +++++++-----
.../ecpg/test/expected/preproc-variable.stderr     | 162 ++++++++++-----------
.../ecpg/test/expected/preproc-variable.stdout     |   1 +
src/interfaces/ecpg/test/preproc/variable.pgc      |   9 ++
6 files changed, 151 insertions(+), 123 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Doc: improve documentation about where the psqlrc files are.
Next
From: Andres Freund
Date:
Subject: pgsql: aix: No need to use mkldexport when we want to export all symbol