From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Steven Schlansker <steven(at)likeness(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org General" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Using partial index in combination with prepared statement parameters |
Date: | 2013-02-04 07:59:24 |
Message-ID: | 1449.1359964764@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Steven Schlansker <steven(at)likeness(dot)com> writes:
> It's been covered a few times in the past,
> http://www.postgresql.org/message-id/BANLkTimfT4OHQKb6Y7M4wQrffpWNUtPqJQ@mail.gmail.com
> http://postgresql.1045698.n5.nabble.com/partial-indexes-not-used-on-parameterized-queries-td2121027.html
> but in a nutshell, partial indices do not play nicely with prepared
> statements because whether the index is valid or not cannot be known
> at query plan time.
This should be pretty much a non-issue in 9.2 and up; if the partial
index is actually useful enough to be worth worrying about, the
plancache choice logic will realize that it should use custom not
generic plans.
http://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=e6faf910d
You might still have an issue if the partial index is only sometimes
usable --- the choice logic might decide to go for the generic-plan
approach anyway. But if you've got a case where the optimal plan
is all over the map like that, I wonder why you're using a prepared
statement at all ...
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | David Wooffindin | 2013-02-04 08:03:13 | PGAdmin on Windows (yeah, i know!!) and registry/.ini questions |
Previous Message | Tom Lane | 2013-02-04 07:48:41 | Re: Weird explain output |