Various fixups:

- Use u32 for correct parameter formatting in pageserver mgmt API
  client
- Use a correctly formatted PgVersionId (not: PgMajorVersion) in
  test_branching.py
- Add some documentation on postgres_versioninfo::PgVersionId
This commit is contained in:
Matthias van de Meent
2025-06-24 11:33:45 +02:00
parent 4b7de9135d
commit eace983d73
4 changed files with 4 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ pub enum PgMajorVersion {
// !!! When you add a new PgMajorVersion, don't forget to update PgMajorVersion::ALL
}
/// A full PostgreSQL version ID, in MMmmbb numerical format (Major/minor/bugfix)
#[derive(Debug, Copy, Clone, Ord, PartialOrd, Eq, PartialEq)]
#[repr(transparent)]
pub struct PgVersionId(u32);

View File

@@ -24,7 +24,6 @@ pub struct TimelineCreateRequest {
pub tenant_id: TenantId,
pub timeline_id: TimelineId,
pub mconf: Configuration,
/// In the PG_VERSION_NUM macro format, like 140017.
pub pg_version: PgVersionId,
pub system_id: Option<u64>,
// By default WAL_SEGMENT_SIZE

View File

@@ -749,6 +749,8 @@ impl Client {
pg_version: PgMajorVersion,
basebackup_tarball: ReqwestBody,
) -> Result<()> {
let pg_version = pg_version.major_version_num();
let uri = format!(
"{}/v1/tenant/{tenant_id}/timeline/{timeline_id}/import_basebackup?base_lsn={base_lsn}&end_lsn={end_lsn}&pg_version={pg_version}",
self.mgmt_api_endpoint,

View File

@@ -172,7 +172,7 @@ def test_cannot_create_endpoint_on_non_uploaded_timeline(neon_env_builder: NeonE
env.initial_tenant,
env.initial_timeline,
MembershipConfiguration(generation=1, members=[sk.safekeeper_id()], new_members=None),
int(env.pg_version),
int(env.pg_version) * 10000,
Lsn(0),
None,
)