Thread: Re: [BUG] Storage declaration in ECPG

Re: [BUG] Storage declaration in ECPG

From
Kyotaro Horiguchi
Date:
At Sun, 04 Sep 2022 13:49:53 +0300, Andrey Sokolov <a.sokolov@arenadata.io> wrote in 
> 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.

Good catch!

> 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

And the code looks good to me.

About the test, don't we need the test for non-varchar/bytea static
variables like "static int inta, intb, intc;"?

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



Re: [BUG] Storage declaration in ECPG

From
Tom Lane
Date:
Andrey Sokolov <a.sokolov@arenadata.io> writes:
> [ v2-0001-Fix-storage-declaration-in-ECPG.patch ]

Pushed.  I didn't think a whole new test case was appropriate,
either from the patch-footprint or test-runtime standpoint,
so I just added a couple of declarations to preproc/variable.pgc.

            regards, tom lane