Boszormenyi Zoltan írta:
> Boszormenyi Zoltan írta:
>   
>> I think you forget that in this case, only global variables are
>> usable in the DECLARE in this case, no local variables in
>> functions preceding the DECLARE are visible to it.
>>
>> What we need here is an extra check in ECPGdump_a_type().
>> We need to raise an error if
>>      ECPGdump_a_type(name, type, ...)
>> and
>>     var = with find_variable(name);
>> on the passed name disagrees in the variable type and maybe
>> a warning if they disagree in the brace_level. The same applies
>> to the indicator variable. For that, we need to pass the brace_level
>> to ECPGdump_a_type() for both the variable and the indicator.
>>   
>>     
>
> I was thinking about something like the attached patch.
> It passes all the regression tests.
>   

And here's the code to test with.

> Best regards,
> Zoltán Böszörményi
>
>   
> ------------------------------------------------------------------------
>
>


-- 
Bible has answers for everything. Proof:
"But let your communication be, Yea, yea; Nay, nay: for whatsoever is more
than these cometh of evil." (Matthew 5:37) - basics of digital technology.
"May your kingdom come" - superficial description of plate tectonics

----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
http://www.postgresql.at/

EXEC SQL BEGIN DECLARE SECTION;
int     id;
char    t[256];
EXEC SQL END DECLARE SECTION;

EXEC SQL DECLARE mycur CURSOR FOR SELECT * INTO :id,:t FROM t1;

int main(void) {
        EXEC SQL BEGIN DECLARE SECTION;
        int     id;
        int     t;
        EXEC SQL END DECLARE SECTION;

        EXEC SQL CONNECT TO test;

        EXEC SQL OPEN mycur;

        EXEC SQL FETCH mycur;

        EXEC SQL CLOSE mycur;

        EXEC SQL DISCONNECT ALL;

        return 0;
}
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to