Re: PL/pgSQL EXECUTE '..' USING with unknown

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: PL/pgSQL EXECUTE '..' USING with unknown
Дата
Msg-id 4C5BBC66.4010309@enterprisedb.com
обсуждение исходный текст
Ответ на Re: PL/pgSQL EXECUTE '..' USING with unknown  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: PL/pgSQL EXECUTE '..' USING with unknown  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 06/08/10 01:13, Tom Lane wrote:
> Andrew Dunstan<andrew@dunslane.net>  writes:
>> On 08/05/2010 05:11 PM, Tom Lane wrote:
>>> This example doesn't seem terribly compelling.  Why would you bother
>>> using USING with constants?
>
>> In a more complex example you might use $1 in more than one place in the
>> query.
>
> Well, that's better than no justification, but it's still pretty weak.
> A bigger problem is that doing anything like this will require reversing
> the logical path of causation in EXECUTE USING.  Right now, we evaluate
> the USING expressions first, and then their types feed forward into
> parsing the EXECUTE string.  What Heikki is suggesting requires
> reversing that, at least to some extent.  I'm not convinced it's
> possible without breaking other cases that are more important.

One approach is to handle the conversion from unknown to the right data
type transparently in the backend. Attached patch adds a
coerce-param-hook for fixed params that returns a CoerceViaIO node to
convert the param to the right type at runtime. That's quite similar to
the way unknown constants are handled.

The patch doesn't currently check that a parameter is only resolved to
one type in the same query, but that can be added.

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: PL/pgSQL EXECUTE '..' USING with unknown
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: MERGE Specification