On Tue, Feb 2, 2010 at 7:14 PM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
"Davor J." <DavorJ@xxxxxxxx> writes:No, the optimizer doesn't "evaluate it first". Subqueries aren't ever
> Now, if one takes a subquery for "1", the optimizer evaluates it first
> (let's say to "1"), but then searches for it (sequentially) in every
> partition, which, for large partitions, can be very time-consuming and goes
> beyond the point of partitioning.
assumed to reduce to constants. (If you actually do have a constant
_expression_, why don't you just leave out the word SELECT?)
regards, tom lane
If you don't have a constant _expression_ then you can either explicitly loop in the calling code or a function or you could index the key in all the subtables. The index isn't really optimal but it gets the job done.
Nik