| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Ben <midfield(at)gmail(dot)com> |
| Cc: | pgsql-performance(at)postgresql(dot)org |
| Subject: | Re: encourging bitmap AND |
| Date: | 2010-12-23 20:52:12 |
| Message-ID: | 27812.1293137532@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-performance |
Ben <midfield(at)gmail(dot)com> writes:
> i have a schema similar to the following
> create index foo_s_idx on foo using btree (s);
> create index foo_e_idx on foo using btree (e);
> i want to do queries like
> select * from foo where 150 between s and e;
That index structure is really entirely unsuited to what you want to do,
so it's not surprising that the planner isn't impressed with the idea of
a bitmap AND.
I'd suggest setting up something involving a gist index over an
interval-ish datatype. The PERIOD datatype that Jeff Davis is fooling
with would do what you want --- see
http://pgfoundry.org/projects/temporal
http://thoughts.j-davis.com/2009/11/08/temporal-keys-part-2/
If you don't want any add-on parts involved, you could fake it by using
a box or possibly lseg.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ben | 2010-12-23 21:01:48 | Re: encourging bitmap AND |
| Previous Message | Ben | 2010-12-23 20:06:40 | encourging bitmap AND |