Re: Add contrib/pg_logicalsnapinspect

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
To: shveta malik <shveta.malik@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2024-09-18T09:01:06Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix indentation issue

  2. pg_logicalinspect: Stabilize isolation tests.

  3. Add contrib/pg_logicalinspect.

  4. Move SnapBuild and SnapBuildOnDisk structs to snapshot_internal.h.

Attachments

Hi,

On Wed, Sep 18, 2024 at 11:33:08AM +0530, shveta malik wrote:
> Thanks for the patch. Few trivial things:
> 
> 1)
> May be we shall change 'INTERNAL_SNAPBUILD_H' in snapbuild_internal.h
> to 'SNAPBUILD_INTERNAL_H'?

Indeed, done in v6 attached, thanks!

> 2)
> ValidateSnapshotFile()
> 
> It is not only validating, but loading the content as well. So may be
> we can rename to ValidateAndRestoreSnapshotFile?

I see what you mean, we're also populating the SnapBuildOnDisk. I think your
proposal makes sense, done that way in v6.

> 3) sgml:
> a)
> + The pg_logicalinspect functions are called using an LSN argument
> that can be extracted from the output name of the
> pg_ls_logicalsnapdir() function.
> 
> Is it possible to give link to pg_ls_logicalsnapdir function here?

Yes but I'm not sure that's needed. A quick "git grep "<function>" "*.sgml""
seems to show that providing a link is not that common.

> b)
> + Gets logical snapshot metadata about a snapshot file that is located
> in the pg_logical/snapshots directory.
> 
> located in server's pg_logical/snapshots directory
>  (i.e. use server keyword, similar to how pg_ls_logicalsnapdir ,
> pg_ls_logicalmapdir explains it)

Agree, done that way in v6.

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com