Re: Handling large number of OR/IN conditions

From: David Wall <d(dot)wall(at)computer(dot)org>
To: pgsql-general List <pgsql-general(at)postgresql(dot)org>
Subject: Re: Handling large number of OR/IN conditions
Date: 2009-05-01 21:42:22
Message-ID: 49FB6CBE.7080004@computer.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

(quoted from Chris)
Select field1,field2 FROM table1 inner join relationships on
table1.creator_user_id = relationships.employee WHERE
relationships.manager = ?

(quoted from Steve)
> select table1.field1, table2.field2 from table1, reports where
> table1.creator_user_id = reports.peon and reports.overlord = 'bob'

Thanks, Steve and Chris, who both suggested similar things.

I believe that will work for me in some situations, but currently the
report allows the manager to select any combination (from one to all) of
users that report to him. So one solution would be to run the report as
you have it and then have the application filter it, but that could be
painful if the users "de-selected" from his full team happen to have a
large percentage of the matching rows. Of course, I may see if this is
something they really do much of. I mean, perhaps if they select
individual users (just a few), I can just use the OR/IN style, and if
they select "all my users" I could rely on the table joins.

Does anybody know if PG will perform better with the table join instead
of evaluating the series of OR/IN? The OR/IN has to be parsed, but the
comparisons may be faster than the table join.

Many thanks for your help....

David

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adam Ruth 2009-05-01 21:58:18 Re: Online Backups PostGre
Previous Message Adam B 2009-05-01 20:59:36 Re: Possible to prevent transaction abort?