Re: Prepared statements and unknown types
От
Thom Brown
Тема
Re: Prepared statements and unknown types
Дата
Msg-id
AANLkTim1ZgS1tYZKcHrjpkTnqh4g=yhGwTx9fbbpEgCo@mail.gmail.com
Ответ на
Re: Prepared statements and unknown types (Peter Bex)
Список
Дерево обсуждения
Prepared statements and unknown types Thom Brown <thom@linux.com>
Re: Prepared statements and unknown types Peter Bex <Peter.Bex@xs4all.nl>
Re: Prepared statements and unknown types Thom Brown <thom@linux.com>
Re: Prepared statements and unknown types Peter Bex <Peter.Bex@xs4all.nl>
Re: Prepared statements and unknown types Tom Lane <tgl@sss.pgh.pa.us>
Re: Prepared statements and unknown types Thom Brown <thom@linux.com>
Re: Prepared statements and unknown types Thom Brown <thom@linux.com>
Re: Prepared statements and unknown types "Igor Neyman" <ineyman@perceptron.com>
Re: Prepared statements and unknown types Thom Brown <thom@linux.com>
On 29 September 2010 19:15, Peter Bex wrote: > On Wed, Sep 29, 2010 at 07:08:22PM +0100, Thom Brown wrote: >> Could someone explain why the following doesn't work? >> >> test=# PREPARE meow(unknown) AS >> test-# SELECT $1 as meow; >> ERROR: could not determine data type of parameter $1 >> >> The problem is that using PDO in PHP, prepared statements aren't >> possible if values are used instead of columns in the select list. > > The type is always string for data that's sent; it's converted to > an appropriate type when the destination of the parameter is determined. > If you know the type, you can do > > PREPARE meow(text) AS > SELECT $1 as meow; > > or > > PREPARE meow(unknown) AS > SELECT $1::text as meow; > > You can also send a parameter as a specific type using the C interface, > but that requires support from the language/library you're using. > >> This appears to be allowed for MySQL and SQL Server. > > I don't know how they handle that. Perhaps they try to read your mind. > Perhaps PHP adds some kind of type conversion for types it knows for > those two interfaces. 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? -- Thom Brown Twitter: @darkixion IRC (freenode): dark_ixion Registered Linux user: #516935
В списке pgsql-general по дате отправления