From: | postgresql(dot)org(at)tgice(dot)com |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Problem with index in OR'd expression |
Date: | 2006-12-27 17:02:02 |
Message-ID: | 4592A70A.60108@tgice.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Tom Lane wrote:
> postgresql(dot)org(at)tgice(dot)com writes:
>> I would submit that in that situation, it would be
>> reasonable for a user to expect my suggested syntax to still use the
>> indicated indexes.
>
> The only thing that will make that work is if "indexed_col IS NULL" were
> an indexable condition, which it isn't because the PG index API only
> supports "indexed_col operator something" as an indexable condition
> (IS NULL is not an operator, and even if it were, there's no "something"
> on its righthand side). Fixing this has been on the radar screen for
> awhile, but it's not done, largely for lack of agreement about a
> reasonably clean way to change that API.
Sorry to keep this issue alive even longer, Tom, but I think I may've
been unclear with my example.
I was referring to the situation where one has this in a WHERE clause:
((vConstant IS NULL) OR (Table.IndexedCol = vConstant))
where vConstant is a *constant* parameter in a pl/pgsql function.
In the latest versions (8.1 *or* 8.2), would you expect this to
successfully use the index on Table.IndexedCol and not have PG be
confused (into a sequential scan) by the (vConstant IS NULL) expression?
As I indicated, I'm currently running 8.0.x, and am wondering whether it
would be worth the effort to upgrade to 8.1 or 8.2 (Gentoo doesn't yet
have PG at 8.2, and I'm a bit lazy with installing things outside of
Portage) to solve this issue or whether I should just enable a
workaround for now and keep an eye on future releases for a better
solution to this problem.
Thanks again,
John
From | Date | Subject | |
---|---|---|---|
Next Message | A. Kretschmer | 2006-12-27 17:03:29 | Re: Is PostgreSQL for this? |
Previous Message | Stuart Grimshaw | 2006-12-27 16:58:36 | Re: ERROR: could not access status of transaction |