Description
Minimal backend primitives for serving or proxying native base backups. Storage, tar production, manifest generation, privileges, and backup consistency remain application responsibilities.
Begin_Manifest_Upload
procedure Begin_Manifest_Upload
(Client : in out Sessions.Session; Timeout : Duration)
Begin a PostgreSQL 17+ UPLOAD_MANIFEST COPY IN exchange.
Parameters
- Client
Replication backend session.
- Timeout
Per-message transport timeout.
Begin_Stream
procedure Begin_Stream
(Client : in out Sessions.Session; Timeout : Duration)
PostgreSQL 14 calls this once per archive and optional manifest; PostgreSQL 15+ calls it once for the multiplexed stream.
Parameters
- Client
Replication backend session.
- Timeout
Per-message transport timeout.
Begin_Tablespaces
procedure Begin_Tablespaces
(Client : in out Sessions.Session; Timeout : Duration)
Begin the tablespace metadata result set.
Parameters
- Client
Replication backend session.
- Timeout
Per-message transport timeout.
Complete_Manifest_Upload
procedure Complete_Manifest_Upload
(Client : in out Sessions.Session; Timeout : Duration)
Finish a successful manifest upload with ReadyForQuery.
Parameters
- Client
Replication backend session.
- Timeout
Per-message transport timeout.
Complete_Tablespaces
procedure Complete_Tablespaces
(Client : in out Sessions.Session; Timeout : Duration)
Complete the tablespace metadata result set.
Parameters
- Client
Replication backend session.
- Timeout
Per-message transport timeout.
Finish_Stream
procedure Finish_Stream
(Client : in out Sessions.Session; Timeout : Duration)
Send CopyDone only. PostgreSQL sends the next legacy COPY result, or the final stop-LSN result, without an intervening CommandComplete.
Parameters
- Client
Replication backend session.
- Timeout
Per-message transport timeout.
Read_Manifest_Command
function Read_Manifest_Command
(Client : in out Sessions.Session; Timeout : Duration)
return Protocol.Frontend_Copy_Message
Read one bounded manifest COPY IN message.
Parameters
- Client
Replication backend session.
- Timeout
Per-message transport timeout.
Return value
CopyData, CopyDone, or CopyFail command.
Send_Archive_Start
procedure Send_Archive_Start
(Client : in out Sessions.Session;
File_Name : String;
Location : String;
Timeout : Duration)
Send a PostgreSQL 15+ archive-start frame.
Parameters
- Client
Replication backend session.
- File_Name
Safe archive base name.
- Location
Associated tablespace location, possibly empty.
- Timeout
Per-message transport timeout.
Send_Data
procedure Send_Data
(Client : in out Sessions.Session;
Major : Server_Major;
Data : Byte_Array;
Timeout : Duration)
Sends raw PostgreSQL 14 stream bytes or a PostgreSQL 15+ d frame.
Parameters
- Client
Replication backend session.
- Major
Wire format expected by the peer.
- Data
One bounded archive or manifest fragment.
- Timeout
Per-message transport timeout.
Send_End_Position
procedure Send_End_Position
(Client : in out Sessions.Session;
Position : LSN;
Timeline : UInt32;
Timeout : Duration)
Send the final result set and ReadyForQuery.
Parameters
- Client
Replication backend session.
- Position
Consistent backup stop LSN.
- Timeline
Timeline containing Position.
- Timeout
Per-message transport timeout.
Send_Manifest_Start
procedure Send_Manifest_Start
(Client : in out Sessions.Session; Timeout : Duration)
Send a PostgreSQL 15+ manifest-start frame.
Parameters
- Client
Replication backend session.
- Timeout
Per-message transport timeout.
Send_Progress
procedure Send_Progress
(Client : in out Sessions.Session;
Bytes_Completed : UInt64;
Timeout : Duration)
Send a PostgreSQL 15+ progress frame.
Parameters
- Client
Replication backend session.
- Bytes_Completed
Bytes completed in the current archive/tablespace.
- Timeout
Per-message transport timeout.
Send_Start_Position
procedure Send_Start_Position
(Client : in out Sessions.Session;
Position : LSN;
Timeline : UInt32;
Timeout : Duration)
Send the first result containing consistent start LSN and timeline.
Parameters
- Client
Authenticated replication backend session.
- Position
Consistent backup start LSN.
- Timeline
Timeline containing Position.
- Timeout
Per-message transport timeout.
Send_Tablespace
procedure Send_Tablespace
(Client : in out Sessions.Session;
Oid_Present : Boolean;
Oid : UInt32 := 0;
Location_Present : Boolean;
Location : String := "";
Size_Present : Boolean;
Size_KiB : UInt64 := 0;
Timeout : Duration)
Send one tablespace metadata row with explicit SQL NULL presence.
Parameters
- Client
Replication backend session.
- Oid_Present
Whether Oid is non-NULL.
- Oid
Tablespace OID when present.
- Location_Present
Whether Location is non-NULL.
- Location
External tablespace path when present.
- Size_Present
Whether Size_KiB is non-NULL.
- Size_KiB
Estimated size when progress was requested.
- Timeout
Per-message transport timeout.