Michael Meskes <meskes@postgresql.org> writes:
> I was just approached with an optimizer question I cannot answer. Does
> our optimizer know how expensive different comparisons are?
It does not, because there's noplace it could look to find the info.
> If there are different comparisons in a where clause check the ints
> first, then the strings, then everything with regexp, or like clauses
> etc. and finally function calls at last, because in most cases a
> function call is the most expensive one.
Unfortunately, these all look like function calls to the optimizer.
I have played with the notion of forcing subquery-based WHERE clauses
to the end of the list, but that's about all that we could easily manage
without great leaps of assumptions...
regards, tom lane