On 2014-03-12 09:28, Albe Laurenz wrote:
Peter Mogensen wrote:
I have an application where I would really like to be able to look at en
SQL query and answer the question:
"Is this query capable of returning more than 1 row?"
Can I conclude that when plan_rows is 1 then there will never be more
than 1 row returned by the query?
I would say no.
If the planner estimates one row, that means that it guesses that
it will be one or less.
I think "guesses" is the operative word here. Because, if the planner
can actually promise that for the example queries a gave there would be
"one or less" rows, then I'm happy.
And a query that can potentially return many rows can certainly
also return only one row or none at all.
But that's fine... I have no problem with an answer telling me that this
query can return any number of rows.
Hmm.. I think my question is answered by posing it in another way:
Could "plan rows" tell me whether the result of a given query could be
changed by later INSERT statements?
And the answer becomes "no", because there's a difference between
queries of the type I gave as example and queries using aggregates and
GROUP BY. ... for which the planner would also return "plan_rows = 1".
However... GROUP BY queries could have their result changed by later
INSERT statements.
/Peter
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general