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