diff --git a/pageserver/src/basebackup.rs b/pageserver/src/basebackup.rs index 426e413521..739b63c0c9 100644 --- a/pageserver/src/basebackup.rs +++ b/pageserver/src/basebackup.rs @@ -1,12 +1,9 @@ use crate::ZTimelineId; use log::*; -use postgres_ffi::FilePathError; use std::io::Write; use tar::Builder; use walkdir::WalkDir; -use crate::ZTimelineId; - use postgres_ffi::relfile_utils::*; use zenith_utils::lsn::Lsn; diff --git a/pageserver/src/restore_local_repo.rs b/pageserver/src/restore_local_repo.rs index 5646929998..57cefb7c01 100644 --- a/pageserver/src/restore_local_repo.rs +++ b/pageserver/src/restore_local_repo.rs @@ -29,7 +29,6 @@ use crate::ZTimelineId; use postgres_ffi::pg_constants; use postgres_ffi::relfile_utils::*; use postgres_ffi::xlog_utils::*; -use postgres_ffi::FilePathError; use zenith_utils::lsn::Lsn; /// diff --git a/postgres_ffi/src/lib.rs b/postgres_ffi/src/lib.rs index 67e8e4b1b2..a1a12a901d 100644 --- a/postgres_ffi/src/lib.rs +++ b/postgres_ffi/src/lib.rs @@ -8,8 +8,6 @@ pub mod relfile_utils; pub mod xlog_utils; use bytes::{Buf, Bytes, BytesMut}; -use std::error::Error; -use std::fmt; // sizeof(ControlFileData) const SIZEOF_CONTROLDATA: usize = std::mem::size_of::(); @@ -52,50 +50,6 @@ pub fn decode_pg_control(mut buf: Bytes) -> Result &str { - &self.msg - } -} - -impl FilePathError { - pub fn new(msg: &str) -> FilePathError { - FilePathError { - msg: msg.to_string(), - } - } -} - -impl From for FilePathError { - fn from(e: core::num::ParseIntError) -> Self { - return FilePathError { - msg: format!("invalid filename: {}", e), - }; - } -} - -impl fmt::Display for FilePathError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "invalid filename") - } -} - -pub fn forkname_to_forknum(forkname: Option<&str>) -> Result { - match forkname { - // "main" is not in filenames, it's implicit if the fork name is not present - None => Ok(pg_constants::MAIN_FORKNUM), - Some("fsm") => Ok(pg_constants::FSM_FORKNUM), - Some("vm") => Ok(pg_constants::VISIBILITYMAP_FORKNUM), - Some("init") => Ok(pg_constants::INIT_FORKNUM), - Some(_) => Err(FilePathError::new("invalid forkname")), - } -} - pub fn encode_pg_control(controlfile: ControlFileData) -> Bytes { let b: [u8; SIZEOF_CONTROLDATA]; diff --git a/postgres_ffi/src/pg_constants.rs b/postgres_ffi/src/pg_constants.rs index 5adb09ab9c..b336371373 100644 --- a/postgres_ffi/src/pg_constants.rs +++ b/postgres_ffi/src/pg_constants.rs @@ -76,7 +76,6 @@ pub const XACT_XINFO_HAS_TWOPHASE: u32 = 1u32 << 4; // From pg_control.h and rmgrlist.h pub const XLOG_SWITCH: u8 = 0x40; pub const XLOG_SMGR_TRUNCATE: u8 = 0x20; -pub const SMGR_TRUNCATE_HEAP: u32 = 0x0001; // From heapam_xlog.h pub const XLOG_HEAP_INSERT: u8 = 0x00; diff --git a/postgres_ffi/src/relfile_utils.rs b/postgres_ffi/src/relfile_utils.rs index fdfee8108b..4995dcbd2c 100644 --- a/postgres_ffi/src/relfile_utils.rs +++ b/postgres_ffi/src/relfile_utils.rs @@ -2,6 +2,7 @@ /// Common utilities for dealing with PostgreSQL relation files. /// use regex::Regex; +use crate::pg_constants; #[derive(Debug, Clone, thiserror::Error, PartialEq)] pub enum FilePathError { @@ -21,10 +22,10 @@ impl From for FilePathError { pub fn forkname_to_number(forkname: Option<&str>) -> Result { match forkname { // "main" is not in filenames, it's implicit if the fork name is not present - None => Ok(0), - Some("fsm") => Ok(1), - Some("vm") => Ok(2), - Some("init") => Ok(3), + None => Ok(pg_constants::MAIN_FORKNUM), + Some("fsm") => Ok(pg_constants::FSM_FORKNUM), + Some("vm") => Ok(pg_constants::VISIBILITYMAP_FORKNUM), + Some("init") => Ok(pg_constants::INIT_FORKNUM), Some(_) => Err(FilePathError::InvalidForkName), } } @@ -32,10 +33,10 @@ pub fn forkname_to_number(forkname: Option<&str>) -> Result { /// Convert Postgres fork number to the right suffix of the relation data file. pub fn forknumber_to_name(forknum: u8) -> Option<&'static str> { match forknum { - 0 => None, - 1 => Some("fsm"), - 2 => Some("vm"), - 3 => Some("init"), + pg_constants::MAIN_FORKNUM => None, + pg_constants::FSM_FORKNUM => Some("fsm"), + pg_constants::VISIBILITYMAP_FORKNUM => Some("vm"), + pg_constants::INIT_FORKNUM => Some("init"), _ => panic!("unrecognized fork number"), } }