Re: passing a multiple join to a function?

Lists: pgsql-sql
From: Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org>
To: pgsql-sql(at)postgresql(dot)org
Subject: passing a multiple join to a function?
Date: 2007-12-17 13:06:29
Message-ID: 20071217130629.GA8338@apartia.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

Hi,

I've got this ugly case statement that I'd like to hide in a function:

select
...
case when
d.start_date <= CURRENT_DATE and
case when w.show_type in ('cinéma','livre')
then d.start_date >= CURRENT_DATE - 21
else (d.end_date >= CURRENT_DATE or d.end_date is null) end
then '0_actualite'
when
d.start_date > CURRENT_DATE
then '1_agenda'
else '2_archive'
end
as timing
...
from story s
join show w on (s.id_show = w.id_show)
join show_date d on (d.id_show = w.id_show and
d.start_date = (select d2.start_date from show_date d2 where d2.id_show = w.id_show order by d2.end_date >= CURRENT_DATE desc,
d2.start_date limit 1)
)
...

I could very well create a show_timing(int) function that accepts an
id_show and performs its own, additional, multiple join complex query on
story, show_date, and show.

Is there a way of feeding enough data to the function to avoid another
query?

Thanks,


From: Rodrigo De León <rdeleonp(at)gmail(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: passing a multiple join to a function?
Date: 2007-12-17 17:27:34
Message-ID: a55915760712170927v5ada3a6axb04b223141bc4376@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

On 12/17/07, Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org> wrote:
> I've got this ugly case statement that I'd like to hide in a function:

Why don't you hide the entire query in a VIEW?


From: Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: passing a multiple join to a function?
Date: 2007-12-23 16:37:45
Message-ID: 20071223163745.GA6472@apartia.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

On Mon, Dec 17, 2007 at 12:27:34PM -0500, Rodrigo De León wrote:
> On 12/17/07, Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org> wrote:
> > I've got this ugly case statement that I'd like to hide in a function:
>
> Why don't you hide the entire query in a VIEW?

That is probably the best solution. Thanks