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
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... ? |