On Tue, Mar 14, 2023 at 02:54:40PM -0700, Andres Freund wrote:
> Object description
> -----------------------------------------------------------
> function pg_get_wal_record_info(pg_lsn)
> - function pg_get_wal_records_info(pg_lsn,pg_lsn)
> function pg_get_wal_records_info_till_end_of_wal(pg_lsn)
> - function pg_get_wal_stats(pg_lsn,pg_lsn,boolean)
> + function pg_get_wal_records_info(pg_lsn,pg_lsn)
> function pg_get_wal_stats_till_end_of_wal(pg_lsn,boolean)
> + function pg_get_wal_stats(pg_lsn,pg_lsn,boolean)
> (5 rows)
>
> -- Make sure checkpoints don't interfere with the test.
>
> Looks like it's missing an ORDER BY.
Interesting. This is "\dx+ pg_walinspect".
listOneExtensionContents() uses pg_describe_object() for that, and
there is already an ORDER BY based on it. I would not have expected
this part to be that much sensitive. Is this using a specific ICU
collation, because this is a side-effect of switching ICU as the
default in initdb?
As a solution, this could use pg_identify_object(classid, objid, 0) in
the ORDER BY clause to enforce a better ordering of the objects dealt
with as it decomposes the object name and the object type. That
should be enough, I assume, as it looks to be parenthesis vs
underscore that switch the order.
--
Michael