Re: explain analyze rows=%.0f
Andrei Lepikhov <lepihov@gmail.com>
From: Andrei Lepikhov <lepihov@gmail.com>
To: Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>,
Matheus Alcantara <matheusssilv97@gmail.com>
Cc: Guillaume Lelarge <guillaume@lelarge.info>,
Daniel Gustafsson <daniel@yesql.se>, Ibrar Ahmed <ibrar.ahmad@gmail.com>,
"Gregory Stark (as CFM)" <stark.cfm@gmail.com>, Tom Lane
<tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>,
Amit Kapila <amit.kapila16@gmail.com>, Justin Pryzby <pryzby@telsasoft.com>,
Peter Geoghegan <pg@bowt.ie>, vignesh C <vignesh21@gmail.com>,
"David G. Johnston" <david.g.johnston@gmail.com>,
pgsql-hackers@lists.postgresql.org
Date: 2025-02-11T17:14:49Z
Lists: pgsql-hackers
On 8/2/2025 04:28, Ilia Evdokimov wrote: > On 08.02.2025 00:01, Matheus Alcantara wrote: >> Just for reference I'm trying to apply based on commit fb056564ec5. > You are right, because two commits were appeared after creating v6-patch > on partition_prune.out and patch v6 must not have applied on master. > Then I created v7 patch rebased on fb056564ec5 . Thank for your remark! I support the idea in general, but I believe it should be expanded to cover all cases of parameterised plan nodes. Each rescan iteration may produce a different number of tuples, and rounding can obscure important data. For example, consider five loops of a scan node: the first loop returns nine tuples, and each other - zero tuples. When we calculate the average, 9 divided by 5 equals 1.8. This results in an explanation that indicates "rows = 1," masking almost 40% of the data. Now, if we apply the same two loops but have a total of 900,000 tuples, then 400,000 masked tuples represent a significant portion of the data. Moreover, switching to a floating-point type for row explanations in each parameterised node would provide a more comprehensive view and add valuable information about the parameterisation of the node, which may not be immediately apparent. -- regards, Andrei Lepikhov
Commits
-
EXPLAIN: Always use two fractional digits for row counts.
- 95dbd827f2ed 18.0 landed
-
Adjust EXPLAIN test case to filter out "Actual Rows" values.
- 44cbba9a7f51 18.0 cited
-
Allow EXPLAIN to indicate fractional rows.
- ddb17e387aa2 18.0 landed
-
Fix pgbench performance issue induced by commit af35fe501.
- fb056564ec5b 18.0 cited