quill_sql/recovery/
wal_record.rs1use crate::recovery::wal::codec;
2use crate::recovery::Lsn;
3
4pub use crate::recovery::wal::codec::{
5 decode_checkpoint, decode_clr, decode_frame, decode_page_delta, decode_page_write,
6 decode_payload as decode_wal_payload, decode_transaction, encode_frame,
7 heap_record_kind_to_info, CheckpointPayload, ClrPayload, PageDeltaPayload, PageWritePayload,
8 ResourceManagerId, TransactionPayload, TransactionRecordKind, WalFrame, WAL_CRC_LEN,
9 WAL_HEADER_LEN, WAL_MAGIC, WAL_VERSION, WAL_VERSION_V1,
10};
11
12pub use crate::storage::heap::wal_codec::{
13 decode_heap_record as decode_heap, encode_heap_record as encode_heap, HeapDeletePayload,
14 HeapInsertPayload, HeapRecordKind, HeapRecordPayload, HeapUpdatePayload, RelationIdent,
15 TupleMetaRepr,
16};
17
18#[derive(Debug, Clone)]
19pub enum WalRecordPayload {
20 PageWrite(PageWritePayload),
21 PageDelta(PageDeltaPayload),
23 Transaction(TransactionPayload),
24 Heap(HeapRecordPayload),
25 Checkpoint(CheckpointPayload),
26 Clr(ClrPayload),
28}
29
30impl WalRecordPayload {
31 pub fn encode(&self, lsn: Lsn, prev_lsn: Lsn) -> Vec<u8> {
32 codec::encode_frame(lsn, prev_lsn, self)
33 }
34}