Re: Functions, composite types and Notice

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Functions, composite types and Notice
Дата
Msg-id 11811.1170428637@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Functions, composite types and Notice  ("Hakan Kocaman" <Hakan.Kocaman@digame.de>)
Ответы Re: Functions, composite types and Notice  ("Hakan Kocaman" <Hakan.Kocaman@digame.de>)
Список pgsql-general
"Hakan Kocaman" <Hakan.Kocaman@digame.de> writes:
>> Try this way instead:
>> select * from public.check_notice(2,'hello');

> so i call the function now like this (obfuscated):
> select
>     public.check_notice(t1.a,t1.b,t2.c)
> from
>     public.tab1 t1,
>     public.tab2 t2

> I'm not clear how i can use the mentioned syntax with this kind of
> query.

No, you can't at the moment; you have to use the way you're doing it.
There's been some speculation that SQL2003's LATERAL syntax might fix
this problem, but no one's dug into it deeply enough to even be sure
of that, let alone figure out what it'll take to implement it.

If you're trying to avoid multiple evaluation of the function, the best
way is to use "OFFSET 0" as an optimization fence to prevent flattening
of a subquery.  I get what seems to be the right thing from

select (x).* from (select sumprod(f1,f2) as x from foo offset 0) ss;

            regards, tom lane

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

Предыдущее
От: Alexander Staubo
Дата:
Сообщение: Re: PostgreSQL/FireBird
Следующее
От: Tony Caduto
Дата:
Сообщение: Re: I "might" have found a bug on 8.2.1 win32