Re: Combine pg_walinspect till_end_of_wal functions with others

From: Andres Freund <andres(at)anarazel(dot)de>
To: Michael Paquier <michael(at)paquier(dot)xyz>, Jeff Davis <pgsql(at)j-davis(dot)com>
Cc: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>, Julien Rouhaud <rjuju123(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Combine pg_walinspect till_end_of_wal functions with others
Date: 2023-03-15 02:05:20
Message-ID: 20230315020520.vpxf2nqxr2uj6jnz@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Masahiko Sawada 2023-03-15 02:32:06 Re: [PoC] Improve dead tuple storage for lazy vacuum
Previous Message Peter Geoghegan 2023-03-15 01:50:15 Re: Add pg_walinspect function with block info columns