As promised, here's the explanation of what's going on...(it's almost
too embarrassingly stupid to print)
The definition of I_SESSION is:
create FUNCTION I_SESSION (varchar(255), numeric(9,0), int,
varchar(255), varchar(512))
RETURNS INT4
AS '
...
LANGUAGE 'plpgsql';
Of course, the data I was trying to enter in the last arguement was
roughly 550 bytes long...while the definition of the last variable was
512. In my code, I've changed it to 768, and gotten a completely
different error. (Yes, I'm sure that this too is in my code...;^)
The error message was less than helpful (cryptic under psql, and a core
dump when called through libpq), but the bug was completely mine. This
fails in the same way under both 7.0.3 and 7.1b3 (both attempted under
Solaris 2.7, FWIW).
-Ken
Ken Corey wrote:
>
> Tom Lane wrote:
> > Ken Corey <ken@kencorey.com> writes:
> > > GRE=# select
> > >
I_SESSION(null,'54',2,'E2K','0x577A977F7FCCBF5A567C6097A5A5A9D47DA39B82298C6E9F89DA4D4F67E39B856692DDAA8A938E637D7F6C7000000000000000000000000000000000000000000000000000000000000000000');
> > > GRE'# '
> > > GRE-# );
> > > ERROR: parser: parse error at or near
> > > "0000000000000000000000000000000000"
> > > GRE=#
> >
> > > [Note that the final ' wasn't found, so I had to add it, and then close
> > > the parenthesis and execute the whole mess with the semi colon.]
> >
> > That's pretty odd; you seem to have a broken psql. What PG version are
> > you running? Do you have libreadline (history support) in there, and if
> > so what libreadline version is it?
>
> I downloaded pg 7.0.3, untarred it, went into the directory, typed:
>
> configure
> make
> make install
>
> No libreadline (though I should get it...I'd like to have up-arrow to go
> back to previous lines in psql!)
>
> Any other ideas?
>
> I've downloaded 7.1b3 to try out. Since I won't have any real critical
> data in there until March timeframe, I can afford to play with the
> latest version. If that fixes it, I'll report back to this list.
>
> -Ken