Re: Problems with plpgsql and FOR loops
От | Bill Moran |
---|---|
Тема | Re: Problems with plpgsql and FOR loops |
Дата | |
Msg-id | 4036A755.9040004@potentialtech.com обсуждение исходный текст |
Ответ на | Re: Problems with plpgsql and FOR loops (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-general |
Tom Lane wrote: > Bill Moran <wmoran@potentialtech.com> writes: > >>Some of the plpgsql functions I've created work fine on 7.4, but >>fail on 7.3.4. Specifically, when I use a "FOR var IN select LOOP" >>loop with a LONG select statement, it works fine on 7.4, but >>bonks with "missing .. at end of SQL expression" in 7.3.4 > > That error message suggests that plpgsql thinks the "var" is not > declared as a record or rowtype variable. I think you should look > to the variable declaration as the source of the issue, not the FOR > statement itself. There were some 7.4 fixes associated with > plpgsql rowtype variables, for instance this one: Ahh ... this is an interesting twist. In the cases where I'm having problems, I'm defining a custom type with CREATE TYPE, because it's the easiest way I can think of to move the data around. Assuming: CREATE TYPE testtype AS ... Are you suggesting that: rval testtype%ROWTYPE; is likely to work around the problem? So far, I've just been using: rval testtype; I'll test this to see what happens. > 2003-04-27 18:21 tgl > > * doc/src/sgml/plpgsql.sgml, src/pl/plpgsql/src/gram.y, > src/pl/plpgsql/src/pl_comp.c, src/pl/plpgsql/src/plpgsql.h: Fix > plpgsql so that variables of composite types (rowtypes) can be > declared without having to write %ROWTYPE. If the declared type of > a variable is a composite type, it'll be taken to be a row variable > automatically. > > although my recollection is that without %ROWTYPE, 7.3 plpgsql would > fail on the variable declaration. > > regards, tom lane > -- Bill Moran Potential Technologies http://www.potentialtech.com
В списке pgsql-general по дате отправления: