Hi,
 
The ECPG preprocessor converts the code
"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 ;".
Storage declaration applies only to the first structure.
 
The patch in the attachment fixes the bug. Storage declaration will be repeated before each structure.
The patch is on github too: https://github.com/andr-sokolov/postgresql/commit/c8f8fc7a211938569e7d46c91a428d8cb25b6f9c
 
--
Andrey Sokolov
Arenadata            https://arenadata.tech/