Re: Prepared statements and unknown types

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Peter Bex <Peter(dot)Bex(at)xs4all(dot)nl>
Cc: PGSQL Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: Re: Prepared statements and unknown types
Date: 2010-09-29 19:02:38
Message-ID: 19247.1285786958@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Peter Bex <Peter(dot)Bex(at)xs4all(dot)nl> writes:
> On Wed, Sep 29, 2010 at 07:33:53PM +0100, Thom Brown wrote:
>> Okay, I understand what's happening. But does the planner need to
>> understand the type of literals in the select list if it's not used
>> anywhere else?

> Fields sent back to the client also carry their type with them.
> There's no "unknown" type (and it wouldn't be very useful in any
> case, because how would you go about displaying an unknown type?)

Well, actually there *is* an "unknown" type (OID 705), which is what
will be reported if there's a literal of unresolved type in the SELECT
list. That's how come you can do

regression=# select 'foo' as meow;
meow
------
foo
(1 row)

However, the issue here is not the output but the input: PREPARE is
complaining that the *input* parameter $1 has no determinate type.
If PREPARE doesn't know it, then the client isn't going to know it
either, and so it would be hard for the client to know what to send
to execute the statement.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thom Brown 2010-09-29 19:22:03 Re: Prepared statements and unknown types
Previous Message sunpeng 2010-09-29 19:01:23 Are there any commands to see the created index info?