vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| The following bug has been logged online: Bug reference: 2126 Logged by: Grzegorz TaĆczyk Email address: goliatus@polzone.pl PostgreSQL version: 8.1 Operating system: Slackware Description: Index usage for function value Details: SELECT * FROM table WHERE id = myfunction('x', 10); There is an index created on id column, but query planner doesn't use it. When I explain this query: SELECT * FROM table WHERE id = (SELECT myfunction('x', 10)) Then index is used and execution is much faster. Is this subquery nessesary? It doesn't happen in all circumstances, but when query is more complex and table is big then it happens. ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq |
| ||||
| "Grzegorz TaĆczyk" <goliatus@polzone.pl> writes: > SELECT * FROM table WHERE id = myfunction('x', 10); > There is an index created on id column, but query planner doesn't use it. Have you declared myfunction as IMMUTABLE or STABLE? If it's volatile then optimizing to an indexscan is incorrect and the planner won't do it. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly |
| Thread Tools | |
| Display Modes | |
|
|