Tom Lane wrote:
Bill Moran <[EMAIL PROTECTED]> 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


---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to