> try writing
> WHERE 'ABCDE' >= pr_min AND 'ABCDE' <= pr_max
> AND pr_min < (SELECT pr_min FROM table
> WHERE pr_min > 'ABCDE'
> ORDER BY pr_min LIMIT 1)
> The idea here is to add an upper bound on pr_min to the index scan
> conditions, so that the scan can stop short of the end of the index.
Argh, got that backwards. What you are missing is a *lower* bound on
pr_min, and the index scan will therefore run from the start of the
index up to pr_min = 'ABCDE'. So reverse the sense of the added test:
AND pr_min >= (SELECT pr_min FROM table
WHERE pr_min <= 'ABCDE'
ORDER BY pr_min DESC LIMIT 1)
regards, tom lane
In response to
pgsql-sql by date
|Next:||From: Kenneth Gonsalves||Date: 2004-02-26 02:54:55|
|Subject: updating remote database|
|Previous:||From: Tom Lane||Date: 2004-02-25 22:32:28|
|Subject: Re: Scalar in a range (but textual not numeric) |