multiple index search with postgres7.1.3 on solaris 8

From: Marco Vezzoli <marco(dot)vezzoli(at)st(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: multiple index search with postgres7.1.3 on solaris 8
Date: 2003-06-12 11:21:01
Message-ID: 3EE8621D.F6A261AE@st.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi everybody,
I'm sorry if this topic has already been explained, but the search
engine at archives.postgresql.org shows me 10 pages of results but
without any link (!).
I'm using postgres 7.1.3 on Solaris 8; I would like to do some query of
this form

SELECT * FROM table WHERE (attribute1,attribute2) IN
((value1_0,value2_0),(value1_1,value2_1) ...)

(which is legal on oracle 8i on solaris 8).
I know this has an equivalent boolean expression but:
-I would like to use an index defined like
CREATE INDEX myindex ON table(attribute1,attribute2)
-the pairs in the list can be many (up to 100)

Postgres supports queries of the form

SELECT * FROM table WHERE (attribute1,attribute2) IN (subselect)

and

SELECT * FROM table WHERE (attribute1,attribute2) = (value1,value2)

(which strangely is not supported on oracle!).
So I could use the former with a temp table *but* while the latter,
according to EXPLAIN, uses the index the former doesn't. Why?
Thanks in advance for any help,
Marco

--
Marco Vezzoli tel. +39 039 603 6852
STMicroelectronics fax. +39 039 603 5055

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message A. Van Hook 2003-06-12 11:28:43 (no subject)
Previous Message Christoph Haller 2003-06-12 11:16:27 Re: How to make a IN without a table... ?