Обсуждение: pgsql: Fix possible omission of variable storage markers in ECPG.

Поиск
Список
Период
Сортировка

pgsql: Fix possible omission of variable storage markers in ECPG.

От
Tom Lane
Дата:
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
------
REL_14_STABLE

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

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(-)