Thread: Bizzare plpgsql error

Bizzare plpgsql error

From
"Jim C. Nasby"
Date:
I'm getting this error trying to run a function:

usps=# select process_zip4();
WARNING:  Error occurred while executing PL/pgSQL function process_zip4
WARNING:  line 55 at SQL statement
ERROR:  parser: parse error at or near "$1" at character 14

The relivant code is:

            IF z.record_type_code = ''P'' THEN
                INSERT INTO po_box
                    SELECT z4.zip4_id
                            , ....

The INSERT INTO is line 55. What makes no sense is that it works fine if
I change the name of the table from po_box to anything else.

Any ideas?
--
Jim C. Nasby (aka Decibel!)                    jim@nasby.net
Member: Triangle Fraternity, Sports Car Club of America
Give your computer some brain candy! www.distributed.net Team #1828

Windows: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming, or what?"

Re: Bizzare plpgsql error

From
Stephan Szabo
Date:
On Tue, 27 May 2003, Jim C. Nasby wrote:

> I'm getting this error trying to run a function:
>
> usps=# select process_zip4();
> WARNING:  Error occurred while executing PL/pgSQL function process_zip4
> WARNING:  line 55 at SQL statement
> ERROR:  parser: parse error at or near "$1" at character 14
>
> The relivant code is:
>
>             IF z.record_type_code = ''P'' THEN
>                 INSERT INTO po_box
>                     SELECT z4.zip4_id
>                             , ....
>
> The INSERT INTO is line 55. What makes no sense is that it works fine if
> I change the name of the table from po_box to anything else.

Do you happen to have a declared variable named po_box?  IIRC
plpgsql gets confused sometimes when things like that are done.


Re: Bizzare plpgsql error

From
"Jim C. Nasby"
Date:
Arg, yes, that's exactly it.

On Tue, May 27, 2003 at 03:57:12PM -0700, Stephan Szabo wrote:
>
> On Tue, 27 May 2003, Jim C. Nasby wrote:
>
> > I'm getting this error trying to run a function:
> >
> > usps=# select process_zip4();
> > WARNING:  Error occurred while executing PL/pgSQL function process_zip4
> > WARNING:  line 55 at SQL statement
> > ERROR:  parser: parse error at or near "$1" at character 14
> >
> > The relivant code is:
> >
> >             IF z.record_type_code = ''P'' THEN
> >                 INSERT INTO po_box
> >                     SELECT z4.zip4_id
> >                             , ....
> >
> > The INSERT INTO is line 55. What makes no sense is that it works fine if
> > I change the name of the table from po_box to anything else.
>
> Do you happen to have a declared variable named po_box?  IIRC
> plpgsql gets confused sometimes when things like that are done.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

--
Jim C. Nasby (aka Decibel!)                    jim@nasby.net
Member: Triangle Fraternity, Sports Car Club of America
Give your computer some brain candy! www.distributed.net Team #1828

Windows: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming, or what?"