Re: Combine pg_walinspect till_end_of_wal functions with others - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Combine pg_walinspect till_end_of_wal functions with others
Date
Msg-id 20230315020520.vpxf2nqxr2uj6jnz@awork3.anarazel.de
Whole thread Raw
In response to Re: Combine pg_walinspect till_end_of_wal functions with others  (Michael Paquier <michael@paquier.xyz>)
Responses Re: Combine pg_walinspect till_end_of_wal functions with others
List pgsql-hackers
Hi,

On 2023-03-15 09:56:10 +0900, Michael Paquier wrote:
> 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?

It's using ICU, but not a specific collation. The build I linked to is WIP
hackery to add ICU support to windows CI. Here's the initdb output:
https://api.cirrus-ci.com/v1/artifact/task/6288336663347200/testrun/build/testrun/pg_walinspect/regress/log/initdb.log

The database cluster will be initialized with this locale configuration:
  provider:    icu
  ICU locale:  en_US
  LC_COLLATE:  English_United States.1252
  LC_CTYPE:    English_United States.1252
  LC_MESSAGES: English_United States.1252
  LC_MONETARY: English_United States.1252
  LC_NUMERIC:  English_United States.1252
  LC_TIME:     English_United States.1252
The default database encoding has accordingly been set to "WIN1252".
The default text search configuration will be set to "english".

For comparison, here's a recent CI run (which also failed on windows, but for
unrelated reasons), without ICU:
https://api.cirrus-ci.com/v1/artifact/task/6478925920993280/testrun/build/testrun/pg_walinspect/regress/log/initdb.log

The database cluster will be initialized with locale "English_United States.1252".
The default database encoding has accordingly been set to "WIN1252".
The default text search configuration will be set to "english".


> 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.


Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Add pg_walinspect function with block info columns
Next
From: Masahiko Sawada
Date:
Subject: Re: [PoC] Improve dead tuple storage for lazy vacuum