Re: Plan rows - 1 or many - Mailing list pgsql-general

From Peter Mogensen
Subject Re: Plan rows - 1 or many
Date
Msg-id 532020A0.5050306@one.com
Whole thread Raw
In response to Re: Plan rows - 1 or many  (Albe Laurenz <laurenz.albe@wien.gv.at>)
List pgsql-general
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



pgsql-general by date:

Previous
From: Albe Laurenz
Date:
Subject: Re: Plan rows - 1 or many
Next
From: Marko Kreen
Date:
Subject: Re: libpq - lack of support to set the fetch size