| From: | Dmitry Tkach <dmitry(at)openratings(dot)com> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Index not used with IS NULL |
| Date: | 2003-02-17 17:18:16 |
| Message-ID: | 3E511958.8070706@openratings.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Tom Lane wrote:
>Dima Tkach <dmitry(at)openratings(dot)com> writes:
>
>
>>I'd be happy to come up with a patch... It just was my understanding
>>that you would not accept such a patc hanyway, because your opinion is
>>that it is unnecessary and dangerous... Did I misunderstand you here?
>>
>>
>
>I don't see anything dangerous about it --- except perhaps to
>readability and mantainability of the code. The problem is that IS NULL
>doesn't fit into the operator-and-opclass model of what indexes can do.
>If you can find a solution to that problem that's not a complete kluge,
>I'm all ears.
>
> regards, tom lane
>
>
Well... At first glance, it seems that what needs to be done is:
- add a special case in is_indexable_operator() to return true for IS_NULL
- modify _bt_checkkeys () to return isNull from inside if
(key->sk_flags & SK_ISNULL) clause instead of just false.
- remove sk_flags & SK_ISNULL checks from _bt_orderkeys
Obviously, I haven't tested this, and I may very well have missed
something (I will, of course, inspect it and test thoroughly if you ok
the change in principle - just don't want to spend much time right now
on something, that may end up not being needed to anybody), but this
looks to me like pretty much it.
Dima
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrew Sullivan | 2003-02-17 18:20:08 | Re: PostGreSQL Replication question !! |
| Previous Message | Dennis Gearon | 2003-02-17 17:17:48 | BIT STRINGS |