There are lots of strange things related to this (... rows) First, (0 rows) are completely useless. If no one record is shown, why do we need that list ?
We could change (0 rows), like this one on dblink.sgml SELECT * FROM dblink_get_notify(); notify_name | be_pid | extra -------------+--------+------- (0 rows) We could change it to SELECT * FROM dblink_get_notify();<returnvalue>no rows returned</returnvalue> Current version does not have these 19 rows as DOC says. func.sgml SELECT * FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n); ... (19 rows) Show all settings counts 196 , but that is not true for current version. show.sgml SHOW ALL; name | setting | description -------------------------+---------+------------------------------------------------- allow_system_table_mods | off | Allows modifications of the structure of ... . . . xmloption | content | Sets whether XML data in implicit parsing ... zero_damaged_pages | off | Continues processing past damaged page headers. (196 rows) Why do we need to show number of lines of explain ? I think all them could be removed explain.sgml EXPLAIN SELECT * FROM foo WHERE i = 4; QUERY PLAN -------------------------------------------------------------- Index Scan using fi on foo (cost=0.00..5.98 rows=1 width=4) Index Cond: (i = 4) (2 rows) Please let me know if you agree with some of these changes and I can create a patch with that regards Marcos