| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | "David Olbersen" <DOlbersen(at)stbernard(dot)com> |
| Cc: | pgsql-performance(at)postgresql(dot)org |
| Subject: | Re: Type casting and indexes |
| Date: | 2003-05-08 16:25:07 |
| Message-ID: | 20978.1052411107@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-performance |
"David Olbersen" <DOlbersen(at)stbernard(dot)com> writes:
> So it seems that the type conversion is killing the use of the index, even though the type conversion has to happen for the condition to be tested.
Seems like I just answered this yesterday ;-)
Note the difference in the number of estimated rows in the two explains.
The reason is that the timestamptz conversion is not a constant and so
the planner can't get a good estimate of the number of rows that will
satisfy it. (And the reason it's not a constant is that it depends on
SET TIMEZONE.)
Bottom line: declare the constant correctly. Or at least don't
gratuitously cast it to the wrong thing.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2003-05-08 22:35:14 | Re: Type casting and indexes |
| Previous Message | scott.marlowe | 2003-05-08 16:20:19 | Re: [PERFORM] [SQL] Unanswered Questions WAS: An unresolved performance |