Fix some inconsistencies in EXPLAIN output

06286709e added a SERIALIZE option to EXPLAIN which included showing the
amount of kilobytes serialized.  The calculation to convert bytes into
kilobytes wasn't consistent with how that's done in the rest of EXPLAIN.
Traditionally we round up to the nearest kB, but the new code rounded to
the nearest kB.

To fix this, invent a macro that does the conversion and use that macro
everywhere that requires this conversion.

Additionally, 5de890e36 added EXPLAIN (MEMORY) but included the memory
sizes in bytes.  Convert these values to kilobytes to align with the
other memory related outputs.

In passing, swap out a "long" type in show_hash_info() and use a uint64
instead.  We do support platforms where sizeof(Size) == 8 and
sizeof(long) == 4, so using a long there is questionable.

Reported-by: jian he
Reviewed-by: jian he
Discussion: 
https://www.postgresql.org/message-id/cacjufxe4sp7xvgowhqtfx5hs85axmkobpwdo-xzhzvtpk3e...@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/0de37b51065bc5b5848d65a9bb6f932ef392374f

Modified Files
--------------
src/backend/commands/explain.c        | 48 ++++++++++++++++++++---------------
src/test/regress/expected/explain.out |  6 ++---
2 files changed, 30 insertions(+), 24 deletions(-)

Reply via email to