Re: [HACKERS] current CVS snapshot of pgsql crash ... - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] current CVS snapshot of pgsql crash ...
Date
Msg-id 29400.928367486@sss.pgh.pa.us
Whole thread Raw
In response to current CVS snapshot of pgsql crash ...  (David Sauer <davids@orfinet.cz>)
Responses Re: [HACKERS] current CVS snapshot of pgsql crash ...  (Bruce Momjian <maillist@candle.pha.pa.us>)
Re: [HACKERS] current CVS snapshot of pgsql crash ...  (Bruce Momjian <maillist@candle.pha.pa.us>)
Re: [HACKERS] current CVS snapshot of pgsql crash ...  (Bruce Momjian <maillist@candle.pha.pa.us>)
List pgsql-hackers
David Sauer <davids@orfinet.cz> writes:
> david=> select textout(byteaout(odata)) from xinv18986;
> pqReadData() -- backend closed the channel unexpectedly.

I think this is not related to large objects per se --- it's a
typechecking failure.  textout is expecting a text datum, and it's
not getting one because that's not what comes out of byteaout.
(The proximate cause of the crash is that textout tries to interpret
the first four bytes of byteaout's output as a varlena length...)

The parser's typechecking machinery is unable to catch this
error because textout is declared to take any parameter type
whatever (its proargtype is 0).

Why don't the type output functions have the correct input types
declared for them in pg_proc???

For that matter, why do we allow user expressions to call the type
input/output functions at all?  They're not really usable as SQL
functions AFAICS...
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Re:ORDER BY
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] current CVS snapshot of pgsql crash ...